במכשיר Google Distributed Cloud (GDC) מנותק, אתם יכולים ליצור כללי התראה מהמדדים ומהיומנים של הפרויקט כדי לעקוב באופן יזום ולהגיב לאירועים. הכללים האלה מפעילים התראות באופן אוטומטי כשמתקיימים תנאים מסוימים. אפשר להגדיר את הסוגים הבאים של כללי התראות:
- כללים שמבוססים על מדדים: הפעלת התראות מנתונים מספריים שנאספים באפליקציות ובתשתית, למשל כשניצול המעבד (CPU) חורג מ-80%.
אפשר ליצור כללים מבוססי-מדדים באמצעות מסוף GDC או משאב מותאם אישית של
MonitoringRule. - כללים מבוססי-יומן: מפעילים התראות מאירועים או דפוסים ספציפיים בנתוני היומן, כמו הודעות שגיאה או פעילות חריגה. אפשר ליצור כללים מבוססי-יומנים באמצעות מסוף GDC או משאב מותאם אישית של
LoggingRule.
גם כללים שמבוססים על מדדים וגם כללים שמבוססים על יומנים מסתמכים על ביטוי בשפת שאילתות כדי להגדיר את התנאי שמפעיל התראה. הביטוי הזה מסנן ומנתח את הנתונים הנכנסים, ובודק אם הם עומדים בקריטריונים שהוגדרו.
בפעם הראשונה שתנאי מתקיים, ההתראה עוברת למצב בהמתנה. אם התנאים מתקיימים במהלך התקופה שאתם מגדירים, ההתראה עוברת למצב פתוחה. באותו רגע, המערכת שולחת את ההתראה.
כדי לספק הקשר נוסף ולנהל את ההתראות ביעילות, אתם יכולים להוסיף תוויות והערות לכללי ההתראות:
תוויות: צמדי מפתח/ערך שמסווגים ומזהים התראות. אפשר להשתמש בתוויות כדי להוסיף מידע כמו:
- רמת החומרה (שגיאה, קריטית, אזהרה)
- קוד ההתראה
- שם המשאב
הערות: מידע נוסף שלא מאפשר זיהוי אישי, כדי להעשיר את ההתראה. ההערות יכולות לכלול את המידע הבא:
- הודעות שגיאה מפורטות
- ביטויים רלוונטיים
- קישורים למדריכי הפעלה או למדריכים לפתרון בעיות
לפני שמתחילים
כדי לנהל כללים מבוססי-מדדים או מבוססי-יומנים, אתם צריכים את ההרשאות הנדרשות.
### בקשת תפקידי IAM ברמת הארגון לכללים מבוססי-מדדים
כדי לבקש את התפקידים הבאים, פנו לאדמין של IAM בארגון:
- MonitoringRule PA Creator (
monitoringrule-pa-creator): יצירת משאבים בהתאמה אישית שלMonitoringRule. - עורך MonitoringRule PA (
monitoringrule-pa-editor): עריכה או מחיקה של משאבים בהתאמה אישית שלMonitoringRule. צפייה ב-MonitoringRule PA (
monitoringrule-pa-viewer): צפייה במשאבים בהתאמה אישית שלMonitoringRule.בקשת תפקידי IAM בפרויקט לכללים מבוססי-מדדים
כדי לבקש את התפקידים הבאים, פנו לאדמין של IAM בפרויקט:
- MonitoringRule Editor (
monitoringrule-editor): עריכה או מחיקה של משאבים בהתאמה אישית שלMonitoringRuleבמרחב השמות של הפרויקט. - MonitoringRule Viewer (
monitoringrule-viewer): צפייה במשאבים בהתאמה אישית שלMonitoringRuleבמרחב השמות של הפרויקט.
בקשת תפקידי IAM ברמת הארגון לכללים מבוססי-יומן
כדי לבקש את התפקידים הבאים, פנו לאדמין של IAM בארגון:
- יוצר LoggingRule PA (
loggingrule-pa-creator): יצירת משאבים בהתאמה אישית מסוגLoggingRule. - עריכת LoggingRule PA (
loggingrule-pa-editor): עריכה או מחיקה של משאבים בהתאמה אישית שלLoggingRule. - צפייה ב-LoggingRule PA (
loggingrule-pa-viewer): צפייה במשאבים בהתאמה אישית שלLoggingRule.
בקשת תפקידי IAM בפרויקט לכללים מבוססי-יומן
כדי לבקש את התפקידים הבאים, פנו לאדמין של IAM בפרויקט:
- עריכת LoggingRule (
loggingrule-editor): עריכה או מחיקה של משאבים בהתאמה אישית שלLoggingRuleבמרחב השמות של הפרויקט. - צפייה ב-LoggingRule (
loggingrule-viewer): צפייה במשאבים בהתאמה אישית שלLoggingRuleבמרחב השמות של הפרויקט.
הגדרת כללי התראות
כדי להחיל משאבים בהתאמה אישית, אתם יכולים להגדיר כללי התראות במרחב השמות של הפרויקט באמצעות מסוף GDC (מומלץ) או באמצעות ממשקי ה-API למעקב ולרישום ביומן.
בוחרים אחת מהשיטות הבאות כדי להגדיר כללי התראות על סמך מדדים או יומנים:
המסוף
יצירת כללי התראות בקבוצות של כללים במסוף GDC:
- בוחרים פרויקט במסוף GDC.
- בתפריט הניווט, לוחצים על Operations > Alerting.
- לוחצים על הכרטיסייה מדיניות התראות.
- לוחצים על יצירת קבוצת כללים.
בוחרים את סוג כלל ההתראה:
- בוחרים באפשרות Metrics לכללי התראות שמבוססים על מדדים.
- בוחרים באפשרות Logs לכללי התראות שמבוססים על יומנים.
מגדירים את קבוצת כללי ההתראות:
- בשדה Alert rule group name, מזינים שם לקבוצת כללי ההתראה.
- בשדה Rule evaluation interval, מזינים את מספר השניות לכל מרווח זמן.
בשדה Limit, מזינים את המספר המקסימלי של התראות.
בקטע כללי התראה, לוחצים על הוספת כלל.
בחלון Create alert rule, מזינים את הפרטים הבאים:
- שם לכלל ההתראה.
ביטוי לכלל ההתראה (משתמשים ב-LogQL לכללים מבוססי-יומנים וב-PromQL לכללים מבוססי-מדדים).
משך הזמן בשניות לפני שההתראה עוברת מסטטוס בהמתנה לסטטוס פתוחה.
רמת החומרה, כמו שגיאה או אזהרה.
שם קצר לזיהוי המשאב הקשור.
קוד התראה לזיהוי ההתראה.
כתובת URL של מדריך הפעלה או מידע על פתרון בעיות.
הודעת התראה או תיאור.
אופציונלי: מוסיפים תוויות והערות כצמדי מפתח/ערך.
לוחצים על שמירה כדי ליצור את הכלל.
לוחצים על יצירה כדי ליצור את קבוצת הכללים.
קבוצת הכללים מופיעה ברשימה קבוצת כללי התראות. אתם יכולים לקבץ עוד כללי התראות בקבוצת הכללים הזו.
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.