הגדרת הסוכן לעומסי עבודה של Microsoft SQL Server

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

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

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

לפני שמתקינים ומגדירים את 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 כדי לאחסן את הסיסמה להתחברות למופע של SQL Server: Secret Manager Secret Accessor (roles/secretmanager.secretAccessor)

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

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

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

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

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

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

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

אם אתם מריצים אפליקציות של SQL Server במופע של Compute שלא מוקצה לו כתובת IP חיצונית, אתם צריכים להפעיל גישה פרטית ל-Google ברשת המשנה של המופע כדי שהסוכן של Compute Workloads יוכל לגשת לממשקי ה-API ולשירותים של Google. מידע על הפעלת גישה פרטית ל-Google זמין במאמר הגדרת גישה פרטית ל-Google.

ההרשאות הנדרשות ב-SQL Server

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

    USE [master]
    GO 
GRANT VIEW SERVER STATE TO [user_name] GRANT VIEW ANY DEFINITION TO [user_name]
-- Adds db_datareader role to the user EXEC sp_MSForEachDB ' USE ? IF NOT EXISTS(SELECT * FROM sys.database_principals WHERE name = ''user_name'') BEGIN CREATE USER [user_name] FOR LOGIN [user_name] END EXEC sp_addrolemember ''db_datareader'', ''user_name'' '

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

בקטע הזה מוסבר איך להתקין את הסוכן לעומסי עבודה ב-Compute במכונת ה-Compute שלכם, ואיך להגדיר אותו להתחבר למופע של SQL Server באמצעות מנהל חבילות.

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

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. כדי שהשינויים ייכנסו לתוקף, צריך להפעיל מחדש את הסוכן.

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. כדי שהשינויים ייכנסו לתוקף, צריך להפעיל מחדש את הסוכן.

התקנה וניהול של הסוכן בצי של מכונות וירטואליות באמצעות 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 (תוכן קובץ התצורה), מזינים את ההגדרות שרוצים להחיל על הסוכן.

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

    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 לחיבור עם עומס העבודה של SQL Server.

    • לחלופין, כדי לספק את התצורה כמחרוזת מוטבעת, משתמשים בדגל --config במקום בדגל --config-from-file. לדוגמה: --config=google-cloud-workload-extension="CONFIG". לפי ההמלצה שלGoogle Cloud , כדאי להשתמש ב---config-from-file.
    • אפשר להשתמש ב---config-from-file או ב---config, אבל לא בשניהם באותה פקודה.
    • מידע על פרמטרים של הגדרות שנתמכים על ידי הסוכן לעומס העבודה של SQL Server זמין במאמר פרמטרים של הגדרות.
  • 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"

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

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

Windows

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

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

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

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

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

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

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

בטבלה הבאה מפורטים הפרמטרים של קובץ ההגדרות של הסוכן.

פרמטרים
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 קטנה.

sqlserver_configuration.enabled

Boolean

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

sqlserver_configuration.collection_configuration.collect_guest_os_metrics

Boolean

כדי להפעיל את איסוף המדדים של מערכת ההפעלה, מגדירים את הערך כ-true. ערך ברירת המחדל הוא true. ‫
אל תגדירו את sqlserver_configuration.collection_configuration.collect_guest_os_metrics כ-false אלא אם קיבלתם הנחיה לעשות זאת מ-Cloud Customer Care.

sqlserver_configuration.collection_configuration.collect_sql_metrics

Boolean

כדי להפעיל איסוף מדדים של SQL Server, מציינים true. ערך ברירת המחדל הוא true. ‫
אל תגדירו את sqlserver_configuration.collection_configuration.collect_sql_metrics כ-false אלא אם קיבלתם הנחיה לעשות זאת מ-Cloud Customer Care.

sqlserver_configuration.collection_configuration.collection_frequency

Duration

תדירות האיסוף של מדדים של Agent for Compute Workloads, בשניות. ערך ברירת המחדל הוא 3600s. אפשר לעדכן את תדירות האיסוף. עם זאת, מומלץ להשאיר את ערך ברירת המחדל.

sqlserver_configuration.credential_configurations[].connection_parameters[].host

