הגדרת הסוכן לעומסי עבודה של Redis

במאמר הזה נסביר איך להתקין את Agent for Compute Workloads במופעים של Compute Engine, ואיך להגדיר את הסוכן להתחבר לעומס עבודה של Redis שפועל במופעים האלה של Compute.

אחרי שמתקינים ומגדירים את הסוכן, הוא אוסף מדדים מעומס העבודה של Redis וממופעי החישוב הבסיסיים ושולח אותם אל כלי לניהול עומס העבודה. לאחר מכן תוכלו להשתמש בהערכה של כלי לניהול עומס העבודה כדי לסרוק את עומסי העבודה של Redis ולחפש חריגות מהשיטות המומלצות לתצורות של תשתית, מערכת הפעלה ועומס עבודה.

לפני שמתחילים

לפני שמתקינים ומגדירים את Agent for Compute Workloads, צריך לוודא שמתקיימות הדרישות המוקדמות הבאות:

התפקידים שצריך ב-IAM עבור הסוכן

ה-Agent for Compute Workloads משתמש בחשבון השירות שמצורף למופע המחשוב לצורך אימות ולגישה למשאבי Google Cloud .

כדי לשפר את האבטחה, מומלץ להשתמש בחשבון שירות למטרה אחת במקום להשתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.

כדי לוודא שלחשבון השירות יש את ההרשאות הנדרשות כדי לאפשר לסוכן של Compute Workloads לבצע אימות מול משאבים שלGoogle Cloud ולגשת אליהם Google Cloud , צריך לבקש מהאדמין להקצות לחשבון השירות את תפקידי ה-IAM הבאים בפרויקט:

  • איסוף מדדים ממכונת החישוב: Compute Viewer (roles/compute.viewer)
  • כתיבת נתונים למחסן הנתונים של Workload Manager: Workload Manager Insights Writer (roles/workloadmanager.insightWriter)
  • שליחת יומני סוכנים אל Cloud Logging: Logs Writer (roles/logging.logWriter)
  • אם אתם משתמשים ב-Secret Manager כדי לאחסן את הסיסמה להתחברות למופע Redis: Secret Manager Secret Accessor (roles/secretmanager.secretAccessor)

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שהאדמין גם יוכל לתת לחשבון השירות את ההרשאות שנדרשות באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

הפעלת גישה לממשקי Cloud API

‫Compute Engine ממליץ להגדיר את המכונות כך שיאפשרו את כל היקפי הגישה לכל ממשקי Cloud API, ולהשתמש רק בהרשאות IAM של חשבון השירות של המכונה כדי לשלוט בגישה למשאביGoogle Cloud . מידע נוסף זמין במאמר יצירת מכונה וירטואלית שמשתמשת בחשבון שירות שמנוהל על ידי משתמש.

אם מגבילים את הגישה ל-Cloud APIs, ל-Agent for Compute Workloads נדרשות לפחות הרשאות הגישה הבאות ל-Cloud APIs במכונת המארח של Compute:

https://www.googleapis.com/auth/cloud-platform

מידע נוסף זמין במאמר בנושא שיטות מומלצות לשימוש בהיקפים.

אם אתם מריצים עומס עבודה של Redis על מופע Compute שאין לו כתובת IP חיצונית, אתם צריכים להפעיל גישה פרטית ל-Google ברשת המשנה של המופע, כדי שה-Agent for Compute Workloads יוכל לגשת ל-Google APIs ולשירותים של Google. מידע על הפעלת גישה פרטית ל-Google זמין במאמר הגדרת גישה פרטית ל-Google.

התקנה והגדרה של הסוכן באמצעות מנהל החבילות

בקטע הזה מוסבר איך להתקין את Agent for Compute Workloads במכונת ה-Compute ולהגדיר אותו להתחבר למכונת Redis באמצעות מנהל חבילות.

כדי להתקין את Agent for Compute Workloads, מבצעים את השלבים הבאים:

RHEL

ב-Red Hat Enterprise Linux ‏ (RHEL), מתקינים את Agent for Compute Workloads באמצעות פקודת ניהול החבילות yum. הפקודה הזו מבצעת את הפעולות הבאות:

  • הורדה של הגרסה העדכנית ביותר של הסוכן.
  • יוצרת שירות systemd לסוכן, בשם google-cloud-workload-agent.
  • הפעלת השירות google-cloud-workload-agent והתחלת השימוש בו.

