Configure alertas através do Cloud Logging

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

O Personalized Service Health integra-se com os alertas de registo do Cloud Monitoring para que possa configurar e receber alertas. Pode criar notificações para as seguintes condições:

  • Quando são comunicados novos incidentes.
  • Quando os incidentes existentes são atualizados, por exemplo, quando o Google Cloud apoio técnico envia uma nova mensagem.
  • Quando são criados ou atualizados incidentes para Google Cloud produtos ou localizações específicas, como regiões.
  • Quando os detalhes específicos dos incidentes existentes são atualizados, como o estado e a relevância.

Uma vez que estas notificações usam alertas de registo, cada notificação está associada a um incidente de monitorização. Cada notificação inclui links para a página do incidente e um link direto para o painel de controlo do estado do serviço. Saiba mais sobre como investigar incidentes.

Depois de configurar um alerta, recebe uma notificação sempre que as condições da política de alertas forem cumpridas. Estas notificações estão sujeitas a limites de monitorização. Por exemplo, 20 alertas por política por dia por projeto.

As secções seguintes mostram como configurar uma política de alertas de registo e fornecem exemplos para cenários de alertas comuns. Os alertas de registo baseiam-se em canais de notificação, que suportam uma variedade de integrações, incluindo email, SMS, Pub/Sub, webhooks, Slack e PagerDuty.

Para encaminhar um alerta para um destino diferente das opções indicadas anteriormente, considere usar um webhook. Por exemplo, pode configurar um webhook para o ServiceNow. Para mais informações, consulte o artigo Configure o webhook em Google Cloud na documentação do ServiceNow.

Formatos de notificações de alertas

Os formatos de notificação de alertas variam consoante o canal de notificação.

Email

Se configurar o alerta para enviar um email, quando a condição de alerta for cumprida, é enviada uma mensagem com o endereço alerting-noreply@google.com para o endereço de email da sua escolha.

Slack

Se configurar a sua notificação personalizada para publicação no Slack, é apresentada uma mensagem da aplicação Cloud Monitoring no canal que selecionou quando o evento ocorre.

Configure uma política de alertas

Um alerta usa uma política de alertas, que descreve as circunstâncias em que quer receber alertas e como quer receber notificações.

Pode configurar políticas de alerta no painel de controlo do estado do serviço ou através da CLI do Google Cloud.

As políticas de alerta requerem um canal de notificação do Cloud Monitoring, que define para onde um alerta é enviado. Se não tiver um canal de notificação, pode criar um na Google Cloud consola ou através da API Monitoring.

No painel de controlo do Service Health

Consulte o início rápido.

Usar a CLI gcloud

Para configurar uma política de alerta através da CLI gcloud:

  1. Aceda ao ID do canal de notificação.

    a. Indique 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/. Estas entradas são os IDs dos canais de notificação.

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

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

    • ALERT_CONDITION define quando enviar um alerta.

      • Quando definir condições, use os valores encontrados em Google Cloud products e locations.
      • Exemplos de condições de alerta:

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

      Veja mais exemplos de condições de alerta.

    • NOTIFICATION_CHANNEL é o ID do canal de notificação, que obteve através do comando list no passo anterior. Exemplo: projects/PROJECT_ID/notificationChannels/885798905074.

    O fragmento seguinte mostra um exemplo do ficheiro 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"
    

Personalize o conteúdo do alerta

Pode definir os campos na notificação através dos seguintes campos no ficheiro JSON:

  • labelExtractors: as propriedades a incluir no cabeçalho da notificação. Para personalizar estas propriedades, consulte o guia LabelExtractors.
  • content: a formatação da notificação por email. Pode usar a substituição de variáveis de markdown, que lhe permite usar labelExtractors como variáveis. Para personalizar estas variáveis, consulte este guia.

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

Teste o seu alerta

Para testar o alerta, vai usar um registo de teste de exemplo através do Cloud Logging. O registo de teste mostra a lógica de alerta que configurou anteriormente.

Usar a Google Cloud consola

Faça o seguinte:

  1. Aceda à página de referência do método entries:write, que lhe permite escrever entradas de registo no Cloud Logging. É apresentada uma janela que lhe permite experimentar o método.
  2. No corpo do pedido, altere PROJECT_ID para o seu próprio projeto.
  3. Altere os campos jsonPayload no corpo do pedido, consoante a condição de alerta que está a testar. Também pode verificar o esquema event_log.proto e ajustar os valores no registo para testar cenários específicos nos quais tem 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. É apresentada uma janela onde o Explorador de APIs Google pede acesso à sua conta.

  5. Permitir o acesso ao Explorador de APIs Google. A janela com o corpo do pedido mostra a seguinte captura de ecrã, que indica o êxito.

    200 mensagens

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

    1. Na Google Cloud consola, aceda à página Cloud Monitoring > Incidentes.

      Aceda a Incidentes

    2. Verifique se recebeu um alerta no canal de notificação usado pela política de alertas.

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

Usar o gcloud

Também pode criar uma entrada de registo de teste chamando a API Cloud Logging através do comando gcloud.

  1. (Opcional) Verifique o seu projeto atual.

    gcloud config list
    
  2. Defina o projeto atual.

    gcloud_name config set project PROJECT_ID
    
  3. Escreva a entrada do registo 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, em seguida, verifique se o alerta foi acionado.