String

שם המארח של SQL Server.

sqlserver_configuration.credential_configurations[].connection_parameters[].username

String

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

הערה: אם אתם משתמשים באימות של Windows, הקפידו לציין את שם המשתמש בפורמט הבא: domain-name\\user-name

sqlserver_configuration.credential_configurations[].connection_parameters[].secret.project_id

String

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

sqlserver_configuration.credential_configurations[].connection_parameters[].secret.secret_name

String

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

הערה: הסוד והמכונה הווירטואלית המארחת צריכים להיות באותו Google Cloud פרויקט.

sqlserver_configuration.credential_configurations[].connection_parameters[].port

Int

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

sqlserver_configuration.credential_configurations[].remote_win.connection_parameters.host

String

כתובת IP או FQDN של מכונת Windows וירטואלית מרוחקת

sqlserver_configuration.credential_configurations[].remote_win.connection_parameters.username

String

מציינים את חשבון המשתמש שמשמש לחיבור מרחוק למכונת Windows הווירטואלית.

sqlserver_configuration.credential_configurations[].remote_win.connection_parameters.secret.secret_name

String

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

הערה: הסוד והמכונה הווירטואלית המארחת צריכים להיות באותו Google Cloud פרויקט.

sqlserver_configuration.credential_configurations[].local_collection

Boolean

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

sqlserver_configuration.credential_configurations[].remote_linux.connection_parameters.host

String

כתובת ה-IP או ה-FQDN של מכונת ה-Linux הווירטואלית המרוחקת.

sqlserver_configuration.credential_configurations[].remote_linux.connection_parameters.username

String

מציינים את חשבון המשתמש שמשמש לחיבור מרחוק למכונת ה-VM של Linux.

sqlserver_configuration.credential_configurations[].remote_linux.connection_parameter.port

Int

מציינים את מספר יציאת ה-SSH של מכונת ה-Linux הווירטואלית המרוחקת.

sqlserver_configuration.credential_configurations[].remote_linux.linux_ssh_private_key_path

String

מציינים את הנתיב לקובץ המפתח הפרטי של SSH.

sqlserver_configuration.credential_configurations[].vm_properties.instance_name

String

מציינים את השם של מכונת ה-VM של Compute Engine.

הערה: אופציונלי לקולקציה מקומית.

sqlserver_configuration.credential_configurations[].vm_properties.instance_id

String

מציינים את המזהה של המכונה הווירטואלית ב-Compute Engine.

הערה: אופציונלי לקולקציה מקומית.

sqlserver_configuration.collection_timeout

Duration

הזמן הקצוב לתפוגה של איסוף מדדים, בשניות. ברירת המחדל היא ‎ `10s`‎.

sqlserver_configuration.max_retries

Int

המספר המקסימלי של ניסיונות חוזרים במקרה של איסוף שנכשל. ערך ברירת המחדל הוא 3.

sqlserver_configuration.retry_frequency

Duration

מגדירים את התדירות שבה הסוכן ינסה שוב אם איסוף נכשל. ערך ברירת המחדל הוא ‎ `3600s`‎.

sqlserver_configuration.remote_collection

Boolean

מציינים true כדי לציין שהסוכן מבצע איסוף נתונים מרחוק. ערך ברירת המחדל הוא false.

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

ההגדרה הבאה היא דוגמה להגדרה שמאפשרת ל-Agent for Compute Workloads להתחבר למכונה של SQL Server:

איסוף מקומי

{
"log_level": "INFO",
"common_discovery": {
    "collection_frequency": "10800s"
},
"sqlserver_configuration": {
    "enabled": true,
    "collection_configuration": {
        "collect_guest_os_metrics": true,
        "collect_sql_metrics": true,
        "collection_frequency": "60s"
    },
    "credential_configurations": [
        {
            "connection_parameters": [
                {
                    "host": ".",
                    "username": "db_user_name",
                    "secret": {
                        "project_id": "",
                        "secret_name": "idb_pwd_secret_name"
                    },
                    "port": 1433
                }
            ],
            "local_collection": true
        }
    ],
    "collection_timeout": "60s",
    "max_retries": 5,
    "retry_frequency": "3600s"
}
}

