Configurar alertas no Cloud Logging

Este documento explica como configurar, personalizar e testar alertas para eventos de integridade do serviço.

A integridade do serviço personalizada se integra aos alertas de registro do Cloud Monitoring para que você configure e receba alertas. É possível criar notificações para as seguintes condições:

  • Quando novos incidentes são informados.
  • Quando incidentes existentes são atualizados, como quando o suporte do Google Cloud envia uma nova mensagem.
  • Quando incidentes de produtos ou locais específicos do Google Cloud , como regiões, são criados ou atualizados.
  • Quando detalhes específicos de incidentes existentes são atualizados, como estado e relevância.

Como essas notificações usam alertas de registro, cada uma delas é associada a um incidente de monitoramento. Cada notificação inclui links para a página do incidente e um link direto para o painel "Service Health". Saiba mais sobre como investigar incidentes.

Depois de configurar um alerta, você vai receber uma notificação sempre que as condições da política de alertas forem atendidas. Essas notificações estão sujeitas a limites de monitoramento. Um exemplo é 20 alertas por política por dia por projeto.

As seções a seguir mostram como configurar uma política de alertas de registro e fornecem exemplos de cenários de alerta comuns. Os alertas de registro dependem de canais de notificação, que oferecem suporte a várias integrações, incluindo e-mail, SMS, Pub/Sub, webhooks, Slack e PagerDuty.

Para encaminhar um alerta para um destino diferente das opções listadas anteriormente, use um webhook. Por exemplo, é possível configurar um webhook para o ServiceNow. Para mais informações, consulte Configurar webhook no Google Cloud na documentação do ServiceNow.

Formatos de notificação de alerta

Os formatos de notificação de alerta variam de acordo com o canal de notificação.

E-mail

Se você configurar o alerta para enviar um e-mail, quando a condição de alerta for atendida, uma mensagem usando o endereço alerting-noreply@google.com será entregue ao endereço de e-mail escolhido.

Slack

Se você configurar a notificação personalizada para postar no Slack, uma mensagem do aplicativo Cloud Monitoring vai aparecer no canal selecionado quando o evento ocorrer.

Configurar uma política de alertas

Um alerta usa uma política de alertas, que descreve as circunstâncias em que você quer receber alertas e como quer ser notificado.

É possível configurar políticas de alerta no painel de Service Health ou usando a Google Cloud CLI.

As políticas de alertas exigem um canal de notificação do Cloud Monitoring, que define para onde um alerta é enviado. Se você não tiver um canal de notificação, crie um no console do Google Cloud ou usando a API Monitoring.

No painel de Service Health

Consulte o guia de início rápido.

Como usar a CLI gcloud

Para configurar uma política de alertas usando a CLI gcloud:

  1. Receba o ID do canal de notificação.

    a. Liste os IDs dos canais de notificação.

    gcloud config set project PROJECT_ID gcloud beta monitoring channels list
    

    b. Procure entradas com projects/PROJECT_ID/notificationChannels/. Essas entradas são os IDs dos canais de notificação.

  2. Crie um arquivo policy.json com o seguinte conteúdo:

    • ALERT_NAME aparece na notificação. Exemplo: "Incidente do Google Cloud SQL"

    • ALERT_CONDITION define quando alertar.

      • Ao definir condições, use os valores encontrados em Google Cloud produtos e locais.
      • Exemplos de condições de alerta:

        Condição de alerta Valor de ALERT_CONDITION
        Receber alertas para qualquer evento do Cloud SQL jsonPayload.impactedProductIds =~ \"hV87iK5DcEXKgWU2kDri\"
        Receber alertas de qualquer evento que ocorra na zona us-central1-a jsonPayload.impactedLocations =~ \"us-central1-a\"

      Confira mais exemplos de condições de alerta.

    • NOTIFICATION_CHANNEL é o ID do canal de notificação, que você buscou usando o comando de lista na etapa anterior. Por exemplo: projects/PROJECT_ID/notificationChannels/885798905074.

    O snippet a seguir mostra um exemplo do arquivo policy.json.

    {
      "displayName": "ALERT_NAME",
      "combiner": "OR",
      "conditions": [ {
        "displayName": "Log match condition",
        "conditionMatchedLog": {
          "filter": "ALERT_CONDITION",
         } } ],
      "notificationChannels": [ "NOTIFICATION_CHANNEL" ],
    }
    
  3. Crie a política do Cloud Monitoring.

    gcloud config set project PROJECT_ID
    gcloud alpha monitoring policies create --policy-from-file="policy.json"
    

