Service Health-Logs abfragen, exportieren und speichern

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

In diesem Dokument wird beschrieben, wie Sie Logs zur Dienstbereitschaft aufrufen, exportieren und speichern.

Hinweise

Make sure that billing is enabled for your Google Cloud project.

Sie benötigen Zugriff auf Service Health-Logs.

Protokollschema

In der Referenz zum Protokollschema finden Sie die Felder, die Sie in Ihrer Abfrage festlegen können.

Service Health-Logs ansehen

So rufen Sie Service Health-Logs auf:

  1. Öffnen Sie die Google Cloud Console.
  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 Dienststatus aus.

    Log-Explorer

    Logname

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

  5. Maximieren Sie einen Logeintrag, um die Ereignisdetails aufzurufen. 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 mit dem Log-Explorer Logs zum Dienststatus abfragen. Möglicherweise benötigen Sie die folgenden Verweise, um Ihre Abfrage zu erstellen:

Beispiele:

Bedingung Abfrage
Protokolle mit einer bestimmten Relevanz für den Vorfall 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 Logs zur Dienstbereitschaft mithilfe der Google Cloud Console, der API oder der gcloud CLI in ein beliebiges Cloud Logging-Senkeziel exportieren. Informationen zum Einrichten einer Cloud Logging-Senke finden Sie unter Senken konfigurieren und verwalten.

Sie können Logs zur Dienstgesundheit ein- und ausschließen, indem Sie die Einschluss- 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 Logs zum Dienststatus aus allen Projekten in einem Ordner an ein Projekt senden, das für Logs zum Dienststatus erstellt wurde, können Sie komplexere Abfragen darauf ausführen.

Sie erstellen eine Senke auf Ordnerebene, um alle Logs zur Dienstbereitschaft an ein neues Projekt in diesem Ordner zu senden. Gehen Sie dazu so vor:

  1. Erstellen Sie ein neues Projekt in einem Ordner. Dieses Projekt wird 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 Protokolle für alle relevanten Vorfälle abrufen möchten, legen Sie den Wert für LOG_FILTER so 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. Legen Sie Berechtigungen für das Dienstkonto der Logsenke fest.

    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 _Default-Senke senden möchten, erstellen Sie einen Protokoll-Bucket für Protokolle zur Dienstgesundheit 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 diese Protokolle 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"
    

Logs zur Dienstbereitschaft mit BigQuery abfragen

So können Sie Logs, die an Cloud Logging gesendet wurden, mit BigQuery abfragen:

  1. SQL-Abfragen erstellen
  2. Die BigQuery API verwenden, um die Ergebnisse der Abfragen an externe Systeme weiterzuleiten.

Gehen Sie dazu so vor:

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

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

    gcloud logging buckets update BUCKET_ID --location=LOCATION --enable-analytics --async
    
  3. Erstellen Sie ein neues BigQuery-Dataset, das mit dem Bucket mit den Protokollen zur Dienstbereitschaft verknüpft ist.

    gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION
    
  4. Aktivieren Sie gegebenenfalls die BigQuery API.

    gcloud services enable bigquery.googleapis.com
    

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

Bedingung Abfrage
Protokolle mit einer bestimmten Relevanz für den Vorfall abrufen gcloud query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.LINK_ID._AllLogs` WHERE JSON_VALUE(json_payload["relevance"]) = "IMPACTED"'
Alle untergeordneten Protokollereignisse 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 aufbewahren

In Personalized Service Health werden Ereignisse nur begrenzt aufbewahrt.

Wenn Sie einen Datensatz früherer Service Health-Ereignisse über einen Zeitraum von mehreren Monaten aufbewahren möchten, empfehlen wir, Service Health-Logs zu speichern.

  1. Logs zur Dienstbereitschaft konfigurieren
  2. Logs in einem Log-Bucket speichern