Esegui query, esporta e archivia i log di Service Health

Personalized Service Health registra gli eventi di integrità del servizio in Cloud Logging. Registra tutti gli aggiornamenti alla descrizione, alla pertinenza o allo stato dell'evento come log distinto.

Questo documento spiega come visualizzare, esportare e archiviare i log di Service Health.

Prima di iniziare

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

  1. Abilita l'API Service Health per il progetto per cui vuoi visualizzare, esportare o archiviare i log.
  2. Ottieni l'accesso ai log di Service Health.

Schema di 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 di Service Health:

  1. Vai alla Google Cloud console.
  2. Seleziona Operazioni > Logging > Esplora log.
  3. Seleziona un Google Cloud progetto nella parte superiore della pagina.
  4. Nel menu a discesa Nome log, seleziona Stato del servizio.

    Esplora log

    Nome log

    Viene visualizzato un elenco di log per type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog.

  5. 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 di Service Health

Puoi utilizzare Esplora log per eseguire query sui log di Service Health. Per creare la query, potresti aver bisogno dei seguenti riferimenti:

Esempi:

Condizione Query
Recuperare i log con una pertinenza specifica dell'incidente 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 di Service Health

Puoi esportare i log di Service Health in qualsiasi destinazione sink di Cloud Logging utilizzando la console Google Cloud , l'API o gcloud CLI. Per configurare un sink Cloud Logging, consulta Configura e gestisci i sink.

Puoi includere ed escludere i log di Service Health configurando i filtri di inclusione ed esclusione per il sink.

Quando imposti il prodotto o la località, utilizza i valori che trovi in Google Cloud products e locations.

Aggrega i log di integrità del servizio a livello di cartella

L'invio dei log correlati a Service Health da tutti i progetti in una cartella a un progetto creato per i log di Service Health consente di eseguire query più complesse.

Creerai un sink a livello di cartella per inviare tutti i log correlati a Service Health a un nuovo progetto nella cartella. Segui questi passaggi:

  1. Crea un nuovo progetto in una cartella. Questo progetto è allocato ai log di Service Health.

    gcloud projects create PROJECT_ID --folder FOLDER_ID
    
  2. Crea un sink aggregato a livello di cartella per gli altri progetti nella cartella.

    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 di LOG_FILTER su:

    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. Imposta le autorizzazioni per il service account sink.

    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. (Facoltativo) Se non vuoi inviare i log al sink _Default, crea un bucket di log per i log correlati a Service Health 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 di Service Health con BigQuery

Puoi eseguire query sui log inviati a Cloud Logging utilizzando BigQuery:

  1. Creazione di query SQL.
  2. Utilizzo dell'API BigQuery per inviare i risultati delle query a sistemi esterni.

Segui questi passaggi:

  1. Crea un bucket di log nel progetto che hai creato per i log di Service Health.

    gcloud logging buckets create BUCKET_ID  --location=LOCATION  --enable-analytics --async
    
  2. Abilita Analisi dei log.

    gcloud logging buckets update BUCKET_ID --location=LOCATION --enable-analytics --async
    
  3. Crea un nuovo set di dati BigQuery che si colleghi al bucket con i log di Service Health.

    gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION
    
  4. Se necessario, abilita l'API BigQuery.

    gcloud services enable bigquery.googleapis.com
    

Ora puoi eseguire query SQL complesse su BigQuery, ad esempio:

Condizione Query
Recuperare i log con una pertinenza specifica dell'incidente gcloud query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.LINK_ID._AllLogs` WHERE JSON_VALUE(json_payload["relevance"]) = "IMPACTED"'
Recuperare tutti gli eventi di 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 di Service Health per più di qualche mese, ti consigliamo di archiviare i log di Service Health.

  1. Configura i log di Service Health.
  2. Archivia i log in un bucket di log.