Benachrichtigungen über Cloud Logging konfigurieren

In diesem Dokument wird beschrieben, wie Sie Benachrichtigungen für Ereignisse zur Dienstbereitschaft einrichten, anpassen und testen.

Personalized Service Health lässt sich in Cloud Monitoring-Protokollbenachrichtigungen einbinden, damit Sie Benachrichtigungen konfigurieren und erhalten können. Sie können Benachrichtigungen für die folgenden Bedingungen erstellen:

  • Wenn neue Vorfälle gemeldet werden.
  • Wenn vorhandene Vorfälle aktualisiert werden, z. B. wenn das Google Cloud Supportteam eine neue Nachricht sendet.
  • Wenn Vorfälle für bestimmte Google Cloud Produkte oder Standorte wie Regionen erstellt oder aktualisiert werden.
  • Wenn bestimmte Details vorhandener Vorfälle aktualisiert werden, z. B. Status und Relevanz.

Da für diese Benachrichtigungen Protokollbenachrichtigungen verwendet werden, ist jede Benachrichtigung mit einem Monitoring-Vorfall verknüpft. Jede Benachrichtigung enthält Links zur Seite des Vorfalls und einen direkten Link zum Dashboard für den Dienststatus. Weitere Informationen zum Prüfen von Vorfällen

Nachdem Sie eine Benachrichtigung konfiguriert haben, erhalten Sie jedes Mal eine Benachrichtigung, wenn die Bedingungen Ihrer Benachrichtigungsrichtlinie erfüllt sind. Für diese Benachrichtigungen gelten Monitoring-Limits, z. B. 20 Benachrichtigungen pro Richtlinie und Tag und Projekt.

In den folgenden Abschnitten wird beschrieben, wie Sie eine Richtlinie für Benachrichtigungen zu Protokollen konfigurieren. Außerdem finden Sie Beispiele für häufige Benachrichtigungsszenarien. Protokollbenachrichtigungen basieren auf Benachrichtigungskanälen, die eine Vielzahl von Integrationen unterstützen, darunter E-Mail, SMS, Pub/Sub, Webhooks, Slack und PagerDuty.

Wenn Sie eine Benachrichtigung an ein anderes Ziel als die oben aufgeführten Optionen weiterleiten möchten, können Sie einen Webhook verwenden. Sie können beispielsweise einen Webhook für ServiceNow konfigurieren. Weitere Informationen finden Sie in der ServiceNow-Dokumentation unter Webhook in Google Cloud konfigurieren.

Formate für Benachrichtigungen

Die Formate von Benachrichtigungen variieren je nach Benachrichtigungskanal.

E-Mail

Wenn Sie die Benachrichtigung so konfigurieren, dass eine E-Mail gesendet wird, wird bei Erfüllung der Benachrichtigungsbedingung eine Nachricht mit der Adresse alerting-noreply@google.com an die von Ihnen angegebene E-Mail-Adresse gesendet.

Slack

Wenn Sie Ihre benutzerdefinierte Benachrichtigung so konfigurieren, dass sie in Slack gepostet wird, wird beim Auftreten des Ereignisses eine Nachricht von der Cloud Monitoring-Anwendung im ausgewählten Kanal angezeigt.

Benachrichtigungsrichtlinie einrichten

Für eine Benachrichtigung wird eine Benachrichtigungsrichtlinie verwendet, in der beschrieben wird, unter welchen Umständen und wie Sie benachrichtigt werden möchten.

Sie können Benachrichtigungsrichtlinien im Dashboard für den Dienststatus oder mit der Google Cloud CLI konfigurieren.

Für Benachrichtigungsrichtlinien ist ein Cloud Monitoring-Benachrichtigungskanal erforderlich, der festlegt, wohin eine Benachrichtigung gesendet wird. Wenn Sie keinen Benachrichtigungskanal haben, können Sie einen in der Google Cloud Console oder mit der Monitoring API erstellen.

Im Dashboard „Service Health“

Weitere Informationen finden Sie in der Kurzanleitung.

gcloud-Befehlszeile verwenden

So richten Sie eine Benachrichtigungsrichtlinie mit der gcloud CLI ein:

  1. Rufen Sie die ID Ihres Benachrichtigungskanals ab.

    a. Liste der Benachrichtigungskanal-IDs

    gcloud config set project PROJECT_ID gcloud beta monitoring channels list
    

    b. Suchen Sie nach Einträgen mit projects/PROJECT_ID/notificationChannels/. Diese Einträge sind die Benachrichtigungskanal-IDs.

  2. Erstellen Sie eine policy.json-Datei mit folgendem Inhalt:

    • ALERT_NAME wird in der Benachrichtigung angezeigt. Beispiel: „Google Cloud SQL-Vorfall“

    • Mit ALERT_CONDITION wird festgelegt, wann eine Benachrichtigung gesendet werden soll.

      • Verwenden Sie beim Definieren von Bedingungen die Werte unter Google Cloud products und locations.
      • Beispiele für Benachrichtigungsbedingungen:

        Benachrichtigungsbedingung ALERT_CONDITION Wert
        Benachrichtigungen für alle Cloud SQL-Ereignisse erhalten jsonPayload.impactedProductIds =~ \"hV87iK5DcEXKgWU2kDri\"
        Benachrichtigungen für alle Ereignisse in Zone us-central1-a erhalten jsonPayload.impactedLocations =~ \"us-central1-a\"

      Weitere Beispiele für Benachrichtigungsbedingungen

    • NOTIFICATION_CHANNEL ist die ID des Benachrichtigungskanals, die Sie im vorherigen Schritt mit dem Befehl „list“ abgerufen haben. Beispiel: projects/PROJECT_ID/notificationChannels/885798905074.

    Das folgende Snippet zeigt ein Beispiel für die policy.json-Datei.

    {
      "displayName": "ALERT_NAME",
      "combiner": "OR",
      "conditions": [ {
        "displayName": "Log match condition",
        "conditionMatchedLog": {
          "filter": "ALERT_CONDITION",
         } } ],
      "notificationChannels": [ "NOTIFICATION_CHANNEL" ],
    }
    
  3. Erstellen Sie die Cloud Monitoring-Richtlinie.

    gcloud config set project PROJECT_ID
    gcloud alpha monitoring policies create --policy-from-file="policy.json"
    

