מדיניות התראות שמבוססת על SQL ב-Observability Analytics מריצה מדי פעם שאילתות SQL על נתוני היומן, ושולחת לכם התראות כשהתוצאות עומדות בתנאים שציינתם. לדוגמה, אתם יכולים להגדיר מדיניות התראה שתודיע לכם כש-25% לפחות מרשומות היומן בתקופה נתונה הן ברמת החומרה ERROR.
מדיניות ההתראה שיוצרים בדף Observability Analytics פועלת במנוע של BigQuery, ולכן לתצוגת היומן ששולחים אליה שאילתה חייבת להיות קבוצת נתונים מקושרת ב-BigQuery. שאילתות ה-SQL האלה יכולות לשלוח שאילתות רק לתצוגות של יומנים, ולא לתצוגות של ניתוח נתונים.
למידע כללי על Observability Analytics, קראו את המאמר שאילתות וניתוח של יומנים באמצעות Observability Analytics.
איך פועלות מדיניות ההתראות
מדיניות התראות מתארת את הנסיבות שבהן אתם רוצים לקבל התראה, ואת האופן שבו אתם רוצים לקבל אותה. יש שלוש גישות שונות לקבלת התראות כשתוכן או דפוסים מופיעים בנתוני היומן:
כדי לסרוק רשומות ספציפיות ביומן ולחפש ביטוי מסוים, צריך ליצור מדיניות התראות מבוססת-יומן. כדאי להשתמש בכללי מדיניות ההתראות האלה כשרוצים לקבל התראות על דברים כמו אירועים שקשורים לאבטחה.
כדי לעקוב אחרי אירועים בנתוני הרשומות ביומן, אתם יכולים ליצור מדד מבוסס-יומנים ואז ליצור מדיניות התראות כדי לעקוב אחרי המדד. מדיניות התראה מהסוג הזה יעילה כשרוצים לעקוב אחרי מגמות בנתונים של רשומות ביומן לאורך זמן. עם זאת, הם פחות יעילים אם אתם מצפים למספר קטן של אירועים.
כדי לעקוב אחרי ניתוח נתונים מצטברים של רשומות ביומן, אפשר לשלב את Observability Analytics עם מדיניות התראות. בתרחיש הזה, משדרגים את מאגר היומנים כדי להשתמש ב-Observability Analytics ויוצרים מערך נתונים מקושר ב-BigQuery בשביל מאגר היומנים הזה. בשלב הבא תשתמשו ב-Observability Analytics, שתומך בשאילתות SQL, כדי לשלוח שאילתה לתצוגת יומנים בדלי היומנים. לבסוף, יוצרים את מדיניות ההתראה כדי לעקוב אחרי התוצאות של שאילתת ה-SQL. מדיניות התראות מהסוג הזה נקראת מדיניות התראות מבוססת-SQL.
מדיניות התראה שמבוססת על SQL היא הכי יעילה להערכת ערכים מדויקים בכמה רשומות ביומן. אם אתם רוצים להעריך רשומות יומן נפרדות, צרו מדיניות התראות מבוססת-יומן.
בהמשך המאמר מוסבר איך להשתמש בכללי מדיניות התראה שמבוססים על SQL.
רכיבי מדיניות ההתראות
מדיניות התראות שמבוססת על SQL מכילה תנאי ולוח זמנים:
התנאי מכיל את השאילתה, שהיא שאילתת SQL ששולחת שאילתה לנתונים שלכם. התנאי גם מגדיר את הנסיבות שבהן תוצאת השאילתה תגרום ל-Monitoring ליצור התראה.
לוח הזמנים מגדיר את התדירות שבה מדיניות ההתראה מריצה את השאילתה שלה. התזמון גם מגדיר את הגודל של חלון המבט לאחור, שהוא מסנן שבוחר רק נתונים שהתקבלו מאז הפעם הקודמת שבה השאילתה הוערכה. לדוגמה, אם מגדירים את התזמון ל-60 דקות, השאילתה תופעל כל 60 דקות באמצעות חלון מבט לאחור שבוחר את הנתונים מ-60 הדקות האחרונות.
כללי מדיניות ההתראות כוללים גם רשימה של ערוצי התראות. כשהתנאי של מדיניות ההתראות מתקיים, Cloud Monitoring יוצר התראה ושולח אותה דרך הערוצים האלה. התראה היא רשומה של הנתונים שגרמו לעמידה בתנאי, יחד עם מידע רלוונטי אחר. המידע הזה יכול לעזור לכם לפתור בעיות שגרמו להתראה. אפשר לראות את ההתראה במסוף Google Cloud .
סוגי הערכות למדיניות התראות שמבוססת על SQL
תנאים שעוקבים אחרי תוצאה של שאילתת SQL תומכים בשני סוגים של הערכה:
סף מספר השורות: התנאי מתקיים כשמספר השורות בתוצאת השאילתה גדול מערך הסף, שווה לו או קטן ממנו.
לדוגמה, נניח שאתם רוצים לקבל התראה כשבחלון המבט לאחור יש יותר מ-50 רשומות ביומן עם חומרה גדולה מ-200. אתם יוצרים שאילתה שמדווחת על רשומות ביומן שרמת החומרה שלהן גבוהה מ-200. לאחר מכן מגדירים תנאי, בוחרים באפשרות Row count threshold ומגדירים את הסף ל-50.
Boolean: התנאי מתקיים כשעמודה בוליאנית ספציפית בטבלת התוצאות של השאילתה מכילה שורה כלשהי עם הערך
true.לדוגמה, נניח שאתם רוצים לקבל התראה כשליותר מ-25% מרשומות היומן בחלון המבט לאחור יש חומרה של
ERROR. אתם יוצרים שאילתה שמחשבת את אחוז רשומות היומן שרמת החומרה שלהן היאERROR. השאילתה כותבת את הערךtrueבעמודהnotifyכשהאחוז הזה גבוה מ-25%. אחר כך יוצרים תנאי, מגדירים את הסוג ל-Boolean ומגדירים את התנאי למעקב אחרי העמודהnotify.
בכללי מדיניות התראה שעוקבים אחרי תוצאה של שאילתת SQL יכול להיות רק תנאי אחד.
כללי מדיניות התראות ו-BigQuery
כדי שמדיניות התראה תוכל לשלוח שאילתות לנתוני היומן, צריך להגדיר מערך נתונים מקושר ב-BigQuery. מערכי נתונים מקושרים של BigQuery מאפשרים ל-BigQuery לקרוא את נתוני היומן, ומאפשרים לכם לבצע פונקציות של BigQuery על הנתונים שמוחזרים על ידי שאילתת ה-SQL.
כשמדיניות התראה מריצה שאילתת SQL, השאילתה הזו מופעלת במנוע BigQuery בפרויקט ב- Google Cloud שבו מוגדרת מדיניות ההתראה. כברירת מחדל, שאילתות שמופעלות במנוע של BigQuery משתמשות ב-slots על פי דרישה. משבצות על פי דרישה ומשבצות שמורות כפופות לתמחור של BigQuery.
אתם יכולים גם להגדיר הזמנות ייעודיות של יחידות קיבולת של BigQuery לפרויקט:
- יוצרים הזמנה עם משבצות ייעודיות או מזהים הזמנה קיימת.
- יצירת הקצאות של הזמנות לפרויקט.
רשומות ביומן שעברו הערכה
כדי שרשומה ביומן תיבדק על ידי שאילתת ה-SQL של מדיניות התראה, שני התנאים הבאים צריכים להתקיים:
- חותמת הזמן של קבלת הרשומה ביומן, שמתעדת מתי הרשומה התקבלה ב-Cloud Logging, צריכה להיות בתוך חלון המבט לאחור של מדיניות ההתראות.
- חותמת הזמן של הרשומה ביומן, שמתעדת את מועד היצירה של הרשומה, צריכה להיות בטווח של 15 דקות מחלון המבט לאחור.
לדוגמה, למדיניות ההתראה שמבוססת על SQL יש חלון מבט לאחור של 60 דקות. הכלי Observability Analytics מריץ את שאילתת ה-SQL של מדיניות ההתראה בשעה 13:30. כדי שרשומת יומן תיכלל בשאילתה, היא צריכה לעמוד בשני הקריטריונים הבאים:
- חותמת הזמן של קבלת ההודעה צריכה להיות בין 12:30 ל-13:30.
- חותמת הזמן צריכה להיות בין 12:15 ל-13:45.
כשמריצים שאילתה מהממשק של Observability Analytics, כל רשומות היומן בטווח התאריכים שנבחר נבדקות על סמך חותמת הזמן של רשומת היומן.
חלון מבט לאחור וזמן הפצת ההתראות
כשמדיניות התראות מתוזמנת לבדיקת התנאי שלה, Observability Analytics מעכב את הרצת שאילתת ה-SQL בחמש דקות כדי לתת ל-Cloud Logging זמן להוסיף לאינדקס את הנתונים שהתקבלו במהלך חלון המבט לאחור. לדוגמה, אם מדיניות ההתראה משתמשת בחלון מבט לאחור שמסתיים בשעה 14:00, אז Observability Analytics לא מריצה את שאילתת ה-SQL עד השעה 14:05.
אם התנאי של ההתראה מתקיים אחרי הרצת השאילתה, יכול להיות שיעברו עד שתי דקות נוספות עד שההתראה תופץ במערכת.
שאילתות שנכשלו
שאילתות שמונפקות על ידי מדיניות התראה שמבוססת על SQL יכולות להיכשל מכמה סיבות, כולל:
חשבון השירות של Monitoring לא קיים יותר, או שאין לו יותר את ההרשאות הנדרשות לקריאת נתוני היומן שנשלחה לגביהם שאילתה.
זמן הביצוע של השאילתה חורג מ-5 דקות.
אירעה שגיאה פנימית.
אם השאילתה נכשלת, נוצרת רשומה ביומן שמכילה את מזהה מדיניות ההתראה ואת סטטוס השגיאה. אפשר להשתמש במדיניות התראות מבוססת-יומנים כדי ליצור התראה כששגיאה נרשמת ביומן.
לפני שמתחילים
בקטע הזה אנחנו מניחים ששדרגתם את מאגר היומנים לשימוש ב-Observability Analytics, כדי שתוכלו לשלוח שאילתות לנתוני היומנים ולצפות בהם באמצעות הדף Observability Analytics. בנוסף, ההנחה היא שכבר יצרתם מערך נתונים מקושר ב-BigQuery בקטגוריית היומנים.
לפני שיוצרים מדיניות התראות שמבוססת על SQL, צריך לבצע את השלבים הבאים:
-
כדי לקבל את ההרשאות שדרושות לשליחת שאילתות לתצוגות של יומנים וליצירה ולניהול של מדיניות התראות שמבוססת על SQL, בקשו מהאדמין להקצות לכם את התפקידים הבאים ב-IAM:
- עריכת מעקב (
roles/monitoring.editor) בפרויקט - SQL Alert Writer (
roles/logging.sqlAlertWriter) בפרויקט - צפייה ביומנים (
roles/logging.viewer) בפרויקט - גישה לתצוגת יומנים (
roles/logging.viewAccessor) בפרויקט או בתצוגת היומן - BigQuery Data Viewer (
roles/bigquery.dataViewer) בפרויקט או במערך הנתונים המקושר - BigQuery Job User (
roles/bigquery.jobUser) בפרויקט
- עריכת מעקב (
מוודאים שחשבון השירות של Monitoring קיים ושהוקצו לו התפקידים הבאים:
- סוכן שירות למעקב (
roles/monitoring.notificationServiceAgent) בפרויקט. - BigQuery Data Viewer (
roles/bigquery.dataViewer) במערך הנתונים המקושר ב-BigQuery.
אם חשבון השירות של Monitoring לא קיים, קראו את המאמר פתרון בעיות: אין חשבון שירות של Monitoring.
- סוכן שירות למעקב (
- מגדירים את ערוצי ההתראות שבהם רוצים להשתמש כדי לקבל התראות. למטרות יתירות, מומלץ ליצור כמה סוגים של ערוצי התראות. למידע נוסף, קראו את המאמר יצירה וניהול של ערוצי התראות.
יצירת מדיניות התראות שמבוססת על SQL
כדי ליצור מדיניות התראות שמבוססת על SQL:
המסוף
-
נכנסים לדף manage_search Observability Analytics במסוף Google Cloud :
כניסה לדף Observability Analytics
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה עם כותרת המשנה Logging.
בדף Observability Analytics, מזינים בעורך השאילתות שאילתת SQL ששולחת שאילתה לנתוני היומן.
למידע נוסף על כתיבת שאילתות SQL לתצוגות של יומנים, קראו את המאמר שליחת שאילתות לתצוגת יומן.
בסרגל הכלים, לוחצים על Run on BigQuery (הרצה ב-BigQuery).
הכלי Observability Analytics מריץ את השאילתה במנוע של BigQuery ומציג את התוצאות בטבלה Results.
אם האפשרות Run on BigQuery לא מוצגת, לוחצים על settings Select query engine ואז על BigQuery. הלחצן Run query משתנה ל-Run on BigQuery.
בטבלה Results שבדף Observability Analytics, לוחצים על add_alert Create alert.
בדף Observability Analytics נפתח החלון Create sql alert policy, שבו השאילתה מופיעה בקטע SQL query.
בקטע Alert condition, מגדירים את התנאי ואת לוח הזמנים של מדיניות ההתראות.
מגדירים את פרטי ההתראה של מדיניות ההתראות.
מוסיפים ערוצי התראות ומגדירים את תוכן ההתראות, כמו שורת נושא בהתאמה אישית.
אופציונלי: מוסיפים תוויות למדיניות ההתראות ותיעוד.
לוחצים על הבא.
בודקים את מדיניות ההתראות ולוחצים על Save כדי ליצור אותה.
Terraform
מתקינים ומגדירים את Terraform בפרויקט. להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.
ב-Cloud Shell, עוברים לספרייה שמכילה את ההגדרות של Terraform.
בתצורה של Terraform, מגדירים מופע של המשאב google_monitoring_alert_policy, כולל condition_sql.
ב-Cloud Shell, מזינים את הפקודה
terraform apply.
כדי לשנות את מדיניות ההתראות, עורכים את השינויים ואז מחילים מחדש את ההגדרות של Terraform. מידע נוסף זמין במאמר ניהול מדיניות התראות באמצעות Terraform.
מידע כללי על השימוש ב- Google Cloud עם Terraform מופיע במאמר Terraform עם Google Cloud.
REST
משתמשים ב-method alertPolicies.create כדי ליצור מדיניות התראות באופן פרוגרמטי. הסוג Condition של מדיניות ההתראה חייב להיות conditionSql, שהוא מופע של 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 נכשלות כשזמן הביצוע שלהן חורג מחמש דקות.
יכול להיות עיכוב של עד שבע דקות, בנוסף לזמן הרצת השאילתה, בין המועד שבו נקבעה השאילתה לבין המועד שבו נוצרה ההתראה.
רשימה מלאה של המגבלות שמשויכות למדיניות ההתראות מופיעה במאמר מגבלות המעקב.
תמחור
למידע על תמחור, קראו את המאמרים הבאים:
- תמחור ב-BigQuery
- הקטעים Cloud Logging ו-Cloud Monitoring בדף התמחור של Google Cloud Observability.
המאמרים הבאים
במאמר יצירת תרשימים של תוצאות שאילתות באמצעות Observability Analytics מוסבר איך יוצרים תרשימים מנתוני Observability Analytics.
למידע על ניהול התראות של כללי מדיניות התראות כאלה, קראו את המאמר התראות של כללי מדיניות התראות מבוססי-SQL.