Service Health-Logs abfragen, exportieren und speichern

Personalized Service Health protokolliert Ereignisse zur Dienstgesundheit in Cloud Logging. Alle Aktualisierungen der Ereignisbeschreibung, -relevanz oder des Ereignisstatus werden als separate Logs erfasst.

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

Hinweis

Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.

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

Log schema

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

Service Health-Logs ansehen

So rufen Sie Service Health-Logs auf:

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

  2. Wählen Sie oben auf der Seite ein Google Cloud Projekt aus.

  3. 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.

  4. 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 Service Health-Logs mit dem Log-Explorer abfragen. 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 über die Google Cloud Console, die API oder die gcloud CLI zu einem beliebigen 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 Einschluss- und Ausschlussfilter für die Senke konfigurieren.

Verwenden Sie beim Festlegen des Produkts oder Standorts die Werte unter Google Cloud Produkte und Standorte.

Service Health-Logs auf Ordnerebene aggregieren

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

Sie erstellen eine Senke auf Ordnerebene, um alle Service Health-bezogenen Logs an ein neues Projekt unter diesem Ordner zu senden. Gehen Sie dazu so vor:

  1. Erstellen Sie ein neues Projekt unter einem Ordner. 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 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 Senke 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 Logs nicht an die Senke _Default senden möchten, erstellen Sie im Projekt einen Log-Bucket für Service Health-bezogene Logs.

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

    Wenn Sie einen Log-Bucket erstellt haben, erstellen Sie eine Senke, um diese 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 Logs, die an Cloud Logging gesendet wurden, mit BigQuery abfragen. Dazu haben Sie folgende Möglichkeiten:

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

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. Aktivieren Sie Observability Analytics.

    gcloud logging buckets update BUCKET_ID --location=LOCATION --enable-analytics --async
    
  3. Erstellen Sie ein neues BigQuery-Dataset, 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 bei Bedarf die BigQuery API.

    gcloud services enable bigquery.googleapis.com
    

Jetzt können Sie 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 Logereignisse 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"'

Frühere Ereignisse aufbewahren

Personalized Service Health bietet eine begrenzte Aufbewahrungsdauer für Ereignisse.

Wenn Sie Aufzeichnungen zu früheren Ereignissen zur Dienstgesundheit über einige Monate hinaus aufbewahren müssen, empfehlen wir, Service Health-Logs zu speichern.

  1. Konfigurieren Sie Service Health-Logs.
  2. Speichern Sie Logs in einem Log-Bucket.