Consultar, exportar e armazenar registros de integridade do serviço

O Personalized Service Health registra eventos de integridade do serviço no Cloud Logging. Ele registra todas as atualizações da descrição, relevância ou estado do evento como um registro distinto.

Este documento explica como visualizar, exportar e armazenar registros do Service Health.

Antes de começar

Verifique se o faturamento está ativado para seu Google Cloud projeto.

  1. Ative a API Service Health para o projeto em que você quer visualizar, exportar ou armazenar registros.
  2. Acesse os registros do Service Health.

Esquema de registro

Consulte a referência do esquema de registro para os campos que podem ser definidos na consulta.

Visualizar registros do Service Health

Para visualizar os registros do Service Health:

  1. Acesse o Google Cloud console do.
  2. Selecione Operações > Logging > Análise de registros.
  3. Selecione um Google Cloud projeto na parte de cima da página.
  4. No menu suspenso Nome do registro, selecione Service Health.

    Análise de registros

    Nome do registro

    Uma lista de registros para type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog aparece.

  5. Expanda uma entrada de registro para visualizar os detalhes do evento. O exemplo a seguir mostra um evento típico.

    "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",
    }
    

Consultar registros do Service Health

É possível usar a Análise de registros para consultar registros do Service Health. Talvez você precise das seguintes referências para criar sua consulta:

Exemplos:

Condição Consulta
Receber registros com uma relevância de incidente específica jsonPayload.relevance = ("IMPACTED" OR "RELATED")
Combinar vários filtros jsonPayload.impactedLocations : "us-central1" AND jsonPayload.impactedProducts : "Google Compute Engine" AND jsonPayload.state = "ACTIVE"

Exportar registros do Service Health

É possível exportar registros do Service Health para qualquer destino de coletor do Cloud Logging usando o Google Cloud console, a API ou a CLI gcloud. Para configurar um coletor do Cloud Logging, consulte Configurar e gerenciar coletores.

É possível incluir e excluir registros do Service Health configurando os filtros de inclusão e exclusão do coletor.

Ao definir o produto ou local, use os valores encontrados em Google Cloud produtos e locais.

Agregar registros do Service Health no nível da pasta

O envio de registros relacionados ao Service Health de todos os projetos em uma pasta para um projeto criado para registros do Service Health permite fazer consultas mais complexas.

Crie um coletor no nível da pasta para enviar todos os registros relacionados ao Service Health para um novo projeto nessa pasta. Faça o seguinte:

  1. Crie um novo projeto em uma pasta. Esse projeto é alocado para os registros do Service Health.

    gcloud projects create PROJECT_ID --folder FOLDER_ID
    
  2. Crie um coletor agregado no nível da pasta para os outros projetos.

    gcloud logging sinks create SINK_NAME \
    SINK_DESTINATION  --include-children \
    --folder=FOLDER_ID --log-filter="LOG_FILTER"
    

    Para receber registros de todos os incidentes relevantes, defina o valor LOG_FILTER como:

    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. Defina as permissões da conta de serviço do coletor.

    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. (Opcional) Se você não quiser enviar os registros para o coletor _Default, crie um bucket de registros para registros relacionados ao Service Health no projeto.

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

    Se você criou um bucket de registros, crie um coletor para enviar esses registros para o 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"
    

Consultar registros do Service Health com o BigQuery

É possível consultar registros enviados ao Cloud Logging usando o BigQuery das seguintes maneiras:

  1. Criando consultas SQL.
  2. Usando a API BigQuery para alimentar os resultados das consultas em sistemas externos.

Faça o seguinte:

  1. Crie um bucket de registros no projeto criado para registros do Service Health.

    gcloud logging buckets create BUCKET_ID  --location=LOCATION  --enable-analytics --async
    
  2. Ative o Observability Analytics.

    gcloud logging buckets update BUCKET_ID --location=LOCATION --enable-analytics --async
    
  3. Crie um novo conjunto de dados do BigQuery vinculado ao bucket com registros do Service Health.

    gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION
    
  4. Se necessário, ative a API BigQuery.

    gcloud services enable bigquery.googleapis.com
    

Agora é possível executar consultas SQL complexas no BigQuery, como:

Condição Consulta
Receber registros com uma relevância de incidente específica gcloud query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.LINK_ID._AllLogs` WHERE JSON_VALUE(json_payload["relevance"]) = "IMPACTED"'
Receber todos os eventos de registro filhos de um evento pai 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"'

Reter eventos anteriores

O Personalized Service Health oferece retenção limitada de eventos.

Se você precisar reter um registro de eventos de integridade de serviço anteriores por mais de alguns meses, recomendamos armazenar os registros do Service Health.

  1. Configure os registros do Service Health.
  2. Armazene os registros em um bucket de registros.