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

A integridade personalizada de serviço registra eventos de integridade do serviço no Cloud Logging. Ele registra todas as atualizações na descrição, relevância ou estado do evento como um registro distinto.

Este documento explica como visualizar, exportar e armazenar registros de integridade do serviço.

Antes de começar

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

É necessário ter acesso aos registros do Service Health.

Esquema de registro

Consulte a Referência do esquema de registro para saber quais campos podem ser definidos na consulta.

Conferir os registros de integridade de serviço

Para conferir os registros de integridade do serviço:

  1. Acesse o console do Google Cloud.
  2. Selecione Operações > Geração de registros > Análise de registros.
  3. Selecione um projeto do Google Cloud na parte superior da página.
  4. No menu suspenso Nome do registro, selecione Saúde do serviço.

    Explorador de registros

    Nome do registro

    Uma lista de registros de type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog será exibida.

  5. Abra uma entrada de registro para conferir 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

Use o Explorador de registros para consultar os registros de integridade do serviço. 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 de integridade de serviço

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

É possível incluir e excluir registros de integridade do serviço configurando os filtros de inclusão e exclusão para o coletor.

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

Agrupar registros de integridade de serviço no nível da pasta

O envio de registros relacionados à integridade do serviço de todos os projetos de uma pasta para um projeto criado para registros de integridade do serviço permite que você faça consultas mais complexas neles.

Você vai criar um sink no nível da pasta para enviar todos os registros relacionados à integridade do serviço para um novo projeto nessa pasta. Faça o seguinte:

  1. Crie um novo projeto em uma pasta. Este projeto é alocado nos 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 de LOG_FILTER como este:

    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 permissões para a 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 registro para registros relacionados à integridade do serviço 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 ao 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 de integridade do serviço com o BigQuery

Para consultar os registros enviados ao Cloud Logging usando o BigQuery, faça o seguinte:

  1. Criação de consultas SQL.
  2. Usar a API BigQuery para alimentar os resultados das consultas em sistemas externos.

Faça o seguinte:

  1. Crie um bucket de registro no projeto que você criou para os registros de integridade do serviço.

    gcloud logging buckets create BUCKET_ID  --location=LOCATION  --enable-analytics --async
    
  2. Ative a Análise de dados de registros.

    gcloud logging buckets update BUCKET_ID --location=LOCATION --enable-analytics --async
    
  3. Crie um novo conjunto de dados do BigQuery vinculado ao bucket com os registros de integridade do serviço.

    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 você pode 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

A integridade personalizada de serviço oferece retenção limitada de eventos.

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

  1. Configure os registros de integridade do serviço.
  2. Armazene registros em um bucket de registros.