בדף הזה מתואר התהליך ליצירת כללי התראה על סמך יומנים ומדדים מסביבות מבודדות (air-gapped) של Google Distributed Cloud (GDC), כדי לאפשר ניטור פרואקטיבי ותגובה מהירה יותר לאירועים.
GDC מאפשר להגדיר כללי התראה על סמך מדדים או יומנים של הפרויקט. הכללים האלה מפעילים התראות באופן אוטומטי כשמתקיימים תנאים מסוימים. אלה סוגי הכללים להתראות שאפשר להגדיר:
- כללים שמבוססים על מדדים: הפעלת התראות על סמך נתונים מספריים שנאספו מהאפליקציות או מהתשתית שלכם. לדוגמה, אפשר ליצור כלל להפעלת התראה אם השימוש במעבד חורג מ-80%. יוצרים כללים מבוססי-מדדים באמצעות מסוף GDC או
MonitoringRuleהגדרת משאב מותאם אישית. - כללים מבוססי-יומן: הפעלת התראות על סמך ניתוח של נתוני יומן. ההתראות האלה מאפשרות לכם לזהות אירועים או דפוסים ספציפיים ביומנים, כמו הודעות שגיאה או פעילות חריגה, ולהגיב להם. יוצרים כללים מבוססי-יומן באמצעות מסוף GDC או
LoggingRuleהגדרת משאב בהתאמה אישית.
גם כללים שמבוססים על מדדים וגם כללים שמבוססים על יומנים מסתמכים על ביטוי בשפת שאילתות כדי להגדיר את התנאי שמפעיל התראה. הביטוי הזה מסנן ומנתח את הנתונים הנכנסים, ומעריך אם הקריטריונים המוגדרים מתקיימים.
בפעם הראשונה שמתקיים תנאי, ההתראה עוברת למצב בהמתנה. אם התנאים מתקיימים במשך פרק הזמן הבא שאתם מגדירים, ההתראה עוברת למצב פתוח. באותו רגע, המערכת שולחת את ההתראה.
כדי לספק הקשר נוסף ולנהל את ההתראות בצורה יעילה, אתם יכולים להוסיף תוויות והערות לכללי ההתראה:
תוויות: צמדי מפתח/ערך שמסווגים ומזהים התראות. אפשר להשתמש בתוויות כדי לציין פרטים כמו:
- רמת החומרה (שגיאה, קריטית, אזהרה)
- קוד ההתראה
- שם המשאב
הערות: מספקות מידע שלא מאפשר זיהוי אישי, כדי להעשיר את ההתראה. ההערות יכולות לכלול את הפרטים הבאים:
- הודעות שגיאה מפורטות
- ביטויים רלוונטיים
- קישורים ל-runbooks או למדריכים לפתרון בעיות
לפני שמתחילים
כדי לנהל כללים מבוססי-מדדים או מבוססי-יומן, אתם צריכים את ההרשאות הנדרשות.
### בקשת תפקידים ב-IAM ברמת הארגון לכללים מבוססי-מדדים
צריך לפנות לאדמין ה-IAM בארגון ולבקש את התפקידים הבאים:
- MonitoringRule PA Creator (
monitoringrule-pa-creator): יצירת משאבים מותאמים אישית מסוגMonitoringRule. - MonitoringRule PA Editor (
monitoringrule-pa-editor): עריכה או שינוי שלMonitoringRuleמשאבים בהתאמה אישית. MonitoringRule PA Viewer (
monitoringrule-pa-viewer): הצגתMonitoringRuleמשאבים בהתאמה אישית.בקשת תפקידי IAM בפרויקט עבור כללים מבוססי-מדדים
פנו לאדמין של IAM בפרויקט ובקשו ממנו להקצות לכם את התפקידים הבאים:
- MonitoringRule Editor (
monitoringrule-editor): עריכה או שינוי שלMonitoringRuleמשאבים בהתאמה אישית במרחב השמות של הפרויקט. - MonitoringRule Viewer (
monitoringrule-viewer): צפייה במשאבים מותאמים אישיתMonitoringRuleבמרחב השמות של הפרויקט.
בקשת תפקידים ב-IAM ברמת הארגון עבור כללים מבוססי-יומן
צריך לפנות לאדמין ה-IAM בארגון ולבקש את התפקידים הבאים:
- LoggingRule PA Creator (
loggingrule-pa-creator): יצירתLoggingRuleמשאבים מותאמים אישית. - עריכת כלל רישום ביומן PA (
loggingrule-pa-editor): עריכה או שינוי של משאבים מותאמים אישיתLoggingRule. - LoggingRule PA Viewer (
loggingrule-pa-viewer): צפייה במשאבים מותאמים אישית שלLoggingRule.
בקשת תפקידי IAM בפרויקט עבור כללים מבוססי-יומן
פנו לאדמין של IAM בפרויקט ובקשו ממנו להקצות לכם את התפקידים הבאים:
- LoggingRule Editor (
loggingrule-editor): עריכה או שינוי שלLoggingRuleמשאבים בהתאמה אישית במרחב השמות של הפרויקט. - LoggingRule Viewer (
loggingrule-viewer): צפייה במשאבים מותאמים אישיתLoggingRuleבמרחב השמות של הפרויקט.
הגדרת כללים להתראות
אתם יכולים להגדיר כללי התראה במרחב השמות של הפרויקט באמצעות מסוף GDC (מומלץ) או באמצעות ממשקי ה-API של המעקב והרישום ביומן כדי להחיל משאבים בהתאמה אישית.
בוחרים אחת מהשיטות הבאות כדי להגדיר כללי התראה על סמך מדדים או יומנים:
המסוף
יצירת כללי התראה בקבוצות כללים ממסוף GDC:
- במסוף GDC, בוחרים פרויקט.
- בתפריט הניווט, בוחרים באפשרות Operations > Alerting.
- לוחצים על הכרטיסייה Alerting Policy (מדיניות התראות).
- לוחצים על יצירת קבוצת כללים.
בוחרים את סוג כלל ההתראה:
- בוחרים באפשרות מדדים כדי ליצור כללי התראה שמבוססים על מדדים.
- בוחרים באפשרות יומנים כדי להגדיר כללי התראה שמבוססים על יומנים.
מגדירים את קבוצת כללי ההתראה:
- בשדה שם קבוצת כללי ההתראה, מזינים שם לקבוצת הכללים.
- בשדה Rule evaluation interval (מרווח הערכת הכלל), מזינים את מספר השניות של כל מרווח.
בשדה Limit (מגבלה), מזינים את המספר המקסימלי של ההתראות.
בקטע כללי התראות, לוחצים על הוספת כלל.
בחלון Create alert rule, מזינים את הפרטים הבאים:
- שם לכלל ההתראה.
ביטוי לכלל ההתראה (משתמשים ב-LogQL לכללים מבוססי-יומנים וב-PromQL לכללים מבוססי-מדדים).
משך הזמן בשניות לפני שההתראה משתנה מבהמתנה לפתוחה.
רמת החומרה, למשל שגיאה או אזהרה.
שם קצר לזיהוי המשאב הקשור.
קוד התראה לזיהוי ההתראה.
כתובת URL של runbook או מידע לפתרון בעיות.
הודעת אזהרה או תיאור.
אופציונלי: מוסיפים תוויות והערות כצמדי מפתח/ערך.
לוחצים על שמירה כדי ליצור את הכלל.
לוחצים על יצירה כדי ליצור את קבוצת הכללים.
קבוצת הכללים מופיעה ברשימה קבוצת כללי התראות. אפשר לקבץ עוד כללים להתראות בקבוצת הכללים הזו.
API
יצירת כללי התראה מממשקי ה-API של המעקב או הרישום ביומן:
מגדירים משאב מותאם אישית מסוג
MonitoringRule(כללים שמבוססים על מדדים) אוLoggingRule(כללים שמבוססים על יומנים) בקובץ YAML.במפרט המשאבים המלא יש דוגמה לכללים שמבוססים על מדדים ולכללים שמבוססים על יומנים.
מחליפים את הערכים הבאים בקובץ ה-YAML בהתאם לצורך:
שדה תיאור namespaceמרחב השמות של הפרויקט. nameהשם של הגדרת כלל ההתראה. sourceמקור היומן של כלל ההתראה. האפשרויות הקבילות הן operationalו-audit. רלוונטי רק למשאביLoggingRule.intervalמשך הזמן של מרווח הערכת הכלל בשניות. limitאופציונלי. המספר המקסימלי של ההתראות. מגדירים את הערך 0כדי לקבל התראות ללא הגבלה.alertRulesההגדרות ליצירת כללי התראה. alertRules.alertשם ההתראה. alertRules.exprביטוי LogQL לכללים שמבוססים על יומנים או ביטוי PromQL לכללים שמבוססים על מדדים. הערך של הביטוי צריך להיות True או False כדי לקבוע אם ההתראה תעבור למצב 'בהמתנה'. alertRules.forאופציונלי. משך הזמן בשניות לפני שההתראה משתנה מבהמתנה לפתוחה. ברירת המחדל היא 0שניות (הפעלה מיידית).alertRules.labelsצמדי מפתח/ערך לזיהוי ולהגדרה של ההתראה. היא דורשת את התוויות הבאות: severity,codeו-resource.alertRules.annotationsאופציונלי. מטא-נתונים שלא מזהים את המשתמשים בהתראה כצמדי מפתח/ערך. שומרים את קובץ ה-YAML.
מחילים את הגדרת המשאב על שרת Management API באותו מרחב שמות כמו כללי ההתראה שמבוססים על מדדים או על יומנים:
kubectl --kubeconfig KUBECONFIG_PATH apply -f ALERT_RULE_NAME.yamlמחליפים את מה שכתוב בשדות הבאים:
-
KUBECONFIG_PATH: הנתיב לקובץ kubeconfig של שרת Management API. -
ALERT_RULE_NAME: השם של קובץ ההגדרהMonitoringRuleאוLoggingRule.
-
השלמת הגדרת המשאב
בקטע הזה מופיעות תבניות YAML שבהן אפשר להשתמש כדי ליצור כללי התראה שמבוססים על מדדים ועל יומנים, באמצעות החלת משאבים בהתאמה אישית. אם יוצרים התראות ממסוף GDC, אפשר לדלג על הקטע הזה.
הגדרת כללי התראות במשאבים המותאמים אישית הבאים:
-
MonitoringRule: כללים שמבוססים על מדדים.
LoggingRule: כללים שמבוססים על יומנים.
MonitoringRule
קובץ ה-YAML הבא מציג תבנית של משאב מותאם אישית MonitoringRule. מידע נוסף מופיע במאמרי העזרה של ה-API.
# Configures either an alert or a target record for precomputation.
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringRule
metadata:
# Choose a namespace that matches the project namespace.
# The alert or record is produced in the same namespace.
namespace: PROJECT_NAMESPACE
name: MONITORING_RULE_NAME
spec:
# Rule evaluation interval.
interval: 60s
# Configure the limit for the number of alerts.
# A value of '0' means no limit.
# Optional.
# Default value: '0'
limit: 0
# Configure metric-based alert rules.
alertRules:
# Define an alert name.
- alert: my-metric-based-alert
# Define the PromQL expression to evaluate for this rule.
expr: rate({service_name="bob-service"} [1m])
# The duration in seconds before an alert transitions from pending to open.
# Optional.
# Default value: '0s'
for: 0s
# Define labels to add or overwrite.
# Map of key-value pairs.
# Required labels:
# severity: [error, critical, warning, info]
# code:
# resource: component/service/hardware related to the alert
# Additional labels are optional.
labels:
severity: error
code: 202
resource: AIS
another-label: another-value
# Define annotations to add.
# Map of key-value pairs.
# Optional.
# Recommended annotations:
# message: value of the Message field in the user interface.
# expression: value of the Rule field in the user interface.
# runbookurl: URL of the Actions to take field in the user interface.
annotations:
message: my-alert-message
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NAMESPACE: מרחב השמות של הפרויקט. -
MONITORING_RULE_NAME: השם של קובץ ההגדרהMonitoringRule.
LoggingRule
קובץ ה-YAML הבא מציג תבנית של משאב מותאם אישית LoggingRule. מידע נוסף מופיע במאמרי העזרה של ה-API.
# Configures either an alert or a target record for precomputation.
apiVersion: logging.gdc.goog/v1
kind: LoggingRule
metadata:
# Choose a namespace that matches the project namespace.
# The alert or record is produced in the same namespace.
namespace: PROJECT_NAMESPACE
name: LOGGING_RULE_NAME
spec:
# Choose the log source to base alerts on (operational or audit logs).
# Optional.
# Valid options: 'operational' and 'audit'
# Default value: 'operational'
source: operational
# Rule evaluation interval.
interval: 60s
# Configure the limit for the number of alerts.
# A value of '0' means no limit.
# Optional.
# Default value: '0'
limit: 0
# Configure log-based alert rules.
alertRules:
# Define an alert name.
- alert: my-log-based-alert
# Define the LogQL expression to evaluate for this rule.
expr: rate({service_name="bob-service"} [1m])
# The duration in seconds before an alert transitions from pending to open.
# Optional.
# Default value: '0s'
for: 0s
# Define labels to add or overwrite.
# Map of key-value pairs.
# Required labels:
# severity: [error, critical, warning, info]
# code:
# resource: component/service/hardware related to the alert
# Additional labels are optional.
labels:
severity: warning
code: 202
resource: AIS
another-label: another-value
# Define annotations to add.
# Map of key-value pairs.
# Optional.
# Recommended annotations:
# message: value of the Message field in the user interface.
# expression: value of the Rule field in the user interface.
# runbookurl: URL of the Actions to take field in the user interface.
annotations:
message: my-alert-message
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NAMESPACE: מרחב השמות של הפרויקט. -
LOGGING_RULE_NAME: השם של קובץ ההגדרהLoggingRule.