בדף הזה מוסבר למה יכול להיות שלא תקבלו התראות כמצופה, ומוצעים פתרונות אפשריים למצבים כאלה.
ההתראות לא מתקבלות
אם לא קיבלתם התראות באף אחד מערוצי ההתראות שהגדרתם, צריך לבצע את הפעולות הבאות:
-
במסוף Google Cloud , נכנסים לדף Logs Explorer:
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.
- בוחרים את הפרויקט המתאים Google Cloud .
שליחת שאילתה ליומנים לגבי אירועים בערוץ ההתראות:
- מרחיבים את התפריט שם היומן ובוחרים באפשרות notification_channel_events.
- מרחיבים את התפריט חומרה ובוחרים באפשרות שגיאה.
- אופציונלי: כדי לבחור טווח זמן מותאם אישית, משתמשים בבורר טווח הזמן.
- לוחצים על 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, נסו את הפעולות הבאות:
מוודאים שחשבון השירות של ההתראות קיים. התראות לא נשלחות כשחשבון השירות נמחק.
כדי לוודא שחשבון השירות קיים, מבצעים את הפעולות הבאות:
-
נכנסים לדף IAM במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא IAM & Admin.
מחפשים חשבון שירות שפועל לפי מוסכמות מתן השמות הבאות:
service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
אם חשבון השירות הזה לא מופיע ברשימה, מסמנים את התיבה Include Google-provided role grants.
אם חשבון השירות של ההתראות לא קיים, צריך להתחיל את תהליך היצירה של ערוץ ההתראות ב-Pub/Sub כדי ש-Monitoring ייצור את חשבון השירות:
-
נכנסים לדף notifications Alerting במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Monitoring.
- לוחצים על עריכת ערוצי התראות.
בקטע Pub/Sub, לוחצים על Add new (הוספה).
אם אין חשבון שירות, כלי המעקב יוצר אותו. בתיבת הדו-שיח יצירת ערוץ Pub/Sub מוצג השם של חשבון השירות של ההתראות.
אם לא רוצים להוסיף ערוץ התראות, לוחצים על ביטול. אחרת, מסיימים ליצור את ערוץ ההתראות ולוחצים על הוספת ערוץ.
נותנים לחשבון השירות הרשאות לפרסום נושאים ב-Pub/Sub:
- בכרטיסייה חדשה בדפדפן, פותחים את המסמך יצירת ערוץ התראות.
- בוחרים בכרטיסייה 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 לשליחת התראות. במקום זאת, מגדירים ערוצי התראות נוספים, כמו אימייל.