מעקב אחרי תקינות במכונות וירטואליות מוגנות

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

מעקב אחרי תקינות האתחול של מכונות וירטואליות באמצעות Monitoring

אפשר להשתמש ב-Cloud Monitoring כדי לראות אירועים של אימות תקינות ולהגדיר התראות לגביהם, וב-Cloud Logging כדי לבדוק את הפרטים של האירועים האלה.

צפייה באירועי אימות של תקינות

כדי לראות את המדדים של משאבים שבמעקב באמצעות Metrics Explorer:

  1. נכנסים לדף  Metrics explorer במסוף Google Cloud :

    כניסה אל Metrics Explorer

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

  2. בסרגל הכלים של מסוף Google Cloud , בוחרים את Google Cloud הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את הפרויקט המארח של מרכז האפליקציות או את פרויקט הניהול של התיקייה לניהול אפליקציות.
  3. ברכיב Metric, מרחיבים את התפריט Select a metric, כותבים Boot Validation בשורת הסינון ומשתמשים בתפריטי המשנה כדי לבחור סוג ספציפי של משאב ומדד:
    1. בתפריט Active resources בוחרים באפשרות VM instance.
    2. בתפריט Active metric categories בוחרים באפשרות Instance.
    3. בתפריט Active metrics, בוחרים באפשרות Early Boot Validation או באפשרות Late Boot Validation.
      • אימות מוקדם של ההפעלה: מוצג הסטטוס (עבר/נכשל) של החלק המוקדם של ההפעלה ברצף ההפעלה האחרון. אתחול מוקדם הוא רצף האתחול מתחילת הקושחה של UEFI עד שהוא מעביר את השליטה לטוען האתחול.
      • אימות אתחול מאוחר: מוצג הסטטוס (עבר/נכשל) של החלק באתחול המאוחר של רצף האתחול האחרון. אתחול מאוחר הוא רצף האתחול מתוכנת האתחול ועד לסיום. התהליך כולל את טעינת ליבת מערכת ההפעלה.
    4. לוחצים על אישור.
  4. כדי להוסיף מסננים שמסירים סדרות זמן מתוצאות השאילתה, משתמשים ברכיב Filter.

  5. כדי לשלב סדרות עיתיות, משתמשים בתפריטים ברכיב Aggregation. לדוגמה, כדי להציג את ניצול המעבד של המכונות הווירטואליות לפי האזור שלהן, מגדירים את התפריט הראשון ל-Mean ואת התפריט השני ל-zone.

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

  6. כדי לראות מכסות ומדדים אחרים שמדווחים על דגימה אחת ליום:
    1. בחלונית Display, מגדירים את Widget type לאפשרות תרשים עמודות אופקי מוערם.
    2. מגדירים את התקופה לשבוע אחד לפחות.

הגדרת התראות על אירועים של אימות תקינות

כדי לקבל התראה אם יש כשל באימות האתחול במופע של מכונה וירטואלית, אפשר להגדיר התראות על הערכים של המדדים Early Boot Validation ו-Late Boot Validation. מידע על התראות זמין במאמר מבוא להתראות.

הצגת פרטים על אירוע אימות של תקינות

  1. לדף VM instances
  2. לוחצים על מספר המכונה כדי לפתוח את הדף פרטי המכונה הווירטואלית.
  3. בקטע Logs (יומנים), לוחצים על Cloud Logging.
  4. מאתרים את רשומת היומן earlyBootReportEvent או lateBootReportEvent שרוצים לבדוק.
  5. מרחיבים את רשומת היומן > jsonPayload > earlyBootReportEvent או lateBootReportEvent, לפי הצורך. בקטע הזה, הרכיב policyEvaluationPassed מציין אם הקטע הנתון של רצף האתחול עבר אימות מול בסיס מדיניות השלמות.
  6. מרחיבים את הקטע actualMeasurements ואת הרכיבים הממוספרים שבו כדי לראות את הערכים של Platform Configuration Register‏ (PCR) שנשמרו מרצף האתחול האחרון. ערכי ה-PCR נשמרים ברכיבי value בתוך הרכיבים הממוספרים. ערכי ה-PCR מזהים את רכיבי האתחול ואת סדר טעינת הרכיבים שמשמשים את רצף האתחול האחרון, והם מושווים לערך הבסיסי של מדיניות השלמות כדי לקבוע אם חל שינוי ברצף האתחול של מכונת ה-VM. מידע נוסף על מה מייצגים ערכי ה-PCR זמין במאמר בנושא אירועים של מעקב אחר תקינות.
  7. מרחיבים את הקטע policyMeasurements כדי לראות את ערכי ה-PCR שנשמרו עבור בסיס המדיניות של מדיניות השלמות.

