יצירת כללי מדיניות התראות על היעדר מדדים

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

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

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

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

במסמך הזה לא מתוארים הנושאים הבאים:

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

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

  1. כדי לקבל את ההרשאות שנדרשות ליצירה ולשינוי של מדיניות התראות באמצעות מסוף Google Cloud , צריך לבקש מהאדמין להקצות לכם את התפקיד עריכה ב-Monitoring (roles/monitoring.editor) ב-IAM בפרויקט. להסבר על מתן תפקידים, קראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

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

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

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

יצירת מדיניות התראות

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

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

    עוברים אל התראות

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

  2. בסרגל הכלים של מסוף Google Cloud , בוחרים את הפרויקט הרלוונטי ב- Google Cloud . בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
  3. לוחצים על יצירת מדיניות.
  4. בוחרים את סדרת הזמנים שרוצים לעקוב אחריה:

    1. לוחצים על Select a metric, עוברים בין התפריטים כדי לבחור סוג משאב וסוג מדד, ואז לוחצים על Apply.

      התפריט Select a metric כולל תכונות שיעזרו לכם למצוא את סוגי המדדים שזמינים:

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

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

    2. אופציונלי: כדי לעקוב אחרי קבוצת משנה של סדרות הזמן שתואמות למדדים ולסוגי המשאבים שבחרתם בשלב הקודם, לוחצים על הוספת מסנן. בתיבת הדו-שיח של המסנן, בוחרים את התווית שלפיה רוצים לסנן, אופרטור השוואה ואז את ערך המסנן. לדוגמה, המסנן zone =~ ^us.*.a$ משתמש בביטוי רגולרי כדי להתאים את כל נתוני הסדרות העיתיות ששם האזור שלהם מתחיל ב-us ומסתיים ב-a. מידע נוסף זמין במאמר בנושא סינון סדרת הזמנים שנבחרה.

    3. אופציונלי: כדי לשנות את אופן ההתאמה של הנקודות בסדרת זמן, בקטע Transform data (שינוי נתונים), מגדירים את השדות Rolling window (חלון נע) ו-Rolling window function (פונקציית חלון נע).

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

      בשדות האלה מצוין איך הנקודות שנרשמות בחלון משולבות. לדוגמה, נניח שחלון הזמן הוא 15 דקות ופונקציה אנליטית (window function) היא max. הנקודה המיושרת היא הערך המקסימלי של כל הנקודות ב-15 הדקות האחרונות. מידע נוסף מופיע במאמר בנושא התאמה: רגולריזציה בתוך סדרות.

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

      כדי לשלב את כל סדרות הזמן:

      1. בקטע בכל סדרות הזמן, לוחצים על הרחבה.
      2. מגדירים את השדה Time series aggregation (צבירה של סדרת זמן) לערך שונה מ-none. לדוגמה, כדי להציג את הערך הממוצע של סדרת הזמן, בוחרים באפשרות mean.
      3. מוודאים שהשדה Time series group by (קיבוץ לפי סדרות זמן) ריק.

      כדי לשלב או לקבץ סדרות עיתיות לפי ערכי תוויות:

      1. בקטע בכל סדרות הזמן, לוחצים על הרחבה.
      2. מגדירים את השדה Time series aggregation (צבירה של סדרת זמן) לערך שונה מ-none.
      3. בשדה Time series group by, בוחרים את התוויות שלפיהן רוצים לקבץ.

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

    5. לוחצים על הבא.

  5. מגדירים את טריגר התנאי:

    1. בוחרים באפשרות Metric absence (חוסר במדד) בתנאי.

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

      • Any time series violates (כל סדרת זמן חורגת): הגדרת ברירת המחדל. אם יש סדרת זמן שבה אין נתונים במשך כל משך הזמן שבו לא מופעל הטריגר, התנאי מתקיים.

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

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

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

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

    3. בשדה Trigger absence time (זמן היעדרות של טריגר) מציינים כמה זמן נתוני המדדים צריכים להיעדר לפני שמערכת Monitoring תשלח לכם התראה.

    4. לוחצים על הבא.

  6. אופציונלי: יצירת מדיניות התראות עם כמה תנאים.

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

    כדי ליצור מדיניות התראות עם כמה תנאים:

    1. לכל תנאי נוסף, לוחצים על הוספת תנאי להתרעה ואז מגדירים את התנאי.
    2. לוחצים על הבא וקובעים איך התנאים ישולבו.
    3. לוחצים על הבא כדי לעבור להגדרת ההתראות והתיעוד.
  7. מגדירים את ההתראה ומוסיפים תוויות משתמש:

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

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

    3. אופציונלי: כדי לקבל התראה כשאירוע נסגר, בוחרים באפשרות התראה על סגירת אירוע. כברירת מחדל, כשיוצרים מדיניות התראות באמצעות המסוף Google Cloud , התראה נשלחת רק כשנוצר אירוע.

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

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

    6. אופציונלי: בוחרים אפשרות מהתפריט רמת החומרה של המדיניות. רמת החומרה מוצגת בהתראות ובאירועים.

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

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

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

  8. אופציונלי: בקטע Documentation (תיעוד), מזינים את התוכן שרוצים לכלול בהתראה.

    כדי לעצב את התיעוד, אתם יכולים להשתמש בטקסט פשוט, ב-Markdown ובמשתנים. אפשר גם לכלול קישורים שיעזרו למשתמשים לנפות באגים באירוע, כמו קישורים ל-playbooks פנימיים, Google Cloud ללוחות בקרה ולדפים חיצוניים. לדוגמה, תבנית התיעוד הבאה מתארת אירוע של ניצול CPU עבור משאב gce_instance וכוללת כמה משתנים להפניה למשאבי REST של מדיניות ההתראות והתנאים. תבנית התיעוד מפנה את הקוראים לדפים חיצוניים כדי לעזור להם בניפוי באגים.

    כשיוצרים התראות, מערכת Monitoring מחליפה את משתני התיעוד בערכים שלהם. הערכים מחליפים את המשתנים רק בהתראות. בחלונית התצוגה המקדימה ובמקומות אחרים ב Google Cloud מסוף מוצג רק העיצוב של Markdown.

    תצוגה מקדימה

    ## CPU utilization exceeded
    
    ### Summary
    
    The ${metric.display_name} of the ${resource.type}
    ${resource.label.instance_id} in the project ${resource.project} has
    exceeded 90% for over 15 minutes.
    
    ### Additional resource information
    
    Condition resource name: ${condition.name}  
    Alerting policy resource name: ${policy.name}  
    
    ### Troubleshooting and Debug References
    
    Repository with debug scripts: example.com  
    Internal troubleshooting guide: example.com  
    ${resource.type} dashboard: example.com
    

    הפורמט בהתראה

    דוגמה לאופן שבו תיעוד מוצג בהתראה.

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

  9. לוחצים על שם ההתראה ומזינים שם למדיניות ההתראה.

  10. לוחצים על יצירת מדיניות.

