Service Health-Logs abfragen, exportieren und speichern

Personalized Service Health protokolliert Dienststatusereignisse in Cloud Logging. Alle Aktualisierungen der Beschreibung, Relevanz oder des Status des Ereignisses werden als separater Logeintrag erfasst.

In diesem Dokument wird beschrieben, wie Sie Service Health-Logs ansehen, exportieren und speichern.

Hinweise

Verify that billing is enabled for your Google Cloud project.

  1. Aktivieren Sie die Service Health API für das Projekt, für das Sie Logs ansehen, exportieren oder speichern möchten.
  2. Zugriff auf Service Health-Logs

Logs-Schema

Informationen zu den Feldern, die Sie in Ihrer Abfrage festlegen können, finden Sie in der Referenz zum Logs-Schema.

Service Health-Logs ansehen

So rufen Sie Service Health-Logs auf:

  1. Rufen Sie die Google Cloud Console auf.
  2. Wählen Sie Vorgänge > Logging > Log-Explorer aus.
  3. Wählen Sie oben auf der Seite ein Google Cloud -Projekt aus.
  4. Wählen Sie im Drop-down-Menü Logname die Option Service Health aus.

    Log-Explorer

    Logname

    Eine Liste der Logs für type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog wird angezeigt.

  5. Maximieren Sie einen Logeintrag, um die Ereignisdetails anzusehen. Das folgende Beispiel zeigt ein typisches Ereignis.

    "insertId":"1pw1msgf6a3zc6",
    "timestamp":"2022-06-14T17:17:55.722035096Z",
    "receiveTimestamp":"2022-06-14T17:17:55.722035096Z",
    "logName":"projects/PROJECT_ID/logs/servicehealth.googleapis.com%2Factivity",
    "resource":{
        "type":"servicehealth.googleapis.com/Event",
        "labels":{
            "resource_container":"797731824162",
            "location":"global",
            "event_id":"U4AqrjwFQYi5fFBmyAX-Gg"
        }
    }
    "labels":{
        "new_event":"true"
        "updated_fields": "[]"
    },
    "jsonPayload":{
        "@type":"type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog",
        "category":"INCIDENT",
        "title":"We are experiencing a connectivity issue affecting Cloud SQL in us-east1, australia-southeast2.",
        "description":"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":"2023-11-14T22:26:40Z",
        "endTime":"2023-11-14T22:13:20Z",
        "impactedLocations":"['us-east1','australia-southeast2']",
        "impactedProducts":"['Google Cloud SQL']",
        "impactedProductIds":"['hV87iK5DcEXKgWU2kDri']",
        "nextUpdateTime":"2023-11-14T22:40:00Z",
        "startTime":"2020-09-13T12:26:40Z",
        "state":"ACTIVE",
        "detailedState":"CONFIRMED",
        "relevance":"RELATED",
    }
    

Service Health-Logs abfragen

Sie können den Log-Explorer verwenden, um Logs zum Dienststatus abzufragen. Möglicherweise benötigen Sie die folgenden Referenzen, um Ihre Abfrage zu erstellen:

Beispiele:

Bedingung Abfrage
Logs mit einer bestimmten Relevanz für Vorfälle abrufen jsonPayload.relevance = ("IMPACTED" OR "RELATED")
Mehrere Filter kombinieren jsonPayload.impactedLocations : "us-central1" AND jsonPayload.impactedProducts : "Google Compute Engine" AND jsonPayload.state = "ACTIVE"

Service Health-Logs exportieren

Sie können Service Health-Logs mit der Google Cloud Console, API oder gcloud CLI in ein beliebiges Cloud Logging-Senkenziel exportieren. Informationen zum Einrichten einer Cloud Logging-Senke finden Sie unter Senken konfigurieren und verwalten.

Sie können Service Health-Logs ein- und ausschließen, indem Sie die Ein- und Ausschlussfilter für die Senke konfigurieren.

Verwenden Sie beim Festlegen des Produkts oder Standorts die Werte unter Google Cloud products und locations.

Service Health-Logs auf Ordnerebene zusammenfassen

Wenn Sie Service Health-bezogene Logs aus allen Projekten in einem Ordner an ein Projekt senden, das für Service Health-Logs erstellt wurde, können Sie komplexere Abfragen für diese Logs ausführen.