Personalizar o conteúdo do alerta

É possível definir os campos dentro da notificação usando os seguintes campos no arquivo JSON:

  • labelExtractors: as propriedades a serem incluídas no cabeçalho da notificação. Para personalizar essas propriedades, consulte o guia LabelExtractors.
  • content: a formatação da notificação por e-mail. É possível usar a substituição de variáveis Markdown, que permite usar labelExtractors como variáveis. Para personalizar essas variáveis, consulte este guia.

Consulte exemplos de políticas e condições de alertas para saber como personalizar seus alertas.

Testar o alerta

Para testar o alerta, você vai usar um registro de teste de exemplo com o Cloud Logging. O registro de teste mostra a lógica de alerta que você configurou anteriormente.

Use o console do Google Cloud

Faça o seguinte:

  1. Acesse a página de referência do método entries:write, que permite gravar entradas de registro no Cloud Logging. Uma janela que permite testar o método aparece.
  2. No corpo da solicitação, mude PROJECT_ID para seu próprio projeto.
  3. Mude todos os campos jsonPayload no corpo da solicitação, dependendo da condição de alerta que você está testando. Você também pode verificar o esquema event_log.proto e ajustar os valores no registro para testar cenários específicos de seu interesse.

    {
      "entries": [
        {
          "logName": "projects/PROJECT_ID/logs/servicehealth.googleapis.com%2Factivity",
          "resource": {
            "type": "servicehealth.googleapis.com/Event",
            "labels": {
              "resource_container": "PROJECT_ID",
              "location": "global",
              "event_id": "U4AqrjwFQYi5fFBmyAX-Gg"
            }
          },
          "labels": {
            "servicehealth.googleapis.com/new_event": "true",
            "servicehealth.googleapis.com/updated_fields": "[]"
          },
          "jsonPayload": {
            "@type": "type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog",
            "category": "INCIDENT",
            "title": "EXAMPLE... NOT REAL INCIDENT",
            "description": "EXAMPLE FOR TESTING, NOT REAL INCIDENT. 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": "2022-07-15T22:26:40Z",
            "endTime": "2022-07-16T22:13:20Z",
            "impactedLocations": "['us-east1', 'australia-southeast2']",
            "impactedProducts": "['CloudSQL']",
            "impactedProductIds": "['hV87iK5DcEXKgWU2kDri']",
            "startTime": "2022-07-13T12:26:40Z",
            "nextUpdateTime": "2022-07-13T16:26:40Z",
            "state": "ACTIVE",
            "detailedState": "CONFIRMED",
            "relevance": "RELATED"
          }
        }
      ]
    }
    
  4. Clique em Executar. Uma janela em que o APIs Explorer do Google solicita acesso à sua conta é exibida.

  5. Permitir o acesso do Google APIs Explorer. A janela com o corpo da solicitação mostra a captura de tela abaixo, que indica sucesso.

    200 mensagens

  6. Aguarde alguns minutos e verifique se o alerta foi acionado.

    1. No console do Google Cloud, acesse Cloud Monitoring > Incidents e procure o alerta.
    2. Verifique se você recebeu um alerta no canal de notificação usado pela política de alertas.

Se você precisar testar o alerta novamente, aguarde pelo menos 5 minutos antes de fazer isso.

Como usar a gcloud

Também é possível criar uma entrada de registro de teste chamando a API Cloud Logging usando o comando gcloud.

  1. (Opcional) Verifique seu projeto atual.

    gcloud config list
    
  2. Defina o projeto atual.

    gcloud_name config set project PROJECT_ID
    
  3. Escreva a entrada do registro de teste.

    gcloud logging write --payload-type=json
    LOG_NAME
    '{ "category": "INCIDENT", "relevance": "IMPACTED", "@type": "type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog", "description": "This is a test log entry"}'
    
  4. Aguarde alguns minutos e verifique se o alerta foi acionado.