כדי להתקין ולהגדיר את Agent for Compute Workloads במופע Compute שמבוסס על RHEL, פועלים לפי השלבים הבאים:

  1. יוצרים חיבור SSH למכונת Compute.

  2. בטרמינל, מתקינים את הסוכן:

    sudo tee /etc/yum.repos.d/google-cloud-workload-agent.repo << EOM
    [google-cloud-workload-agent]
    name=Google Cloud Agent for Compute Workloads
    baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-workload-agent-$basearch
    enabled=1
    gpgcheck=0
    repo_gpgcheck=1
    gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
    EOM
    sudo yum install google-cloud-workload-agent
    
  3. פותחים את קובץ ההגדרות של הסוכן:

    /etc/google-cloud-workload-agent/configuration.json
    
  4. מציינים ערכים לכל פרמטרי החובה, כפי שמתואר במאמר בנושא פרמטרים של הגדרות.

  5. שמירת קובץ ההגדרות

  6. כדי שהשינויים ייכנסו לתוקף, צריך להפעיל מחדש את הסוכן.

SLES

ב-SUSE Linux Enterprise Server‏ (SLES), מתקינים את Agent for Compute Workloads באמצעות פקודת ניהול החבילות zypper. הפקודה הזו מבצעת את הפעולות הבאות:

  • הורדה של הגרסה העדכנית ביותר של הסוכן.
  • יוצרת שירות systemd לסוכן, בשם google-cloud-workload-agent.
  • הפעלת השירות google-cloud-workload-agent והתחלת השימוש בו.

כדי להתקין ולהגדיר את Agent for Compute Workloads במופע של מחשוב מבוסס SLES, מבצעים את השלבים הבאים:

  1. יוצרים חיבור SSH למכונת Compute.

  2. בטרמינל, מתקינים את הסוכן:

    sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-workload-agent-$basearch
    google-cloud-workload-agent
    sudo zypper install google-cloud-workload-agent
    
  3. פותחים את קובץ ההגדרות של הסוכן:

    /etc/google-cloud-workload-agent/configuration.json
    
  4. מציינים ערכים לכל פרמטרי החובה, כפי שמתואר במאמר בנושא פרמטרים של הגדרות.

  5. שמירת קובץ ההגדרות

  6. כדי שהשינויים ייכנסו לתוקף, צריך להפעיל מחדש את הסוכן.

‫Debian

ב-Debian, מתקינים את Agent for Compute Workloads באמצעות הפקודה apt לניהול חבילות. הפקודה הזו מבצעת את המשימות הבאות:

  • מוריד את הגרסה האחרונה של הסוכן.
  • יוצרת שירות systemd לסוכן, בשם google-cloud-workload-agent.
  • הפעלת השירות google-cloud-workload-agent והתחלת השימוש בו.

כדי להתקין ולהגדיר את Agent for Compute Workloads במופע Compute מבוסס Debian, מבצעים את השלבים הבאים:

  1. יוצרים חיבור SSH למכונת Compute.

  2. בטרמינל, מתקינים את הסוכן:

    echo 'deb https://packages.cloud.google.com/apt google-cloud-workload-agent-x86-64-apt main' | sudo tee -a /etc/apt/sources.list.d/google-cloud-workload-agent.list
    sudo apt-get update
    sudo apt-get install google-cloud-workload-agent
    
  3. פותחים את קובץ ההגדרות של הסוכן:

    /etc/google-cloud-workload-agent/configuration.json
    
  4. מציינים ערכים לכל פרמטרי החובה, כפי שמתואר במאמר בנושא פרמטרים של הגדרות.

  5. שמירת קובץ ההגדרות

  6. כדי שהשינויים ייכנסו לתוקף, צריך להפעיל מחדש את הסוכן.

Windows

ב-Windows, מתקינים את Agent for Compute Workloads באמצעות פקודת ניהול החבילות googet. הפקודה הזו מבצעת את המשימות הבאות:

  • מוריד את הגרסה האחרונה של הסוכן.
  • יוצר שירות Windows בשם google-cloud-workload-agent.
  • יוצר משימה מתוזמנת שפועלת כל דקה כדי לבדוק אם השירות פועל, ואם צריך, מפעיל מחדש את השירות.