Sie erstellen eine Senke auf Ordnerebene, um alle Logs, die sich auf den Dienststatus beziehen, an ein neues Projekt in diesem Ordner zu senden. Gehen Sie dazu so vor:

  1. Neues Projekt in einem Ordner erstellen Dieses Projekt ist den Service Health-Logs zugewiesen.

    gcloud projects create PROJECT_ID --folder FOLDER_ID
    
  2. Erstellen Sie eine aggregierte Senke auf Ordnerebene für die anderen Projekte im Ordner.

    gcloud logging sinks create SINK_NAME \
    SINK_DESTINATION  --include-children \
    --folder=FOLDER_ID --log-filter="LOG_FILTER"
    

    Wenn Sie Logs für alle relevanten Vorfälle abrufen möchten, legen Sie den Wert LOG_FILTER auf Folgendes fest:

    resource.type=servicehealth.googleapis.com/Event AND jsonPayload.category=INCIDENT AND jsonPayload.relevance!=NOT_IMPACTED AND jsonPayload.@type=type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog
    
  3. Berechtigungen für das Dienstkonto der Senke festlegen

    gcloud projects add-iam-policy-binding PROJECT_ID --member=SERVICE_ACCT_NAME --role=roles/logging.bucketWriter
    
    gcloud projects add-iam-policy-binding PROJECT_ID --member=SERVICE_ACCT_NAME --role=roles/logging.logWriter
    
  4. Optional: Wenn Sie die Protokolle nicht an die Senke _Default senden möchten, erstellen Sie einen Log-Bucket für Service Health-bezogene Protokolle im Projekt.

    gcloud logging buckets create BUCKET_ID --location=LOCATION --enable-analytics --async
    

    Wenn Sie einen Log-Bucket erstellt haben, erstellen Sie eine Senke, um die Logs an den Bucket zu senden.

    gcloud logging sinks create SINK_NAME_BUCKET \
    logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID \
    --project=PROJECT_ID --log-filter="LOG_FILTER"
    

Service Health-Logs mit BigQuery abfragen

Sie können mit BigQuery Logs abfragen, die an Cloud Logging gesendet wurden. Dazu haben Sie folgende Möglichkeiten:

  1. SQL-Abfragen erstellen.
  2. Die Ergebnisse der Abfragen über die BigQuery API in externe Systeme einlesen.

Gehen Sie dazu so vor:

  1. Erstellen Sie einen Log-Bucket in dem Projekt, das Sie für Service Health-Logs erstellt haben.

    gcloud logging buckets create BUCKET_ID  --location=LOCATION  --enable-analytics --async
    
  2. Log Analytics aktivieren

    gcloud logging buckets update BUCKET_ID --location=LOCATION --enable-analytics --async
    
  3. Neues BigQuery-Dataset erstellen, das mit dem Bucket mit Service Health-Logs verknüpft ist:

    gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION
    
  4. Aktivieren Sie die BigQuery API, falls Sie dies noch nicht getan haben.

    gcloud services enable bigquery.googleapis.com
    

Sie können jetzt komplexe SQL-Abfragen für BigQuery ausführen, z. B.:

Bedingung Abfrage
Logs mit einer bestimmten Relevanz für Vorfälle abrufen gcloud query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.LINK_ID._AllLogs` WHERE JSON_VALUE(json_payload["relevance"]) = "IMPACTED"'
Alle untergeordneten Log-Ereignisse für ein übergeordnetes Ereignis abrufen gcloud query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.LINK_ID._AllLogs` WHERE JSON_VALUE(json_payload["parentEvent"]) = "projects/PROJECT_ID/locations/global/events/EVENT_ID"'

Vergangene Ereignisse beibehalten

Bei Personalized Service Health werden Ereignisse nur für einen begrenzten Zeitraum aufbewahrt.

Wenn Sie einen Datensatz mit vergangenen Service Health-Ereignissen über einige Monate hinaus aufbewahren müssen, empfehlen wir, Service Health-Logs zu speichern.

  1. Service Health-Logs konfigurieren
  2. Logs in einem Log-Bucket speichern