פתרון בעיות בתוספים של מכונות וירטואליות

במאמר הזה מוסבר איך לאמת את ההתקנה של תוסף למכונה וירטואלית, לאבחן בעיות בהשקת מדיניות ובמצב של תוסף למכונה וירטואלית, ולצפות ביומני ניפוי באגים של סוכן אורח במכונות וירטואליות (VM) של Compute Engine. כאן מוסבר איך לזהות למה תוסף צפוי לא הותקן, למה תוסף לא צפוי פועל במכונה וירטואלית או למה תהליך של תוסף נעצר.

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

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

  • מוודאים שיש לכם את ההרשאות הנדרשות כדי לבדוק את כללי המדיניות של התוספים, את המטא-נתונים של התוספים שנתמכים ב-VM Extension Manager ואת המצבים של תוספי ה-VM בהיררכיית המשאבים של Cloud de Confiance by S3NS . מידע נוסף זמין במאמר הצגת הפרטים והסטטוס של תוסף VM.
  • כדי לזהות כשלים בהתקנה, קריסות או החזרות למצב קודם לפני שמתחברים למכונות וירטואליות ספציפיות, בודקים את האירועים ההיסטוריים של אכיפת התוספים ב-Cloud Logging. מידע נוסף זמין במאמר צפייה ביומנים של תוספי VM.
  • כדי לבדוק תהליכים של תוספים שפועלים ויומני ניפוי באגים של סוכן אורח ישירות ב-VM, ודאו שאתם יכולים להתחבר ל-VM באמצעות SSH או RDP.

איך בודקים אם התוסף מותקן

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

בדיקת המצב של תוסף ה-VM באמצעות השיטות לקריאה בלבד

כדי לבדוק את מצב זמן הריצה ואת סטטוס התקינות של התוספים המותקנים בלי להתחבר למכונה הווירטואלית, מריצים את הפקודה gcloud beta compute instances list-vm-extension-states או gcloud beta compute instances get-vm-extension-state, או קוראים לשיטות המקבילות של API בארכיטקטורת REST. התשובה מחזירה את הגרסה הפעילה של כל תוסף, מצב האכיפה (enforcementState), מצב התקינות (healthStatus), הודעת האבחון (healthMsg) ומזהה המדיניות השולטת (policyId). מידע נוסף זמין במאמר הצגת מצבי תוסף VM במכונה.

בדיקת תהליכי התוספים שפועלים ב-VM

אם שאילתות של מצב מרוחק לא מחזירות את הסטטוס הצפוי, מתחברים ל-VM ובודקים אם תהליך התוסף פועל במערכת ההפעלה של האורח.

בטבלה הבאה מפורטים שמות התהליכים של כל תוסף נתמך:

שם התוסף שם התהליך של התוסף
google-cloud-sap-extension google_cloud_sap_agent
google-cloud-workload-extension google_cloud_workload_agent
ops-agent ops_agent

כדי לבדוק אם תהליך התוסף פועל ב-VM, בוחרים את מערכת ההפעלה:

Linux

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

ps aux | grep 'EXTENSION_PROCESS_NAME'
מחליפים את EXTENSION_PROCESS_NAME בשם התהליך של התוסף מהטבלה שלמעלה. לדוגמה, כדי להציג את תהליך התוסף ops-agent, מריצים את הפקודה הבאה:
ps aux | grep 'ops_agent'

Windows

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

tasklist | findstr "EXTENSION_PROCESS_NAME"
מחליפים את EXTENSION_PROCESS_NAME בשם התהליך של התוסף מהטבלה שלמעלה. לדוגמה, כדי להציג את תהליך התוסף ops-agent, מריצים את הפקודה הבאה:
tasklist | findstr "ops_agent"

בקטע הקוד הבא מוצג פלט לדוגמה מהפקודה ps כשהתוסף ops-agent פועל במכונה וירטואלית של Linux:

....
/var/lib/google-guest-agent/931374772276853249/plugins/ops-agent_baddabb3dac3
....

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

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

קטע הקוד הבא מציג רשומות לדוגמה ביומן הפעילות של סוכן האורח, כשהסוכן מתקין ומפעיל את התוסף ops-agent ב-VM של Linux:

my-instance google_guest_agent [14972]: Installing plugin "ops-agent", revision "2dfa648c1892da87"
my-instance google_guest_agent [14972]: (client.go:181) Sent message [[type.googleapis.com/agent_controlplane.PluginEventMessage: (revision_id:"2dfa648c1892da87)]]
my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "DownloadPluginStep" on plugin "ops-agent_2dfa648c1892da87"
my-instance google_guest_agent [14972]: (pluginengine.go:316) Successfully downloaded "https://storage.googleapis.com/acp-gcs-bucket-us-central1-a/ops-agent
my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "UnpackPluginArchiveStep" on plugin "ops-agent_2dfa648c1892da87"
my-instance google_guest_agent [14972]: (pluginengine.go:361) Successfully unpacked "/var/lib/google-guest-agent/ops-agent.tar.gz" to "/google-guest-agent/ops-agent_2dfa648c1892da87
my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "LaunchPluginStep" on plugin "ops-agent_2dfa648c1892da87"
my-instance google_guest_agent [14972]: (run_linux.go:32) Attempting process start: (OutputType:0 Name:/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87)
my-instance google_guest_agent [14972]: (pluginlauncher.go:132) Launched a plugin process from "/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87"
my-instance google_guest_agent [14972]: (plugin.go:136) Dialing in on plugin "ops-agent 2dfa648c1892da87"
my-instance google_guest_agent [14972]: (plugin.go:51) Executing start request on plugin "ops-agent_2dfa648c1892da87"

פתרון בעיות בהתקנה

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

כדי לזהות למה ההתקנה של התוסף נכשלה ב-VM, מבצעים את שלבי האבחון הבאים:

  1. ממתינים לאכיפת המדיניות. השקת מדיניות, כולל ניסיונות חוזרים, יכולה להימשך עד שעה במכונות הווירטואליות המטורגטות. מידע נוסף על בדיקת ההתקדמות של ההשקה זמין במאמר הצגת מדיניות ההרחבה.
  2. בודקים שתוויות ההכללה שציינתם במדיניות תואמות לתוויות במכונה הווירטואלית, ומאמתים את המטא-נתונים של התוספים שנתמכים ב-VM Extension Manager:
  3. כדי לבדוק את מצב האכיפה, מצב התקינות, הודעת האבחון ומזהה המדיניות השולטת (policyId), בודקים את מצב התוסף במכונה הווירטואלית המושפעת. מצבי שגיאה נפוצים כוללים את INSTALL_FAILED, INCOMPATIBLE ו-ROLLED_BACK. אם כמה כללי מדיניות מטרגטים את אותה מכונה וירטואלית, השדה policyId מראה איזה כלל מדיניות חל על כל תוסף. מידע נוסף זמין במאמר הצגת מצבי התוספים של מכונות וירטואליות במכונה.
  4. כדי לזהות שגיאות התקנה ברמת האורח ב-VM, מפעילים את יומני ניפוי הבאגים של סוכן האורח ומציגים אותם.

ניסיון נוסף להתקין את התוסף

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

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

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

    1. מוסיפים תווית זמנית, כמו status=failed, למכונות הווירטואליות שבהן ההתקנה נכשלה.
    2. יוצרים מדיניות זמנית עם עדיפות גבוהה יותר (ערך שלם נמוך יותר) שמטרגטת את התווית הזמנית. לדוגמה, אם במדיניות המקורית מוגדרת עדיפות ברירת המחדל 1000, כדי ליצור מדיניות זמנית עם עדיפות 500, מריצים את הפקודה הבאה:

      gcloud compute zone-vm-extension-policies create temp-policy \
          --project=test-project \
          --zone=us-central1-f \
          --extensions=ops-agent \
          --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \
          --priority=500 \
          --inclusion-labels=status=failed
      
    3. אחרי שסוכן האורח מתקין את התוסף במכונות הווירטואליות המטורגטות, מוחקים את המדיניות הזמנית.

    4. מסירים את התווית הזמנית מהמכונות הווירטואליות. התוסף נשאר מותקן כי המדיניות המקורית עדיין חלה על המכונות הווירטואליות האלה.

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

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

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

Linux

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

  1. פותחים את קובץ התצורה של סוכן האורח ב-/etc/default/instance_configs.cfg.
  2. ב-/etc/default/instance_configs.cfg, מוסיפים את ההגדרות הבאות. אם הקטע [Core] כבר קיים, מוסיפים את log_level ואת log_verbosity מתחת ל-[Core]:

    [Core]
    log_level = 4
    log_verbosity = 4
    
  3. כדי להפעיל מחדש את מנהל הסוכן של המכונה הווירטואלית, מריצים את הפקודה הבאה:

    sudo systemctl restart google-guest-agent-manager
    
  4. כדי להציג את יומני סוכן האורח שנוצרו במהלך התקנת התוסף, מריצים את הפקודה הבאה:

    journalctl -u google-guest-agent-manager
    

Windows

כדי להפעיל רישום ביומן של ניפוי באגים ב-VM של Windows:

  1. פותחים את קובץ התצורה של סוכן האורח ב-C:\Program Files\Google\Compute Engine\instance_configs.cfg.
  2. ב-instance_configs.cfg, מוסיפים את ההגדרות הבאות. אם הקטע [Core] כבר קיים, מוסיפים את log_level ואת log_verbosity מתחת ל-[Core]:

    [Core]
    log_level = 4
    log_verbosity = 4
    
  3. בחלון מורחב של שורת הפקודה או של PowerShell, מריצים את הפקודות הבאות כדי להפעיל מחדש את מנהל סוכן האורח:

    net stop GCEAgentManager
    net start GCEAgentManager
    
  4. כדי להציג ב-PowerShell את יומני הסוכן האורח שנוצרו במהלך התקנת התוסף, מריצים את הפקודה הבאה:

    Get-Eventlog -Source google_guest_agent_manager -LogName Application
    

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

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

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

מצב שגיאה רזולוציה
אין מספיק מקום בכונן אם ביומנים מדווח שאין מספיק מקום בדיסק של ה-VM כדי להוריד או לחלץ את ארכיון התוסף, צריך למחוק קבצים שלא בשימוש או לשנות את הגודל של דיסק האתחול.
שימוש מופרז במשאבים אם ביומנים מצוין שהסוכן האורח הפסיק את התוסף בגלל שימוש גבוה בזיכרון או במעבד (CPU), משנים את סוג המכונה של ה-VM למכונה עם יותר זיכרון או מעבדי vCPU.

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