כדי להתקין ולהגדיר את Agent for Compute Workloads במכונת חישוב מבוססת Windows, מבצעים את השלבים הבאים:

  1. יוצרים חיבור למכונה לחישוב באמצעות RDP.

    מידע נוסף זמין במאמר איך מתחברים למכונות וירטואליות של Windows באמצעות RDP.

  2. אדמינים צריכים להריץ את הפקודות הבאות מ-PowerShell:

    googet addrepo google-cloud-workload-agent  https://packages.cloud.google.com/yuck/repos/google-cloud-workload-agent-windows-x86_64
    googet install google-cloud-workload-agent
    
  3. פותחים את קובץ ההגדרות של הסוכן:

    %ProgramFiles%\Google\google-cloud-workload-agent\conf\configuration.json
    
  4. מציינים ערכים לכל פרמטרי החובה, כפי שמתואר במאמר בנושא פרמטרים של הגדרות.

  5. שמירת קובץ ההגדרות

  6. כדי שהשינויים ייכנסו לתוקף, צריך להפעיל מחדש את הסוכן.

התקנה וניהול של הסוכן בצי של מכונות וירטואליות באמצעות VM Extension Manager

הגדרת VM Extension Manager

כדי להגדיר את VM Extension Manager, מבצעים את השלבים הבאים:

התקנת הסוכן בצי של מכונות וירטואליות

כדי להתקין את הגרסה העדכנית של Agent for Compute Workloads בצי מכונות ה-VM באזור ספציפי באמצעות מדיניות של VM Extension Manager, צריך לבצע את השלבים הבאים:

המסוף

  1. נכנסים לדף VM extension policies במסוף Google Cloud .

    מעבר אל מדיניות התוספים למכונות וירטואליות

  2. לוחצים על יצירת מדיניות לגבי תוספים.

  3. בשדה Name, מזינים שם למדיניות.

  4. אופציונלי: בשדה תיאור, מזינים תיאור למדיניות.

  5. בשדה עדיפות, מציינים מספר עדיפות כדי לפתור סתירות בין כללי מדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000.

  6. ברשימות Region ו-Zone, בוחרים את התחום שבו רוצים להחיל את המדיניות הזו.

  7. בקטע תוספים, לוחצים על הוספת תוסף ומבצעים את הפעולות הבאות:

    1. ברשימה Extension (תוסף), בוחרים באפשרות Google Cloud's Extension for Compute Workloads (התוסף של Google Cloud לעומסי עבודה של מחשוב).
    2. משאירים את השדה Version (גרסה) ריק.

      ההגדרה הזו מכוונת את המדיניות להתקין את הגרסה האחרונה של Agent for Compute Workloads.

    3. בשדה Configuration file content (תוכן קובץ התצורה), מזינים את ההגדרות שרוצים להחיל על הסוכן.

      מידע על פרמטרי ההגדרה שנתמכים על ידי הסוכן עבור עומס העבודה של Redis זמין במאמר בנושא פרמטרי הגדרה.

    4. לוחצים על סיום.

  8. אופציונלי: כדי להגביל את הפריסה של המדיניות למכונות הווירטואליות הנדרשות, מבצעים את הפעולות הבאות:

    1. לוחצים על הוספת תוויות וכוללים את התוויות שמזהות את מכונות ה-VM הנדרשות.
    2. לוחצים על סיום.
  9. לוחצים על יצירה.

gcloud

gcloud compute zone-vm-extension-policies create POLICY_NAME \
    --zone=ZONE \
    --extensions=google-cloud-workload-extension \
    --config-from-file=google-cloud-workload-extension=CONFIG_FILE_PATH \
    [--description="DESCRIPTION" \]
    [--inclusion-labels=KEY_1=VALUE_1 \]
    [--inclusion-labels=KEY_2=VALUE_2,KEY_3=VALUE_3 \]
    [--priority=PRIORITY]

מחליפים את מה שכתוב בשדות הבאים:

  • POLICY_NAME: שם למדיניות של תוסף ה-VM.

    הפקודה תיכשל אם כבר קיימת מדיניות באזור עם השם שצוין.

  • ZONE: האזור שבו רוצים להחיל את המדיניות הזו.

  • CONFIG_FILE_PATH: הנתיב המקומי לקובץ ה-JSON שמכיל את ההגדרות של Agent for Compute Workloads (הסוכן לעומסי עבודה של מחשוב) כדי להתחבר לעומס העבודה של Redis.

    • לחלופין, כדי לספק את התצורה כמחרוזת מוטבעת, משתמשים בדגל --config במקום בדגל --config-from-file. לדוגמה: --config=google-cloud-workload-extension="CONFIG". לפי ההמלצה שלGoogle Cloud , כדאי להשתמש ב---config-from-file.
    • אפשר להשתמש ב---config-from-file או ב---config, אבל לא בשניהם באותה פקודה.
    • מידע על פרמטרי ההגדרה שנתמכים על ידי הסוכן עבור עומס העבודה של Redis זמין במאמר בנושא פרמטרי הגדרה.
  • DESCRIPTION: תיאור אופציונלי של המדיניות.

  • KEY_1=VALUE_1: רשימה מופרדת בפסיקים של צמדי מפתח/ערך שמגדירים את התוויות שבהן המדיניות ממקדת מכונות וירטואליות.

    • כדי שמדיניות תכוון למכונה וירטואלית, המכונה הווירטואלית צריכה לכלול את כל התוויות שצוינו.
    • אם מציינים את --inclusion-labels כמה פעמים, המדיניות מטרגטת מכונות וירטואליות שתואמות לכל אחד מהסלקטורים שצוינו (לוגיקת OR). אם משמיטים את הדגל הזה, המדיניות מטרגטת את כל המכונות הווירטואליות באזור שצוין.
  • PRIORITY: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000.