איסוף מרחוק

{
"log_level": "INFO",
"common_discovery": {
    "collection_frequency": "10800s"
},
"sqlserver_configuration": {
    "enabled": true,
    "collection_configuration": {
        "collect_guest_os_metrics": true,
        "collect_sql_metrics": true,
        "collection_frequency": "60s"
    },
    "credential_configurations": [
        {
            "connection_parameters": [
                {
                    "host": "sql_server_instance",
                    "username": "db_user_name",
                    "secret": {
                        "project_id": "",
                        "secret_name": "db_pwd_secret_name"
                    },
                    "port": 1433
                }
            ],
            "remote_win": {
                "connection_parameters": {
                    "host": "sql_server_instance",
                    "username": "user_name",
                    "secret": {
                        "project_id": "",
                        "secret_name": "pwd_secret_name"
                    }
                }
            },
            "vm_properties": {
                "instance_name": "db01",
                "instance_id": "9999999999999999999"
            }
        },
        {
            "connection_parameters": [
                {
                    "host": "sql_server_instance",
                    "username": "db_user_name",
                    "secret": {
                        "project_id": "",
                        "secret_name": "db_pwd_secret_name"
                    },
                    "port": 1433
                }
            ],
            "remote_linux": {
                "connection_parameters": {
                    "host": "sql_server_instance",
                    "username": "user_name",
                    "secret": {
                        "project_id": "",
                        "secret_name": "pwd_secret_name"
                    },
                    "port": 22
                },
                "linux_ssh_private_key_path": "path of the private key"
            },
            "vm_properties": {
                "instance_name": "db02",
                "instance_id": "9999999999999999999"
            }
        }
    ],
    "collection_timeout": "10s",
    "max_retries": 3,
    "retry_frequency": "3600s",
    "remote_collection": true
}
}

בדיקת גרסת הסוכן

כדי לבדוק את גרסת הסוכן:

Windows

  1. משתמשים ב-RDP כדי להתחבר למחשב המארח.
  2. אדמינים צריכים להריץ את הפקודה הבאה מ-PowerShell:
    googet installed google-cloud-workload-agent

RHEL

  1. משתמשים ב-SSH כדי להתחבר למחשב המארח.
  2. מריצים את הפקודה הבאה:
    yum info google-cloud-workload-agent

SUSE

  1. משתמשים ב-SSH כדי להתחבר למחשב המארח.
  2. מריצים את הפקודה הבאה:
    zypper info google-cloud-workload-agent

Debian

  1. משתמשים ב-SSH כדי להתחבר למחשב המארח.
  2. מריצים את הפקודה הבאה:
    dpkg -s google-cloud-workload-agent | grep version

הפעלה מחדש של הסוכן

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

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

Windows

  1. משתמשים ב-RDP כדי להתחבר למחשב המארח.
  2. אדמינים צריכים להריץ את הפקודה הבאה מ-PowerShell:
    Restart-Service -Name 'google-cloud-workload-agent' -Force

Linux

  1. משתמשים ב-SSH כדי להתחבר למחשב המארח.
  2. מריצים את הפקודה הבאה:
    sudo systemctl restart google-cloud-workload-agent

עדכון הסוכן

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

חיפוש עדכונים

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

Windows

  1. משתמשים ב-RDP כדי להתחבר למחשב המארח.
  2. אדמינים צריכים להריץ את הפקודה הבאה מ-PowerShell:
    googet latest google-cloud-workload-agent

RHEL

  1. משתמשים ב-SSH כדי להתחבר למחשב המארח.
  2. מריצים את הפקודה הבאה:
    sudo yum check-update google-cloud-workload-agent

SLES

  1. משתמשים ב-SSH כדי להתחבר למחשב המארח.
  2. מריצים את הפקודה הבאה:
    sudo zypper list-updates -r google-cloud-workload-agent

Debian

  1. משתמשים ב-SSH כדי להתחבר למחשב המארח.
  2. מריצים את הפקודה הבאה:
    sudo apt list google-cloud-workload-agent

התקנת עדכון

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