Inhalt der Benachrichtigung anpassen

Sie können die Felder in der Benachrichtigung über die folgenden Felder in der JSON-Datei festlegen:

  • labelExtractors: Die Eigenschaften, die in die Kopfzeile der Benachrichtigung aufgenommen werden sollen. Informationen zum Anpassen dieser Eigenschaften finden Sie im Leitfaden für LabelExtractors.
  • content: Die Formatierung der E-Mail-Benachrichtigung. Du kannst die Markdown-Variablensubstitution verwenden, um labelExtractors als Variablen zu verwenden. Informationen zum Anpassen dieser Variablen finden Sie in diesem Leitfaden.

Beispiele für Benachrichtigungsrichtlinien und ‑bedingungen

Benachrichtigung testen

Zum Testen der Benachrichtigung verwenden Sie ein Beispieltestprotokoll mit Cloud Logging. Im Testprotokoll wird die zuvor konfigurierte Benachrichtigungslogik angezeigt.

Google Cloud Console verwenden

Gehen Sie dazu so vor:

  1. Rufen Sie die Referenzseite für die Methode „entries:write“ auf. Mit dieser Methode können Sie Logeinträge in Cloud Logging schreiben. Ein Fenster wird geöffnet, in dem Sie die Methode ausprobieren können.
  2. Ersetzen Sie im Anfragetext PROJECT_ID durch Ihr eigenes Projekt.
  3. Ändern Sie alle jsonPayload-Felder im Anfragetext entsprechend der Benachrichtigungsbedingung, die Sie testen. Sie können auch das Schema event_log.proto prüfen und die Werte im Protokoll anpassen, um bestimmte Szenarien zu testen, die Sie interessieren.

    {
      "entries": [
        {
          "logName": "projects/PROJECT_ID/logs/servicehealth.googleapis.com%2Factivity",
          "resource": {
            "type": "servicehealth.googleapis.com/Event",
            "labels": {
              "resource_container": "PROJECT_ID",
              "location": "global",
              "event_id": "U4AqrjwFQYi5fFBmyAX-Gg"
            }
          },
          "labels": {
            "servicehealth.googleapis.com/new_event": "true",
            "servicehealth.googleapis.com/updated_fields": "[]"
          },
          "jsonPayload": {
            "@type": "type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog",
            "category": "INCIDENT",
            "title": "EXAMPLE... NOT REAL INCIDENT",
            "description": "EXAMPLE FOR TESTING, NOT REAL INCIDENT. We are experiencing an issue with Google Cloud infrastructure components at us-east1, australia-southeast2. Our engineering team continues to investigate the issue. We apologize to all who are affected by the disruption.",
            "updateTime": "2022-07-15T22:26:40Z",
            "endTime": "2022-07-16T22:13:20Z",
            "impactedLocations": "['us-east1', 'australia-southeast2']",
            "impactedProducts": "['CloudSQL']",
            "impactedProductIds": "['hV87iK5DcEXKgWU2kDri']",
            "startTime": "2022-07-13T12:26:40Z",
            "nextUpdateTime": "2022-07-13T16:26:40Z",
            "state": "ACTIVE",
            "detailedState": "CONFIRMED",
            "relevance": "RELATED"
          }
        }
      ]
    }
    
  4. Klicken Sie auf Ausführen. Ein Fenster wird geöffnet, in dem Google APIs Explorer Zugriff auf Ihr Konto anfordert.

  5. Gewähren Sie dem Google APIs Explorer Zugriff. Im Fenster mit dem Anfragetext wird der folgende Screenshot angezeigt, der einen Erfolg anzeigt.

    200 Nachricht

  6. Warten Sie einige Minuten und prüfen Sie dann, ob die Benachrichtigung ausgelöst wurde.

    1. Rufen Sie in der Google Cloud Console Cloud Monitoring > Vorfälle auf und suchen Sie nach der Benachrichtigung.
    2. Prüfen Sie, ob Sie eine Benachrichtigung über den Benachrichtigungskanal erhalten haben, der von der Benachrichtigungsrichtlinie verwendet wird.

Wenn Sie die Benachrichtigung noch einmal testen möchten, warten Sie mindestens 5 Minuten.

gcloud verwenden

Sie können auch einen Test-Logeintrag erstellen, indem Sie die Cloud Logging API mit dem Befehl „gcloud“ aufrufen.

  1. Optional: Prüfen Sie Ihr aktuelles Projekt.

    gcloud config list
    
  2. Legen Sie Ihr aktuelles Projekt fest.

    gcloud_name config set project PROJECT_ID
    
  3. Führen Sie den Testprotokolleintrag aus.

    gcloud logging write --payload-type=json
    LOG_NAME
    '{ "category": "INCIDENT", "relevance": "IMPACTED", "@type": "type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog", "description": "This is a test log entry"}'
    
  4. Warten Sie einige Minuten und prüfen Sie dann, ob die Benachrichtigung ausgelöst wurde.