לדוגמה:

הפקודה הבאה יוצרת מדיניות בשם test-agent-policy בפרויקטGoogle Cloud בשם test-project, שמתקינה את הגרסה האחרונה של Agent for Compute Workloads בכל המכונות הווירטואליות שנפרסו באזור us-centrail-f. ההגדרה שצוינה ב-agent-config.json מוחלת על הסוכן.

gcloud compute zone-vm-extension-policies create test-agent-policy  \
    --project=test-project \
    --zone=us-central1-f \
    --extensions=google-cloud-workload-extension \
    --config-file-path=google-cloud-workload-extension="/usr/agent-config.json"

אימות ההתקנה של הנציג

כדי לוודא שהסוכן פועל כמצופה, מבצעים את השלבים הבאים:

RHEL

  1. יוצרים חיבור SSH למכונת Compute.

  2. בודקים את הסטטוס של חבילת הסוכן:

    systemctl status google-cloud-workload-agent
    

    אם חבילת הסוכן פועלת כמצופה, הפלט יכיל את הערך active (running). לדוגמה:

    google-cloud-workload-agent.service - Google Cloud Agent for Compute Workloads
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-workload-agent.service; enabled; vendor preset: disabled)
    Active: active (running) since Sun 2025-07-30 18:59:12 UTC; 10s ago
    Main PID: 14412 (google_cloud_sq)
      Tasks: 7
    Memory: 12.9M (max: 1.0G limit: 1.0G available: 1011.0M)
    CGroup: /system.slice/google-cloud-workload-agent.service
            └─ 14412 /usr/bin/google_cloud_sql_server_agent --action=run

SLES

  1. יוצרים חיבור SSH למכונת Compute.

  2. בודקים את הסטטוס של חבילת הסוכן:

    systemctl status google-cloud-workload-agent
    

    אם חבילת הסוכן פועלת כמצופה, הפלט יכיל את הערך active (running). לדוגמה:

    google-cloud-workload-agent.service - Google Cloud Agent for Compute Workloads
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-workload-agent.service; enabled; vendor preset: disabled)
    Active: active (running) since Sun 2025-07-30 18:59:12 UTC; 10s ago
    Main PID: 14412 (google_cloud_sq)
      Tasks: 7
    Memory: 12.9M (max: 1.0G limit: 1.0G available: 1011.0M)
    CGroup: /system.slice/google-cloud-workload-agent.service
            └─ 14412 /usr/bin/google_cloud_sql_server_agent --action=run

‫Debian

  1. יוצרים חיבור SSH למכונת Compute.

  2. בודקים את הסטטוס של חבילת הסוכן:

    systemctl status google-cloud-workload-agent
    

    אם חבילת הסוכן פועלת כמצופה, הפלט יכיל את הערך active (running). לדוגמה:

    google-cloud-workload-agent.service - Google Cloud Agent for Compute Workloads
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-workload-agent.service; enabled; vendor preset: disabled)
    Active: active (running) since Sun 2025-07-30 18:59:12 UTC; 10s ago
    Main PID: 14412 (google_cloud_sq)
      Tasks: 7
    Memory: 12.9M (max: 1.0G limit: 1.0G available: 1011.0M)
    CGroup: /system.slice/google-cloud-workload-agent.service
            └─ 14412 /usr/bin/google_cloud_sql_server_agent --action=run

