פתרון בעיות שקשורות להתראות חסרות

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

ההתראות לא מתקבלות

אם לא קיבלתם התראות באף אחד מערוצי ההתראות שהגדרתם, צריך לבצע את הפעולות הבאות:

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

    כניסה אל Logs Explorer

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

  2. בוחרים את הפרויקט המתאים Google Cloud .
  3. שליחת שאילתה ליומנים לגבי אירועים בערוץ ההתראות:

    1. מרחיבים את התפריט שם היומן ובוחרים באפשרות notification_channel_events.
    2. מרחיבים את התפריט חומרה ובוחרים באפשרות שגיאה.
    3. אופציונלי: כדי לבחור טווח זמן מותאם אישית, משתמשים בבורר טווח הזמן.
    4. לוחצים על Run query.

    השלבים הקודמים יוצרים את השאילתה הבאה:

    resource.type:"stackdriver_notification_channel"
    logName="projects/PROJECT_ID/logs/monitoring.googleapis.com%2Fnotification_channel_events"
    severity=ERROR
    

    בדרך כלל שורת הסיכום והשדה jsonPayload מכילים מידע על הכשל. לדוגמה, כשמתרחשת שגיאת שער, שורת הסיכום כוללת את הטקסט failed with 502 Bad Gateway (הפעולה נכשלה עם שגיאת שער 502).

התראות webhook לא מתקבלות

הקטע הזה רלוונטי אם לא קיבלתם התראות דרך ערוץ התראות של webhook שהגדרתם.

נקודת קצה פרטית

אם יש לכם נקודת קצה פרטית, אתם יכולים להשתמש בהתראות Pub/Sub בשילוב עם מינוי מסוג pull לנושא ההתראות הזה. אי אפשר להשתמש ב-webhook להעברת התראות לנקודות קצה פרטיות.

כשמגדירים ערוץ התראות Pub/Sub, התראות על אירועים נשלחות לתור Pub/Sub שיש לו אמצעי בקרה של ניהול זהויות והרשאות גישה. כל שירות שיכול לשלוח שאילתות לנושא Pub/Sub או להאזין לו יכול לצרוך את ההתראות האלה. לדוגמה, אפליקציות שפועלות במכונות וירטואליות של App Engine,‏ Cloud Run או Compute Engine יכולות להשתמש בהתראות האלה.

אם משתמשים במינוי מסוג pull, נשלחת בקשה ל-Google שממתינה להגעת הודעה. המינויים האלה דורשים גישה ל-Google, אבל לא דורשים כללים לחומות אש או לגישה נכנסת.

נקודת קצה ציבורית

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

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

resource.type="stackdriver_notification_channel"

התראות Pub/Sub לא מתקבלות

אם לא קיבלתם התראות דרך ערוץ התראות מוגדר של Pub/Sub, נסו את הפעולות הבאות:

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

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

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

      כניסה לדף IAM

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

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

      service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com

      אם חשבון השירות הזה לא מופיע ברשימה, מסמנים את התיבה Include Google-provided role grants.

    אם חשבון השירות של ההתראות לא קיים, צריך להתחיל את תהליך היצירה של ערוץ ההתראות ב-Pub/Sub כדי ש-Monitoring ייצור את חשבון השירות:

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

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

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

    2. לוחצים על עריכת ערוצי התראות.
    3. בקטע Pub/Sub, לוחצים על Add new (הוספה).

      אם אין חשבון שירות, כלי המעקב יוצר אותו. בתיבת הדו-שיח יצירת ערוץ Pub/Sub מוצג השם של חשבון השירות של ההתראות.

    4. אם לא רוצים להוסיף ערוץ התראות, לוחצים על ביטול. אחרת, מסיימים ליצור את ערוץ ההתראות ולוחצים על הוספת ערוץ.

    5. נותנים לחשבון השירות הרשאות לפרסום נושאים ב-Pub/Sub:

      1. בכרטיסייה חדשה בדפדפן, פותחים את המסמך יצירת ערוץ התראות.
      2. בוחרים בכרטיסייה Pub/Sub ופועלים לפי השלבים בקטע Authorize service account בדף.
  • מוודאים שחשבון השירות של ההתראות קיבל הרשאה לשלוח התראות בנושאי Pub/Sub שמעניינים אתכם.

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

    • בדף IAM במסוף Google Cloud מופיעים התפקידים של כל חשבון שירות.
    • בדף Topics של Pub/Sub במסוף Google Cloud מופיע כל נושא. כשבוחרים נושא, בכרטיסייה Permissions מופיעים התפקידים שהוקצו לחשבונות השירות.
    • כדי להציג רשימה של כל חשבונות השירות והתפקידים שלהם, מריצים את הפקודה הבאה ב-Google Cloud CLI:

      gcloud projects get-iam-policy PROJECT_ID
      

      התגובה החלקית לפקודה הזו היא:

          serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
             role: roles/monitoring.notificationServiceAgent
           - members:
             [...]
             role: roles/owner
           - members:
             - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
             role: roles/pubsub.publisher
      

      התשובה של הפקודה כוללת רק תפקידים, ולא כוללת הרשאות לכל נושא.

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

      gcloud pubsub topics get-iam-policy TOPIC
      

      זוהי דוגמה לתגובה של הפקודה הזו:

          bindings:
          - members:
            - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
            role: roles/pubsub.publisher
          etag: BwXPRb5WDPI=
          version: 1
      

    במאמר הרשאת חשבון שירות מוסבר איך להעניק הרשאה לחשבון השירות של שירות ההתראות.

לא מקבלים התראה כשמכונה וירטואלית מושבתת

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

מדיניות התראות שעוקבת אחרי המדד compute.googleapis.com/instance/uptime לא תשלח לכם התראה כשהמכונה הווירטואלית מושבתת. במקרה של המדד הזה, מדיניות ההתראות עוקבת רק אחרי סדרות זמן של מכונות וירטואליות שנמצאות במצב RUNNING. אם מכונה וירטואלית נמצאת במצב אחר, כמו STOPPED או DELETED, היא לא תנוטר. מידע על מצבי מכונות וירטואליות זמין במאמר בנושא מחזור החיים של מכונות וירטואליות.

לא מתקבלות התראות על מדיניות התראות לגבי מספר הבקשות

אם לא קיבלתם התראות ממדיניות התראה שעוקבת אחרי מדד serviceruntime.googleapis.com/api/request_count, כדאי לוודא שתקופת ההתאמה של המדיניות היא עד 7 שעות ו-30 דקות.

לא מתקבלות הודעות התראה ב-SMS או קודי אימות

אם לא קיבלתם התראות או קודי אימות ב-SMS, כדאי לוודא שלא הגעתם למגבלת הודעות ה-SMS. יכול להיות שיש יומנים שמאשרים את השגיאה הזו. כדאי לבדוק את היומנים של Denied quota token.

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