במסמך הזה מוסבר איך ליצור מדיניות התראות כדי לעקוב אחרי התוצאות של שאילתה שמריצים ב-Observability Analytics. השאילתות האלה נכתבות ב-SQL והן חייבות לשאול שאילתה בתצוגת נראות בשם _AllSpans. מדיניות ההתראות שולחת לכם התראה כשתוצאת השאילתה עומדת בתנאים שציינתם.
מדיניות התראות שיוצרים בדף Observability Analytics (ניתוח נתונים של יכולת התבוננות) מופעלת במנוע BigQuery. לכן, צריך שתהיה גישה לנתונים שמופעלת עליהם שאילתה דרך מערך נתונים מקושר ב-BigQuery.
מידע כללי על Observability Analytics זמין במאמר שאילתות וניתוח של עקבות באמצעות Observability Analytics.
איך פועלת מדיניות ההתראות
מדיניות התראות מתארת את הנסיבות שבהן רוצים לקבל התראה ואת האופן שבו רוצים לקבל הודעה על תקרית. יש כמה גישות שבעזרתן אפשר לקבל התראה כשתוכן או דפוסים מופיעים בנתוני העקבות:
כדי לעקוב אחרי מספר יחידות לוגיות למעקב של Cloud Trace שנקלטים מדי חודש, אחרי השימוש במכסה ואחרי קצב קליטת יחידות לוגיות למעקב, צריך ליצור מדיניות התראות ב-Cloud Monitoring. אם אף פעם לא יצרתם מדיניות התראות, תוכלו לקרוא מידע מפורט על השימוש במסוף Cloud Monitoring במאמר בנושא יצירת מדיניות התראות.
כדי להציג או לבחון עקבות או טווחים ספציפיים, או כדי להציג מאפיינים שמצורפים לטווחים, משתמשים בדף Trace Explorer. מידע על הדף הזה זמין במאמר איתור של עקבות ובדיקה שלהן.
כדי לעקוב אחרי ניתוח מצטבר של נתוני העקבות, אפשר לשלב בין Observability Analytics לבין מדיניות התראות. בתרחיש הזה, משתמשים בשאילתות SQL כדי לשלוח שאילתות לתצוגה
_AllSpansבדלי observability שנקרא_Trace. לבסוף, יוצרים את מדיניות ההתראות כדי לעקוב אחרי תוצאות שאילתת ה-SQL. סוג המדיניות הזה נקרא מדיניות התראות מבוססת-SQL.מידע נוסף על אופן האחסון של נתוני העקבות זמין במאמר סקירה כללית על אחסון.
בהמשך המסמך מוסבר איך משתמשים במדיניות התראות מבוססת-SQL.
רכיבים של מדיניות התראות
מדיניות התראות שמבוססת על SQL מכילה תנאי ולוח זמנים:
התנאי מכיל את השאילתה, שהיא שאילתת SQL ששולפת נתונים. התנאי גם מגדיר את הנסיבות שבהן תוצאת השאילתה גורמת ליצירת אירוע ב-Monitoring.
לוח הזמנים מגדיר את התדירות שבה מדיניות ההתראות מריצה את השאילתה שלה. התזמון גם מגדיר את הגודל של חלון מבט לאחור, שהוא מסנן שבוחר רק נתונים שהתקבלו מאז הפעם הקודמת שבה השאילתה הוערכה. לדוגמה, אם מגדירים את לוח הזמנים ל-60 דקות, השאילתה מופעלת כל 60 דקות באמצעות חלון מבט לאחור שבו נבחרים הנתונים מ-60 הדקות האחרונות.
כללי מדיניות להתראות כוללים גם רשימה של ערוצי התראות. כשמתקיים התנאי של מדיניות ההתראות, Cloud Monitoring יוצר אירוע ושולח התראות לגבי האירוע דרך הערוצים האלה. אירוע הוא רשומה של הנתונים שגרמו להתקיימות התנאי, יחד עם מידע רלוונטי אחר. המידע הזה יכול לעזור לכם לפתור את הבעיות שגרמו לאירוע. אפשר לראות את האירוע באמצעות מסוף Google Cloud .
סוגי הערכות של מדיניות התראות שמבוססת על SQL
תנאים שעוקבים אחרי תוצאה של שאילתת SQL תומכים בשני סוגים של הערכה:
ערך סף של מספר השורות: התנאי מתקיים כשמספר השורות בתוצאת השאילתה גדול מערך הסף, שווה לו או קטן ממנו.
בוליאני: התנאי מתקיים כשעמודה בוליאנית ספציפית בטבלת תוצאות השאילתה מכילה שורה עם הערך
true.
למדיניות התראות שעוקבת אחרי תוצאה של שאילתת SQL יכול להיות רק תנאי אחד.
כללי מדיניות בנושא התראות ו-BigQuery
כדי שמדיניות ההתראות תוכל לשלוח שאילתות לנתוני העקבות, צריך להגדיר מערך נתונים מקושר ב-BigQuery. מערכי נתונים מקושרים מאפשרים ל-BigQuery לקרוא את נתוני המעקב שלכם, ומאפשרים לכם להפעיל פונקציות של BigQuery על הנתונים שמוחזרים על ידי שאילתת ה-SQL שלכם.
כשמדיניות התראות מריצה שאילתת SQL, השאילתה הזו מורצת במנוע BigQuery ב Google Cloud פרויקט שבו מוגדרת מדיניות ההתראות. כברירת מחדל, שאילתות שמופעלות במנוע BigQuery משתמשות במשבצות על פי דרישה. משבצות על פי דרישה ומשבצות שמורות כפופות לתמחור של BigQuery.
אפשר גם להגדיר הזמנות ייעודיות של משבצות ב-BigQuery לפרויקט:
- יוצרים הזמנה עם משבצות זמן ייעודיות או מזהים הזמנה קיימת.
- איך יוצרים הקצאות של הזמנות לפרויקט
חלון מבט לאחור וזמן ההפצה של האירוע
כשמדיניות התראות מתוזמנת להערכת התנאי שלה, Observability Analytics מעכב את הביצוע של שאילתת ה-SQL בחמש דקות כדי לאפשר ל-Cloud Logging להוסיף לאינדקס את הנתונים שהתקבלו במהלך חלון מבט לאחור. לדוגמה, אם מדיניות ההתראות משתמשת בחלון מבט לאחור שמסתיים בשעה 14:00, מערכת Observability Analytics לא מריצה את שאילתת ה-SQL עד השעה 14:05.
אם תנאי ההתראה מתקיים אחרי שהשאילתה מופעלת, יכולות לחלוף עד שתי דקות נוספות עד שהאירוע יתפשט במערכת.
כשלים בשאילתות
שאילתות שמופעלות על ידי מדיניות התראות מבוססת-SQL עלולות להיכשל מסיבות שונות, כולל:
חשבון השירות של המעקב כבר לא קיים או שאין לו יותר את ההרשאות הנדרשות לקריאת נתוני העקבות שנשלחים לגביהם שאילתות.
זמן ההפעלה של השאילתה חורג מחמש דקות.
אירעה שגיאה פנימית.
שאילתה שנכשלה יוצרת רשומה ביומן שכוללת את מזהה מדיניות ההתראות ואת סטטוס השגיאה. אתם יכולים להשתמש במדיניות התראות שמבוססת על יומן כדי ליצור התראה כששגיאה נרשמת ביומן.
לפני שמתחילים
בקטע הזה מניחים שיש לכם מערך נתונים מקושר ב-BigQuery לנתוני המעקב.
לפני שיוצרים מדיניות התראות שמבוססת על SQL, צריך לבצע את השלבים הבאים:
-
כדי לקבל את ההרשאות שדרושות לשאילת נתוני מעקב וליצירת כללי מדיניות להתראות שמבוססים על SQL, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
-
שאילתת נתוני מעקב:
Cloud Trace User (
roles/cloudtrace.user) -
יצירת מדיניות התראות מבוססת-SQL:
- עריכה של מעקב (
roles/monitoring.editor) - Logging SqlAlertWriter (
roles/logging.sqlAlertWriter)
- עריכה של מעקב (
-
שאילתת נתוני מעקב:
Cloud Trace User (
מוודאים שקיים חשבון השירות של Monitoring ושהתפקידים הבאים מוקצים לו:
- סוכן שירות של Monitoring (
roles/monitoring.notificationServiceAgent) בפרויקט. - BigQuery Data Viewer (
roles/bigquery.dataViewer) במערך הנתונים המקושר.
אם חשבון השירות של המעקב לא קיים, כדאי לעיין במאמר פתרון בעיות: אין חשבון שירות של מעקב.
- סוכן שירות של Monitoring (
- קובעים את ערוצי ההתראות שרוצים להשתמש בהם כדי לקבל התראות על אירועים. לצורך יתירות, מומלץ ליצור כמה סוגים של ערוצי התראות. מידע נוסף זמין במאמר בנושא יצירה וניהול של ערוצי התראות.
יצירת מדיניות התראות שמבוססת על SQL
כדי ליצור מדיניות התראות שמבוססת על SQL:
המסוף
-
נכנסים לדף manage_search Observability Analytics במסוף Google Cloud :
עוברים אל Observability Analytics
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.
בדף Observability Analytics, מזינים שאילתת SQL בעורך השאילתות כדי להריץ שאילתה על נתוני העקבות.
בסרגל הכלים, לוחצים על Run on BigQuery (הפעלה ב-BigQuery).
הכלי Observability Analytics מריץ את השאילתה במנוע BigQuery ומציג את התוצאות בטבלת Results.
אם האפשרות Run on BigQuery לא מוצגת, לוחצים על settings Select query engine ואז על BigQuery. הלחצן Run query משתנה לRun on BigQuery.
בטבלה תוצאות בדף Observability Analytics, לוחצים על add_alert יצירת התראה.
בדף Observability Analytics מוצג החלון Create sql alert policy, שבו שאילתת SQL מופיעה בקטע SQL query.
בקטע Alert condition, מגדירים את התנאי ואת לוח הזמנים של מדיניות ההתראות.
מגדירים את פרטי ההתראה של כללי מדיניות ההתראות.
להוסיף ערוצי התראות ולהגדיר את תוכן ההתראות, כמו שורת נושא מותאמת אישית.
אופציונלי: מוסיפים תוויות של מדיניות התראות ותיעוד.
לוחצים על הבא.
בודקים את מדיניות ההתראות ולוחצים על שמירה כדי ליצור אותה.
Terraform
מתקינים ומגדירים את Terraform לפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את הפרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
ב-Cloud Shell, עוברים לספרייה שמכילה את ההגדרות של Terraform.
בהגדרות של Terraform, מגדירים מופע של משאב google_monitoring_alert_policy, כולל condition_sql.
ב-Cloud Shell, מזינים
terraform apply.
כדי לשנות את מדיניות ההתראות, מבצעים את העריכות הרצויות ומחילים מחדש את ההגדרות של Terraform. מידע נוסף מופיע במאמר בנושא ניהול מדיניות התראות באמצעות Terraform.
מידע כללי על שימוש ב- Google Cloud עם Terraform זמין במאמר Terraform עם Google Cloud.
REST
משתמשים ב-alertPolicies.create method כדי ליצור מדיניות התראות באופן פרוגרמטי. הסוג של מדיניות ההתראות Condition חייב להיות MonitoringQueryLanguageCondition, שהוא מופע של SqlCondition.
סוג התנאי הזה מאפשר להגדיר את התנאים של מדיניות ההתראות באמצעות SQL.
כדי להגדיר את לוח הזמנים, צריך להגדיר ערך periodicity לאחד מהשדות minutes, hours או days. לדוגמה, אם רוצים שהשאילתה תפעל כל 12 שעות, צריך להגדיר את הערך של השדה hours ל-12.
כדי להגדיר את התנאי, משתמשים בשדות הבאים:
-
boolean_test: מגדיר את מדיניות ההתראה כך שהתנאי שלה מתקיים כששורה של עמודה בוליאנית בטבלת תוצאות השאילתה מכילה ערך True. -
row_count_test: הגדרת מדיניות ההתראות כך שהתנאי שלה יתקיים כשמספר השורות בטבלת תוצאות השאילתה יעמוד בסף מסוים.
רשימה מלאה של השדות וההגדרות מופיעה במאמר SqlCondition במאמרי העזרה בנושא Cloud Monitoring API.
מידע נוסף על Monitoring API לשימוש במדיניות התראות זמין במאמר ניהול מדיניות התראות באמצעות API.
מגבלות
- אפשר להגדיר תנאי אחד לכל מדיניות התראות שמבוססת על SQL.
- אי אפשר להריץ שאילתות על תצוגת ניתוח במדיניות התראות שמבוססת על SQL.
שאילתות שמופעלות על ידי מדיניות התראות מבוססת-SQL נכשלות אם זמן הביצוע שלהן חורג מחמש דקות.
יש עיכוב של עד שבע דקות, בנוסף לזמן הביצוע של השאילתה, בין מועד התזמון של שאילתה לבין מועד יצירת האירוע.
רשימה מלאה של המגבלות שקשורות למדיניות התראות מופיעה במאמר מגבלות ב-Monitoring.