Windows

  1. יוצרים חיבור למכונה לחישוב באמצעות RDP.

    מידע נוסף זמין במאמר איך מתחברים למכונות וירטואליות של Windows באמצעות RDP.

  2. אדמינים צריכים להריץ את הפקודה הבאה מ-PowerShell:

    $(Get-Service -Name 'google-cloud-workload-agent' -ErrorAction Ignore).Status
    

    אם הסוכן פועל כמצופה, הסטטוס שיוצג הוא Running.

קובץ תצורה לדוגמה

ההגדרה הבאה מאפשרת ל-Agent for Compute Workloads להתחבר למופע Redis. לצורך אימות, נעשה שימוש בסוד של Secret Manager, שמאוחסן באותו פרויקט של Google Cloud שבו פועל מופע Redis.

{
  "log_level": "INFO",
  "common_discovery": {
    "collection_frequency": "10800s"
  },
  "redis_configuration": {
    "enabled": true,
    "connection_parameters": {
      "username": "db_user_name",
      "secret": {
        "secret_name": "db_pwd_secret_name",
        "project_id": ""
      },
      "host": "localhost",
      "port": 1433
    }
  }
}

פרמטרים להגדרה

בטבלה הבאה מפורטים פרמטרי ההגדרה של Agent for Compute Workloads שתומך בהערכות של עומסי עבודה של Redis:

פרמטרים
log_level

String

כדי להגדיר את רמת הרישום ביומן של הסוכן, מגדירים את הערך הנדרש. אלה רמות היומן הזמינות:

  • DEBUG
  • INFO
  • WARNING
  • ERROR

רמת ברירת המחדל של היומן היא INFO. אל תשנו את רמת הרישום ביומן, אלא אם קיבלתם הנחיה לעשות זאת מ-Cloud Customer Care.

log_to_cloud

Boolean

כדי להפנות את היומנים של הסוכן אל Cloud Logging, מציינים את true. ערך ברירת המחדל הוא true.

agent_properties.log_usage_metrics

Boolean

כדי להפעיל את הרישום ביומן של מדדי תקינות הסוכן, מגדירים את הערך ל- true. ערך ברירת המחדל הוא false.

common_discovery.collection_frequency

Duration

מציינים את התדירות בשניות שבה מופעל שירות גילוי עומסי העבודה של הסוכן. ערך ברירת המחדל הוא 10800s.

מוודאים שהערך של הפרמטר הזה מסתיים באות s קטנה.

redis_configuration.enabled

Boolean

כדי לאפשר לסוכן לאסוף מדדים ממופע Redis, מגדירים את הערך ל-true. ערך ברירת המחדל הוא false.

redis_configuration.connection_parameters.username

String

מציינים את חשבון המשתמש שבו הסוכן משתמש כדי לשלוח שאילתות למופע Redis.

redis_configuration.connection_parameters.password

String

מציינים את הסיסמה בטקסט פשוט לחשבון המשתמש שבו הסוכן משתמש כדי לשלוח שאילתה למופע Redis.

במקום לציין סיסמה בטקסט פשוט, מומלץ להשתמש בפרמטרים secret.name ו-secret.project_id.

לצורך אימות, הסוכן משתמש בסדר העדיפות הבא: אם מצוין, קבוצת הפרמטרים secret עדיפה על הפרמטר password. מומלץ להגדיר רק אפשרות אימות אחת בקובץ ההגדרות של הסוכן.

redis_configuration.connection_parameters.secret.secret_name

String

זה שינוי אופציונלי. כדי לספק בצורה מאובטחת את הסיסמה לחשבון המשתמש שהסוכן משתמש בו כדי לשלוח שאילתות למופע Redis, מציינים את השם של הסוד ב-Secret Manager שמכיל את הסיסמה.

לצורך אימות, הסוכן משתמש בסדר העדיפות הבא: אם מצוין, קבוצת הפרמטרים secret עדיפה על הפרמטר password. מומלץ להגדיר רק אפשרות אימות אחת בקובץ ההגדרות של הסוכן.

redis_configuration.connection_parameters.secret.project_id

String

זה שינוי אופציונלי. כדי להשתמש בפרמטר secret.secret_name לאימות חשבון המשתמש שצוין, צריך לציין את מזהה הפרויקט של פרויקט Google Cloud שבו מאוחסן הסוד של Secret Manager.

אם הסוד וכוח העבודה נמצאים באותו Google Cloud פרויקט, צריך להגדיר את הערך של הפרמטר הזה כמחרוזת ריקה ("").

redis_configuration.connection_parameters.host

String

מציינים את שם המארח של Redis.

redis_configuration.connection_parameters.port

Int

מציינים את היציאה שבה מופע Redis מקבל שאילתות.

המאמרים הבאים