Windows

  1. משתמשים ב-RDP כדי להתחבר למחשב המארח.
  2. אדמינים צריכים להריץ את הפקודה הבאה מ-PowerShell:
    googet install google-cloud-workload-agent

RHEL

  1. משתמשים ב-SSH כדי להתחבר למחשב המארח.
  2. מריצים את הפקודה הבאה:
    sudo yum --nogpgcheck update google-cloud-workload-agent

SLES

  1. משתמשים ב-SSH כדי להתחבר למחשב המארח.
  2. מריצים את הפקודה הבאה:
    sudo zypper --no-gpg-checks update google-cloud-workload-agent

Debian

  1. משתמשים ב-SSH כדי להתחבר למחשב המארח.
  2. מריצים את הפקודה הבאה:
    sudo apt-get install google-cloud-workload-agent

צפייה ביומנים של הסוכן ב-Cloud Logging

כברירת מחדל, היומנים של Agent for Compute Workloads מופנים ממכונות ה-VM אל Cloud Logging.

כדי לראות את היומנים של הסוכן ב-Logging, פועלים לפי השלבים הבאים:

  1. נכנסים לדף Logs Explorer במסוף Google Cloud .

    כניסה לדף Logs Explorer

  2. עוברים לחלונית שאילתה.

  3. בתפריט הנפתח Resources (משאבים), בוחרים באפשרות Global (גלובלי) ולוחצים על Apply (החלה).

  4. מזינים google-cloud-workload-agent בעורך השאילתות.

  5. לוחצים על Run query.

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

השבתת היומנים של הסוכן ב-Cloud Logging

כדי להשבית את ההפניה האוטומטית של יומני הסוכן אל Cloud Logging, פועלים לפי השלבים הבאים:

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

  2. פותחים את קובץ ההגדרות של הסוכן:

    Windows

    %ProgramFiles%\Google\google-cloud-workload-agent\conf\configuration.json

    Linux

    /etc/google-cloud-workload-agent/configuration.json

  3. בנכס log_to_cloud, מעדכנים את הערך ל-false.

  4. שומרים את קובץ ההגדרות.

  5. מפעילים מחדש את הסוכן כדי שהשינוי ייכנס לתוקף.

פתרון בעיות

בקטעים הבאים מפורטות בעיות נפוצות שקשורות לשימוש ב-Agent for Compute Workloads, הסיבות להן והפתרונות.

היקפי ההרשאות לאימות לא מספיקים

בעיה: אם מגבילים את היקפי הגישה במכונה וירטואלית מארחת, יכול להיות שיופיעו ביומני הרישום של Agent for Compute Workloads שגיאות שקשורות להרשאות IAM לא מספיקות.

  googleapi: Error 403: Request had insufficient authentication scopes.
  Details:
  [
    {
      "@type": "type.googleapis.com/google.rpc.ErrorInfo",
      "domain": "googleapis.com",
      "metadata": {
        "method": "google.cloud.workloadmanager.datawarehouse.v1.DataCollectService.WriteInsight",
        "service": "workloadmanager.googleapis.com"
      },
      "reason": "ACCESS_TOKEN_SCOPE_INSUFFICIENT"
    }
  ]

More details: Reason: insufficientPermissions, Message: Insufficient Permission

הגורם: ל-Agent for Compute Workloads נדרשות הרשאות מינימליות לגישה ל-Cloud API במכונה הווירטואלית המארחת.

פתרון: כדי לפתור את הבעיה, צריך להפעיל את היקפי הגישה הנדרשים

טעינת קובץ ההגדרות נכשלה

הבעיה: אם בקובץ ההגדרות יש ערכים לא תקינים, תוצג השגיאה הבאה.

"Failed to load configuration","pid":3524,"error":"proto: (line 19:42): unknown
field "{field_name}"

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

האתחול של איסוף הנתונים נכשל

הבעיה: אחרי התקנת הסוכן, אם קובץ ההגדרות לא מתעדכן, מופיעה השגיאה הבאה:

"Failed to initialize guest collection","pid":2112,"error":"invalid value for "user_name" "secret_name"

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

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