מעקב אחרי התראות ב-Google Distributed Cloud (GDC) עם air gap מאפשר לכם לעקוב אחרי התראות פעילות בפרויקט ולפתור בעיות שקשורות אליהן, אחרי שיצרתם כללי התראות. במסוף GDC אפשר לבדוק את חומרת ההתראה, משך הזמן, הסטטוס והתוויות. לסקריפטים, למשימות cron ולשילובים בהתאמה אישית, שולחים שאילתה לנקודת הקצה (endpoint) של HTTP ב-Cortex Alertmanager בפרויקט באמצעות curl.
לפני שמתחילים
כדי לקבל את ההרשאות שנדרשות לשליחת שאילתות ולהצגת התראות, בקשו מהאדמין של הפרויקט ב-IAM להקצות לכם את אחד מהתפקידים שמשויכים ל-Project Cortex Alertmanager במרחב השמות של הפרויקט. בהתאם לרמת הגישה וההרשאות שאתם צריכים, יכול להיות שתקבלו תפקידי עריכה או צפייה במשאב הזה בפרויקט.
בטבלה הבאה מפורטות הדרישות של Role לגבי PA and AO persona.
| פרסונה | אובייקט | אשכול | תפקיד | מרחב שמות | קבוצה/משתמש | הגדרה |
|---|---|---|---|---|---|---|
| PA | grafana | מנהל חשבון ארגוני | project-cortex-alertmanager-viewer |
platform-obs | קבוצה | 1 |
| PA | grafana | מנהל חשבון ארגוני | project-cortex-alertmanager-viewer |
platform-obs | משתמש | 2 |
| AO | alertmanager | מנהל חשבון ארגוני | project-cortex-alertmanager-viewer |
PROJECT_NAMESPACE | קבוצה | 1 |
| AO | alertmanager | מנהל חשבון ארגוני | project-cortex-alertmanager-viewer |
PROJECT_NAMESPACE | משתמש | 2 |
מחליפים את המשתנים הבאים בהתאם:
| משתנה | תיאור |
|---|---|
KUBECONFIG |
תצטרכו את ה-kubeconfig של האשכול הספציפי שמכיל את ה-NAMESPACE שעליו יחול ה-RoleBinding הזה. |
RULE_NAME |
השם הייחודי של המשאב RoleBinding במרחב השמות. לדוגמה, pa-cortex-alertmanager-viewer. |
NAMESPACE |
מרחב השמות של Kubernetes שבו ייווצר ויחול ה-RoleBinding הזה. חפשו את העמודה Namespace בטבלה הקודמת. |
EMAIL_ADDRESS |
המזהה של המשתמש שמקבל את התפקיד. לרוב מדובר בכתובת אימייל. לדוגמה, infrastructure-operator@example.com. |
ROLE |
השם של Role שמכיל את ההרשאות שרוצים לתת למשתמש. מחפשים את התפקידים שזמינים בטבלה הקודמת. |
GROUP_NAME |
השם של Group שהמשתמש עם הרשאת PA או AO שייך אליו. לדוגמה, pa-group. |
ZONE |
שם האזור |
הגדרה 1
ההגדרה הזו נותנת לקבוצת משתמשים הרשאות גישה להתראות של PA/AO באשכול org. אחרי שמגדירים את ההגדרה הזו, אפשר לעיין בקטע מסוף במסמך הזה כדי לראות התראות במסוף GDC.
פקודת Kubectl
זהו הפורמט הכללי של הפקודה:
kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n `NAMESPACE` --group=`GROUP_NAME` --role=project-cortex-alertmanager-viewerלדוגמה:
kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-cortex-alertmanager-viewer-binding --role=project-cortex-alertmanager-viewer --group=my-team --namespace=platform-obsנתיב קובץ IAC
/infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`GROUP_NAME`/<YAML_FILE>קובץ YAML
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: RULE_NAME namespace: NAMESPACE subjects: - kind: Group name: GROUP_NAME apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: project-cortex-alertmanager-viewer apiGroup: rbac.authorization.k8s.io
הגדרה 2
ההגדרה הזו מיועדת לפרסונה PA, ומטרגטת את האובייקט grafana באשכול org-admin.
הוא מעניק את התפקיד project-cortex-alertmanager-viewer במרחב השמות platform-obs ל-User.
פקודת Kubectl
זהו הפורמט הכללי של הפקודה:
kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n platform-obs --user=`EMAIL_ADDRESS` --role=project-cortex-alertmanager-viewerלדוגמה:
kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-cortex-alertmanager-viewer-binding --role=project-cortex-alertmanager-viewer --user=my-email@example.com --namespace=platform-obsנתיב קובץ IAC
/infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`EMAIL_ADDRESS`/<YAML_FILE>קובץ YAML
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: RULE_NAME namespace: platform-obs subjects: - kind: User name: EMAIL_ADDRESS apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: project-cortex-alertmanager-viewer apiGroup: rbac.authorization.k8s.ioלמידע נוסף על התפקידים האלה, ראו הכנת הרשאות IAM.
הצגה וסינון של התראות פתוחות
כדי לשלוח שאילתה ולסנן התראות פתוחות ממרחב השמות של הפרויקט, בוחרים באחת מהשיטות הבאות:
המסוף
כדי לראות את ההתראות הפתוחות בפרויקט דרך מסוף GDC:
- נכנסים למסוף GDC.
- בוחרים את הפרויקט במסוף GDC.
- בתפריט הניווט, לוחצים על Operations > Alerting.
- לוחצים על הכרטיסייה התראות.
- לראות את רשימת ההתראות.
- בקטע Alerts opened, לוחצים על Filter כדי להציג רק התראות פתוחות. אפשר גם לסנן התראות לפי שמות או ערכים של מאפיינים אחרים.
- לוחצים על שם ההתראה כדי לראות את הפרטים שלה.
נקודת קצה של Cortex
כאן מוסבר איך לגשת להתראות באמצעות נקודת הקצה של Cortex Alertmanager.
זיהוי נקודת הקצה של Cortex
כתובת ה-URL הבאה היא נקודת הקצה של המכונה של Cortex בפרויקט:
https://GDC_URL/PROJECT_NAMESPACE/cortex/alertmanager/
מחליפים את מה שכתוב בשדות הבאים:
-
GDC_URL: כתובת ה-URL של הארגון ב-GDC.
PROJECT_NAMESPACE: מרחב השמות של הפרויקט.לדוגמה, נקודת הקצה של Cortex לפרויקט
platform-obsבארגוןorg-1היאhttps://org-1/platform-obs/cortex/alertmanager/.
אימות הבקשה של curl
- מורידים ומתקינים את ה-CLI של gdcloud.
מגדירים את המאפיין gdcloud
core/organization_console_url:gdcloud config set core/organization_console_url https://GDC_URLנכנסים לחשבון באמצעות ספק הזהויות שהוגדר:
gdcloud auth loginמשתמשים בשם המשתמש ובסיסמה כדי לאמת את החשבון ולהיכנס אליו.
אחרי ההתחברות, אפשר להשתמש בכותרת ההרשאה בבקשת ה-curl באמצעות הפקודה
gdcloud auth print-identity-token. מידע נוסף זמין במאמר gdcloud auth.
שליחת קריאה לנקודת הקצה של Cortex
כדי להגיע לנקודת הקצה של Cortex באמצעות הכלי curl:
- מאמתים את הבקשה של
curl. משתמשים ב-
curlכדי לשלוח קריאה לנקודת הקצה של Cortex, ומרחיבים את כתובת ה-URL באמצעות המפרט הרגיל של Alertmanager API (https://prometheus.io/docs/prometheus/latest/querying/api/#alertmanagers) כדי לשלוח שאילתות לגבי התראות.דוגמה לבקשת
curl:curl https://GDC_URL/PROJECT_NAME/cortex/alertmanager/api/v1/alertmanagers \ -H "Authorization: Bearer $(gdcloud auth print-identity-token \ --audiences=https://GDC_URL)"הפלט מתקבל אחרי הפקודה. התגובה מה-API היא בפורמט JSON.