Esegui query, esporta e archivia i log di Service Health

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:

  1. Vai alla console Google Cloud.
  2. Seleziona Operazioni > Logging > Esplora log.
  3. Seleziona un progetto Google Cloud nella parte superiore della pagina.
  4. Nel menu a discesa Nome log, seleziona Integrità 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 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:

  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 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
    
  3. 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
    
  4. (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:

  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 relativi allo stato del servizio.

    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 relativi allo stato del servizio.

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

  1. Configura i log relativi allo stato del servizio.
  2. Archivia i log in un bucket di log.