Personalized Service Health registra gli eventi relativi all'integrità del servizio in Cloud Logging. Registra tutti gli aggiornamenti alla descrizione, alla pertinenza o allo stato dell'evento come un log distinto.
Questo documento spiega come visualizzare, esportare e archiviare i log relativi all'integrità dei servizi.
Prima di iniziare
Make sure that billing is enabled for your Google Cloud project.
Devi avere accesso ai log di Service Health.
Schema dei log
Consulta il riferimento allo schema dei log per i campi che puoi impostare nella query.
Visualizzare i log di Service Health
Per visualizzare i log relativi allo stato del servizio:
- Vai alla console Google Cloud.
- Seleziona Operazioni > Logging > Esplora log.
- Seleziona un progetto Google Cloud nella parte superiore della pagina.
Nel menu a discesa Nome log, seleziona Integrità del servizio.
Viene visualizzato un elenco di log per
type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog
.Espandi una voce di log per visualizzare i dettagli dell'evento. L'esempio seguente mostra un evento tipico.
"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", }
Esegui query sui log dell'integrità del servizio
Puoi utilizzare Esplora log per eseguire query sui log relativi allo stato del servizio. Per creare la query, potresti avere bisogno dei seguenti riferimenti:
Esempi:
Condizione | Query |
Visualizzare i log con una pertinenza specifica per gli incidenti | jsonPayload.relevance = ("IMPACTED" OR "RELATED")
|
Combinare più filtri | jsonPayload.impactedLocations : "us-central1" AND jsonPayload.impactedProducts : "Google Compute Engine" AND jsonPayload.state = "ACTIVE"
|
Esportare i log dell'integrità del servizio
Puoi esportare i log relativi allo stato del servizio in qualsiasi destinazione di destinazione del sink Cloud Logging utilizzando la console, l'API o l'interfaccia a riga di comando gcloud di Google Cloud. Per configurare un sink Cloud Logging, consulta Configura e gestisci i sink.
Puoi includere ed escludere i log relativi allo stato del servizio configurando i filtri di inclusione ed esclusione per l'accumulo.
Quando imposti il prodotto o la località, utilizza i valori trovati in Google Cloud products e locations.
Aggregare i log relativi allo stato del servizio a livello di cartella
L'invio dei log relativi all'integrità del servizio da tutti i progetti di una cartella a un progetto creato per i log dell'integrità del servizio ti consente di eseguire query più complesse su di essi.
Creerai un sink a livello di cartella per inviare tutti i log relativi allo stato del servizio a un nuovo progetto all'interno di quella cartella. Segui questi passaggi:
Crea un nuovo progetto in una cartella. Questo progetto è allocato ai log di Service Health.
gcloud projects create PROJECT_ID --folder FOLDER_ID
Crea un sink aggregato a livello di cartella per gli altri progetti al suo interno.
gcloud logging sinks create SINK_NAME \ SINK_DESTINATION --include-children \ --folder=FOLDER_ID --log-filter="LOG_FILTER"
Per ottenere i log di tutti gli incidenti pertinenti, imposta il valore LOG_FILTER su quanto segue:
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
Imposta le autorizzazioni per l'account di servizio di destinazione.
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
(Facoltativo) Se non vuoi inviare i log al sink
_Default
, crea un bucket di log per i log relativi allo stato del servizio nel progetto.gcloud logging buckets create BUCKET_ID --location=LOCATION --enable-analytics --async
Se hai creato un bucket di log, crea un sink per inviare i log al bucket.
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"
Esegui query sui log relativi allo stato del servizio con BigQuery
Puoi eseguire query sui log inviati a Cloud Logging utilizzando BigQuery:
- Creazione di query SQL.
- Utilizzo dell'API BigQuery per inviare i risultati delle query a sistemi esterni.
Segui questi passaggi:
Crea un bucket di log nel progetto che hai creato per i log relativi allo stato del servizio.
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
Se necessario, abilita l'API BigQuery.
gcloud services enable bigquery.googleapis.com
Ora puoi eseguire query SQL complesse su BigQuery, ad esempio:
Condizione | Query |
Visualizzare i log con una pertinenza specifica per gli incidenti | gcloud query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.LINK_ID._AllLogs` WHERE JSON_VALUE(json_payload["relevance"]) = "IMPACTED"'
|
Ottenere tutti gli eventi dei log secondari per un evento principale | 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"'
|
Conservare gli eventi passati
Personalized Service Health offre una conservazione limitata degli eventi.
Se devi conservare un record degli eventi passati relativi allo stato del servizio per più di qualche mese, ti consigliamo di archiviare i log di Service Health.