הגדרת ערוצי התראות

ב-Google Distributed Cloud (GDC)‎ עם air gap, אתם יכולים להגדיר ערוצי התראות בהתאמה אישית כדי לנתב התראות שהופעלו לאנשים, לצוותים או לסבבי כוננות ספציפיים. שליחת התראות דרך ערוצים כמו PagerDuty,‏ SMS,‏ webhook או שילובים בהתאמה אישית עוזרת לצמצם את עייפות ההתראות ותומכת בתגובה לאירועים בזמן.

ערוצי התראות מוגדרים מראש כמו Slack או אימייל לא זמינים ב-GDC, לכן צריך להגדיר לפחות ערוץ אחד בהתאמה אישית כדי לקבל התראות. אתם מגדירים את סוג הערוץ, נקודת הקצה של היעד ופרטי הכניסה לאימות באובייקט ConfigMap של Alertmanager. לאחר מכן מייבאים את ההגדרות האלה למשאב בהתאמה אישית של ObservabilityPipeline במרחב השמות של הפרויקט.

לפני שמתחילים

כדי לנהל משאבים בהתאמה אישית ב-ObservabilityPipeline, צריך את ההרשאות הנדרשות.

בקשת תפקידים ב-IAM ברמת הארגון

כדי לבקש את התפקידים הבאים, פנו למנהל החשבון הארגוני ב-IAM:

  • יצירת ObservabilityPipeline PA ‏(observabilitypipeline-pa-creator): יצירת משאבים בהתאמה אישית של ObservabilityPipeline.
  • עריכת ObservabilityPipeline PA ‏(observabilitypipeline-pa-editor): עריכה או שינוי של משאבים בהתאמה אישית של ObservabilityPipeline.
  • צפייה ב-ObservabilityPipeline PA ‏(observabilitypipeline-pa-viewer): צפייה במשאבים מותאמים אישית של ObservabilityPipeline.
  • עורך ConfigMap ‏(observabilitypipeline-configmap-editor): יצירת אובייקטים מסוג ConfigMap במרחב השמות של הפלטפורמה.

בקשת תפקידי IAM בפרויקט

כדי לבקש את התפקידים הבאים, פנו לאדמין של הפרויקט ב-IAM:

  • עריכת ObservabilityPipeline ‏(observabilitypipeline-editor): עריכה או שינוי של משאבים בהתאמה אישית של ObservabilityPipeline במרחב השמות של הפרויקט.
  • ‫צפייה ב-ObservabilityPipeline ‏(observabilitypipeline-viewer): צפייה במשאבים בהתאמה אישית של ObservabilityPipeline במרחב השמות של הפרויקט.

הגדרת ערוצי התראות

מגדירים ערוצי התראות במרחב השמות של הפרויקט:

  1. מגדירים את ההתאמה האישית של ערוצי ההתראות בקובץ YAML בשם alertmanager.yml. צריך להשתמש באותו תחביר כמו במפרט של Alertmanager:

    https://prometheus.io/docs/alerting/latest/configuration/.

  2. יוצרים אובייקט ConfigMap וכוללים את ההגדרות האישיות מהקובץ alertmanager.yml בשדה data.

    בדוגמה הבאה אפשר לראות איך האובייקט ConfigMap צריך להיראות עם הקובץ alertmanager.yml:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: CONFIGMAP_NAME
      # The namespace must match your project namespace.
      namespace: PROJECT_NAMESPACE
    data:
      # The file name must be alertmanager.yml
      alertmanager.yml: |
        # Define your notification channels.
        # Add the custom configuration in the following lines of this file.
        # Follow the same syntax as in https://prometheus.io/docs/alerting/latest/configuration
    
      # [...]
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CONFIGMAP_NAME: השם של קובץ ההגדרה של ConfigMap. השם הזה ישמש אתכם בהמשך במשאב המותאם אישית ObservabilityPipeline.
    • ‫PROJECT_NAMESPACE: מרחב השמות של הפרויקט.
  3. מחילים את האובייקט ConfigMap על שרת Management API באותו מרחב שמות שבו מוגדרות ההתראות:

    kubectl --kubeconfig KUBECONFIG_PATH apply -f CONFIGMAP_NAME.yaml
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫KUBECONFIG_PATH: הנתיב לקובץ kubeconfig של שרת Management API.
    • ‫CONFIGMAP_NAME: השם של קובץ ההגדרה של ConfigMap.
  4. עורכים את מפרט המשאב בהתאמה אישית של ObservabilityPipeline כדי לייבא את ההגדרות לשדה alertmanagerConfig:

     # Configure the observability pipeline.
    apiVersion: observability.gdc.goog/v1
    kind: ObservabilityPipeline
    metadata:
      # The namespace must match your project namespace.
      namespace: PROJECT_NAMESPACE
      name: OBSERVABILITY_PIPELINE_NAME
    spec:
      # Configure alerts.
      alerting:
        # The alerting configuration must be in the ConfigMap.
        # The value must match the ConfigMap name exactly.
        alertmanagerConfig: CONFIGMAP_NAME
    
      # [...]
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_NAMESPACE: מרחב השמות של הפרויקט.
    • ‫OBSERVABILITY_PIPELINE_NAME: השם של המשאב בהתאמה אישית ב-ObservabilityPipeline.
    • ‫CONFIGMAP_NAME: השם שנתתם לקובץ ההגדרה של ConfigMap. השם חייב להיות זהה.
  5. שומרים את הקובץ.

  6. מחילים את השינויים במשאב המותאם אישית ObservabilityPipeline על שרת Management API באותו מרחב שמות שבו נמצאות ההתראות שהגדרתם:

    kubectl --kubeconfig KUBECONFIG_PATH apply -f OBSERVABILITY_PIPELINE_NAME.yaml
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫KUBECONFIG_PATH: הנתיב לקובץ kubeconfig של שרת Management API.
    • ‫OBSERVABILITY_PIPELINE_NAME: השם של קובץ ההגדרה של ObservabilityPipeline.