סינון סדרת הזמנים שנבחרה

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

מסנן מורכב מתווית, מאופרטור השוואה ומערך. לדוגמה, כדי להתאים את כל סדרות הזמן שהתווית zone שלהן מתחילה ב-"us-central1", אפשר להשתמש במסנן zone=~"us-central1.*", שמשתמש בביטוי רגולרי כדי לבצע את ההשוואה.

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

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

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

אופרטורמשמעותדוגמה
= שוויון resource.labels.zone = "us-central1-a"
!= אי-שוויון resource.labels.zone != "us-central1-a"
=~ שוויונות של ביטויים רגולריים monitoring.regex.full_match("^us.*")
!=~ אי-שוויון Regular expression2 monitoring.regex.full_match("^us.*")
starts_with הערך מתחיל ב- resource.labels.zone = starts_with("us")
ends_with הערך מסתיים ב- resource.labels.zone = ends_with("b")
has_substring הערך מכיל resource.labels.zone = has_substring("east")
one_of אחת מהאפשרויות resource.labels.zone = one_of("asia-east1-b", "europe-north1-a")
!starts_with הערך לא מתחיל ב- resource.labels.zone != starts_with("us")
!ends_with הערך לא מסתיים ב- resource.labels.zone != ends_with("b")
!has_substring הערך לא מכיל resource.labels.zone != has_substring("east")
!one_of הערך לא נמצא ברשימה resource.labels.zone != one_of("asia-east1-b", "europe-north1-a")