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:
- Öffnen Sie die Google Cloud Console.
- Wählen Sie Vorgänge > Logging > Log-Explorer aus.
- Wählen Sie oben auf der Seite ein Google Cloud-Projekt aus.
Wählen Sie im Drop-down-Menü Logname die Option Dienststatus aus.
Eine Liste der Protokolle für
type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog
wird angezeigt.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:
Erstellen Sie ein neues Projekt in einem Ordner. Dieses Projekt wird den Service Health-Logs zugewiesen.
gcloud projects create PROJECT_ID --folder FOLDER_ID
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
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
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:
- SQL-Abfragen erstellen
- Die BigQuery API verwenden, um die Ergebnisse der Abfragen an externe Systeme weiterzuleiten.
Gehen Sie dazu so vor:
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
-
gcloud logging buckets update BUCKET_ID --location=LOCATION --enable-analytics --async
-
gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION
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.