אוטומציה של תגובות לאירועי אימות שלמות

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

זיהוי הגורם לכשל באימות של תקינות האתחול

  1. לדף VM instances
  2. לוחצים על מספר המכונה כדי לפתוח את הדף פרטי המכונה הווירטואלית.
  3. בקטע Logs (יומנים), לוחצים על Cloud Logging.
  4. מאתרים את רשומות היומן האחרונות של earlyBootReportEvent ושל lateBootReportEvent ובודקים לאיזו מהן יש ערך policyEvaluationPassed של false.
  5. מרחיבים את רשומת היומן > jsonPayload > earlyBootReportEvent או lateBootReportEvent, לפי הצורך.
  6. מרחיבים את הקטעים actualMeasurements ו-policyMeasurements ואת הרכיבים הממוספרים בתוכם כדי לראות את ערכי Platform Configuration Register‏ (PCR) שנשמרו מרצף האתחול האחרון ואת נתוני הבסיס של מדיניות השלמות, בהתאמה. ערכי ה-PCR מזהים את רכיבי האתחול ואת סדר הטעינה של הרכיבים שמשמשים את רצף האתחול האחרון ואת בסיס המדיניות של השלמות.
  7. משווים את ערכי ה-PCR בקטעים actualMeasurements ו-policyMeasurements כדי לזהות איפה התרחש השינוי בין רצף האתחול האחרון לבין בסיס המדיניות של תקינות המערכת. ההשוואה שבה נמצאו ערכים שונים היא הבעיה שגרמה לכשל באימות. חשוב לדעת שמספרי הרכיבים בקטעים האלה לא תמיד תואמים למספרי ה-PCR, ורכיבים עם מספרים דומים ב-actualMeasurements וב-policyMeasurements עשויים לייצג PCR שונים. לדוגמה, ברצף האתחול המוקדם של Windows ו-Linux, הרכיב 3 ב-actualMeasurements והרכיב 2 ב-policyMeasurements מייצגים את PCR7.

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

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

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

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

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

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

gcloud

מעדכנים את בסיס מדיניות השלמות של מופע ה-VM באמצעות הפקודה compute instances update עם הדגל --shielded-learn-integrity-policy.

בדוגמה הבאה מאפסים את בסיס מדיניות השלמות של מכונת ה-VM‏ my-instance:

gcloud compute instances update INSTANCE_NAME \
    --zone=ZONE \
    --shielded-learn-integrity-policy

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

  • INSTANCE_NAME: שם ה-VM.
  • ZONE: האזור שבו קיימת המכונה הווירטואלית.

REST

מעדכנים את בסיס מדיניות השלמות של המכונה הווירטואלית באמצעות הפריט updateAutoLearnPolicy בגוף הבקשה עם ה-method ‏setShieldedInstanceIntegrityPolicy.

בדוגמה הבאה מאפסים את בסיס מדיניות השלמות של מכונת VM.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setShieldedInstanceIntegrityPolicy?key=YOUR_API_KEY
{
  "updateAutoLearnPolicy": true
}

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

  • PROJECT_ID: מזהה הפרויקט שבו קיימת המכונה הווירטואלית.
  • INSTANCE_NAME: שם ה-VM.
  • ZONE: האזור שבו קיימת המכונה הווירטואלית.
  • YOUR_API_KEY: מפתח API שמאפשר לכם לגשת ל-API.

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