Gerenciar canais de notificação

Este documento descreve como configurar canais de notificação usando o Console do Google Cloud. O Cloud Monitoring usa esses canais para notificar você ou a equipe de plantão quando uma política de alertas for disparada. Ao criar uma política de alertas, você seleciona quem é notificado fazendo seleções na lista de canais de notificação configurados. Por exemplo, é possível configurar alertas que monitoram instâncias do Compute Engine para publicar um tópico do Pub/Sub e notificar o canal do Slack para a equipe de plantão.

Para configurar canais de notificação usando a API Cloud Monitoring, consulte Como gerenciar canais de notificação.

Para informações sobre notificações de políticas de alertas, consulte as seguintes páginas:

Por padrão, uma política de alertas envia uma notificação somente quando um incidente é criado. Para receber uma notificação quando o incidente for aberto e quando ele for encerrado, edite a política de alertas e, na seção de notificações, selecione Notificar no fechamento de incidentes.

Antes de começar

Para configurar um canal de notificação, é preciso ter um dos papéis de gerenciamento de identidade e acesso a seguir no projeto de escopo de um escopo de métricas:

  • Editor do canal de notificação do Monitoring
  • Editor do Monitoring
  • Administrador do Monitoring
  • Editor do projeto
  • Proprietário do projeto

Para mais informações sobre esses papéis, consulte Controle de acesso.

Criar canal de notificação

Ao criar uma política de alertas, selecione qualquer canal de notificação configurado e adicione-o à sua política. É possível pré-configurar os canais de notificação ou configurá-los como parte do processo de criação de uma política de alertas. Para mais informações, consulte Como criar um canal sob demanda.

Para criar um canal de notificação usando o Console do Cloud, siga as instruções específicas do canal contidas na tabela a seguir:

E-mail

Para adicionar um canal de notificação por e-mail, faça o seguinte:

  1. No Console do Cloud, selecione Monitoramento

    Acessar Monitoring

  2. Clique em Alertas e em Editar canais de notificação.
  3. Na seção E-mail, clique em Adicionar novo.
  4. Preencha a caixa de diálogo e clique em Salvar.

É possível criar canais de e-mail durante a criação de uma política de alertas. Para mais informações, consulte Como criar um canal sob demanda.

Se um endereço de e-mail de grupo for utilizado como o canal de notificação de uma política de alertas, configure o grupo para aceitar e-mails de alerting-noreply@google.com.

Aplicativo para dispositivos móveis

Use o app para dispositivos móveis do Console do Cloud para monitorar os recursos do Console do Cloud e as informações do Monitoring de qualquer lugar. As notificações do App para dispositivos móveis do Console do Cloud são enviadas para um dispositivo ou um usuário específico:

Lista de canais de notificação do App Console do Cloud para dispositivos móveis.

  • Dispositivo indica que as notificações são enviadas apenas para o dispositivo específico que criou o canal de notificação. Para canais de notificação com escopo no dispositivo, o campo Nome de exibição inclui informações do dispositivo.
  • Usuário indica que as notificações são enviadas para todos os dispositivos que têm o app para dispositivos móveis do Console do Cloud instalado.

O Cloud Monitoring determina o escopo de notificação quando o canal é criado. Não é possível selecionar ou alterar o escopo.

Para configurar um canal de notificação do App Console do Cloud para dispositivos móveis em um projeto específico do Google Cloud, faça o seguinte:

  1. Instale o app para dispositivos móveis do Console do Cloud na sua app store do dispositivo móvel.
  2. Selecione um projeto para visualização no app Console do Cloud para dispositivos móveis.

    Depois de selecionar um projeto, ocorre uma troca de dados entre o aplicativo e o projeto do Google Cloud selecionado. Um canal de notificação é criado quando não existe e, após alguns minutos, esse canal é listado na seção Dispositivos móveis dos Canais de notificação.

Para adicionar seu dispositivo móvel como um canal de notificação para uma política de alertas, na seção Notifications de alerta, selecione Google Cloud Console (mobile) e escolha o dispositivo móvel na lista.

PagerDuty

A integração com o PagerDuty permite a sincronização unidirecional ou bidirecional com o Monitoring. Dependendo da configuração, os itens a seguir serão verdadeiros:

  • Se um incidente for criado no Monitoring, um incidente será aberto no PagerDuty.
  • Não é possível usar o PagerDuty para encerrar um incidente no Monitoring.

Se você usar a sincronização unidirecional e se resolver o incidente no PagerDuty, o estado do incidente no PagerDuty será dissociado do estado do incidente no Monitoring. Na verdade, se você resolver um incidente no PagerDuty, ele será permanentemente fechado no PagerDuty e não poderá ser reaberto.

Se você usar a sincronização bidirecional, o Monitoring controlará o estado mostrado pelo PagerDuty. Se você resolver o incidente no PagerDuty e se ele for aberto, o incidente será reaberto no PagerDuty.

Para configurar notificações do PagerDuty, faça o seguinte:

  1. No PagerDuty: crie uma conta no site do PagerDuty.
  2. Conclua a integração entre o PagerDuty e o Monitoring seguindo as etapas descritas no Guia de integração do Stackdriver do PagerDuty.

    As capturas de tela no guia de integração do Stackdriver listam o nome do produto como "Stackdriver" e estão desatualizadas. No entanto, as etapas listadas no guia são precisas.

  3. Adicione o canal de notificação do PagerDuty:
    1. No Console do Cloud, selecione Monitoring
      Acesse o Monitoring
    2. Clique em Alertas e em Editar canais de notificação.
    3. Na seção PagerDuty, clique em Adicionar novo.
    4. Insira o Nome de exibição. Esse nome precisa corresponder ao nome fornecido ao PagerDuty quando você adicionou a integração.
    5. Digite a Chave do serviço de integração gerada pelo PagerDuty no campo Chave de serviço.
    6. Clique em Save.
  4. (Opcional) Se você quiser configurar a sincronização bidirecional, faça o seguinte:
    1. Abra o PagerDuty.
    2. Selecione Configuração, Serviços e o nome do serviço que você inseriu ao configurar a integração.
    3. Clique em Editar configurações, selecione Criar incidentes e desmarque Criar alertas e incidentes.

Ao criar uma política de alertas, selecione PagerDuty na seção Notifications e escolha a configuração do PagerDuty.

O pacote JSON para PagerDuty tem o seguinte formato:

 {
     "description": A string of various fields in the incident,
     "details": JSON payload with schema version 1.2.
 }

Para ver um exemplo e o esquema para o campo details, expanda as seguintes seções.

Política de suspensão de uso

O esquema de payload está sujeito à política de suspensão de uso do Google Cloud descrita na Seção 1.4(d) dos Termos de Serviço do Google Cloud Platform. O esquema não controla os formatos dos valores de campo gerados, e esses formatos podem mudar sem aviso prévio. Por exemplo, incident.summary, incident.documentation.content e incident.url devem incluir dados pertencentes aos campos deles, mas o esquema não tem restrições para garantir uma análise precisa desses campos. É possível consumir o valor como um todo e esperar que ele obedeça à política de suspensão de uso, mas não dependa da análise dos campos gerados.

SMS

Para configurar notificações por SMS, faça o seguinte:

  1. No Console do Cloud, selecione Monitoramento

    Acessar Monitoring

  2. Clique em Alertas e em Editar canais de notificação.
  3. Na seção SMS, clique em Adicionar novo.
  4. Preencha a caixa de diálogo e clique em Salvar.

Ao configurar sua política de alertas, selecione o tipo de notificação SMS e escolha um número de telefone confirmado na lista.

Slack

Com a integração entre Monitoring e Slack, é possível publicar as políticas de alertas em um canal do Slack quando um novo incidente é criado. Para configurar as notificações do Slack, faça o seguinte:

  1. No Slack: crie um espaço de trabalho e um canal no site do Slack. Grave o URL do canal.

  2. No Console do Cloud, selecione Monitoring:

    Acessar Monitoring

  3. Clique em Alertas e em Editar canais de notificação.

  4. Na seção Slack, clique em Adicionar novo para abrir a página de login do Slack:

    1. Selecione o espaço de trabalho do Slack.
    2. Clique em Permitir para ativar o acesso do Cloud Monitoring ao seu espaço de trabalho do Slack. Essa ação levará você de volta à página de configuração do Monitoring do canal de notificação.
    3. Digite o nome do canal do Slack que você quer usar para as notificações.
    4. Insira um nome de exibição para o canal de notificação do Slack.
    5. (Opcional) Para testar a conexão entre o Cloud Monitoring e o espaço de trabalho do Slack, clique em Send test notification. Se a conexão for bem-sucedida, você verá uma mensagem This is a test alert notification... no canal de notificação do Slack especificado. Verifique o canal de notificação para confirmar o recebimento.
  5. Se o canal do Slack que você quer usar para notificações for particular, será necessário convidar manualmente o aplicativo do Monitoring para o canal:

    1. Abra o Slack.
    2. Acesse o canal especificado como seu canal de notificação do Monitoring.

    3. Convide o app Monitoring para o canal. Para isso, insira e envie a seguinte mensagem no canal:

      /invite @Google Cloud Monitoring

      Convide o app Monitoring para o canal particular especificado ao criar o canal de notificação no Monitoring. Convidar o app Monitoring para canais públicos é opcional.

    Quando você criar uma política de alertas, selecione Slack na seção Notifications e escolha a configuração do Slack.

Webhooks

Para configurar as notificações de Webhooks, faça o seguinte:

  1. O gerenciador de webhooks: identifique o URL do endpoint público para receber os dados do webhook do Monitoring.
  2. No Console do Cloud, selecione Monitoramento

    Acessar Monitoring

  3. Clique em Alertas e em Editar canais de notificação.
  4. Na seção Webhook, clique em Adicionar novo.
  5. Preencha a caixa de diálogo.
  6. Clique em Testar conexão para enviar um payload de teste ao endpoint do webhook. Acesse o endpoint de recebimento para verificar a entrega.
  7. Clique em Save.

Ao criar uma política de alertas, selecione Webhook na seção Notifications e escolha a configuração de webhook.

Autenticação básica

Além da solicitação de webhook enviada pelo Cloud Monitoring, a autenticação básica utiliza a especificação HTTP para o nome de usuário e a senha. O Cloud Monitoring exige que o servidor retorne uma resposta 401 com o cabeçalho WWW-Authenticate correto. Para mais informações sobre autenticação básica, consulte:

Autenticação de token

O token do Authentication requer um parâmetro de string de consulta no URL do endpoint e uma chave que o servidor espera que seja secreta entre ele e o Monitoring. Veja a seguir um URL de exemplo que inclui um token:

https://www.myserver.com/stackdriver-hook?auth_token=1234-abcd

Se o Monitoring postar um incidente no URL do endpoint, o servidor poderá validar o token anexado. Esse método de autenticação é mais eficaz quando usado com SSL/TLS para criptografar a solicitação HTTP de maneira que os espionadores não aprendam o token.

Para um exemplo de servidor em Python, consulte este servidor de exemplo.

Política de suspensão de uso

O esquema de payload está sujeito à política de suspensão de uso do Google Cloud descrita na Seção 1.4(d) dos Termos de Serviço do Google Cloud Platform. O esquema não controla os formatos dos valores de campo gerados, e esses formatos podem mudar sem aviso prévio. Por exemplo, incident.summary, incident.documentation.content e incident.url devem incluir dados pertencentes aos campos deles, mas o esquema não tem restrições para garantir uma análise precisa desses campos. É possível consumir o valor como um todo e esperar que ele obedeça à política de suspensão de uso, mas não dependa da análise dos campos gerados.

Pub/Sub

Nesta seção, descrevemos como configurar os canais de notificação do Pub/Sub. Para redundância, recomendamos que você crie vários canais de notificação. É recomendável parear o Pub/Sub com o app para dispositivos móveis do Console do Cloud, o PagerDuty, os webhooks ou o Slack, porque o Pub/Sub usa um mecanismo de entrega diferente.

Para configurar um canal de notificação do Pub/Sub:

  1. Ativar a API Pub/Sub e criar um tópico
  2. Configurar o canal de notificação de um tópico
  3. Autorizar uma conta de serviço
  4. Definir o canal de notificação em uma política de alertas

Para receber as notificações de alerta, você também precisa criar uma assinatura do Pub/Sub. Quando a assinatura estiver em um projeto diferente do tópico, crie uma conta de serviço no projeto do assinante e conceda a ela o papel de roles/pubsub.subscriber para o tópico.

Antes de começar

Quando você adiciona o primeiro canal de notificação a um projeto do Google Cloud, o Cloud Monitoring cria uma conta de serviço para esse projeto. Ele também concede o papel Identity and Access Management Agente de serviço de notificações do Monitoring à conta de serviço. Essa conta de serviço permite que o Monitoring envie notificações para canais de notificação baseados no Pub/Sub neste projeto.

A conta de serviço tem o seguinte formato:

service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com

O nome da conta de serviço de notificações inclui um número exclusivo do projeto do Cloud. É possível encontrar o nome, o ID e o número do projeto no painel do projeto no Console do Cloud ou recuperá-los com o seguinte comando:

gcloud projects describe PROJECT_ID --format="value(project_number)"

É possível ver e editar a conta de serviço usando o Console do Google Cloud ou a CLI do Google Cloud.

Ativar a API Pub/Sub e criar um tópico

  1. Ative a API Pub/Sub para seu projeto do Cloud:
    Ativar a API Pub/Sub

    1. Selecione o projeto do Cloud em que você planeja criar o tópico do Pub/Sub.
    2. Clique em Ativar quando essa opção for exibida. Nenhuma ação é necessária quando a API ativada é exibida.
  2. Crie um tópico do Pub/Sub. Para informações sobre como criar um tópico, consulte Como criar um tópico. Por exemplo, para criar um tópico chamado notificationTopic usando a CLI do Google Cloud, execute o seguinte comando:

    gcloud pubsub topics create notificationTopic

Em seguida, configure seus canais de notificação do Pub/Sub.

Configurar notificações de um tema

Para criar um canal de notificação do Pub/Sub, use a API Monitoring, a CLI do Google Cloud ou o Console do Cloud. Depois de criar o canal de notificação, autorize a conta de serviço de notificações a publicar cada tópico que você estiver usando como um canal de notificação.

Para informações sobre como usar a API Monitoring ou a CLI do Google Cloud para criar o canal de notificação, consulte Como criar canais.

Para usar o Console do Cloud para criar o canal de notificação, faça o seguinte:

  1. No Console do Cloud, selecione Monitoramento

    Acessar Monitoring

  2. Selecione o projeto do Cloud que contém o tópico do Pub/Sub que você criou.
  3. Clique em Alertas e em Editar canais de notificação.
  4. Na seção Pub/Sub, clique em Adicionar novo.

    A caixa de diálogo Criado Pub/Sub Channel exibe o nome da conta de serviço que o Monitoring criou.

  5. Autorize a conta de serviço. Sua conta de serviço pode publicar todos os tópicos ou tópicos específicos:

    • Para publicar todos os tópicos, selecione Gerenciar papéis e adicione o papel Editor do Pub/Sub.

      Depois de concluir essas etapas que configuram o canal de notificação, pule a próxima seção, chamada Autorizar conta de serviço, e prossiga para Definir o canal de notificação em uma política de alertas.

    • Para publicar tópicos específicos, vá para a próxima etapa e autorize a conta de serviço a publicar tópicos específicos depois de concluir a configuração do canal de notificação. Para ver as instruções sobre como autorizar a conta de serviço, consulte Autorizar conta de serviço.
  6. Insira um nome de exibição para o canal e o nome do tópico do Pub/Sub.
  7. (Opcional) Para verificar se o canal está configurado corretamente, clique em Send test notification.
  8. Selecione Adicionar canal.

Em seguida, autorize a conta de serviço.

Autorizar conta de serviço

A autorização permite que a conta de serviço das notificações publique cada tópico do Pub/Sub que você está usando como um canal de notificação. Esta seção descreve como fazer o seguinte:

  • Autorize uma conta de serviço para um tópico específico.
  • Autorize uma conta de serviço para todos os tópicos.

Autorizar uma conta de serviço para um tópico específico

É possível autorizar uma conta de serviço a publicar um tópico específico usando o Console do Google Cloud e a CLI do Google Cloud. Nesta seção, descrevemos as duas abordagens.

Para autorizar sua conta de serviço para um tópico específico usando o Console do Google Cloud, faça o seguinte:

  1. Acesse a página Tópicos do Pub/Sub:
    Acesse Tópicos
  2. Selecione o tópico.
  3. Na guia Permissões, selecione Adicionar participante.
  4. No campo Novo participante, insira o nome da conta de serviço das notificações. A conta de serviço tem a seguinte convenção de nomenclatura:
    service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
  5. Selecione o papel Editor do Pub/Sub e selecione Salvar.

Para autorizar sua conta de serviço para um tópico específico usando a CLI do Google Cloud, conceda o papel pubsub.publisher do IAM para o tópico à conta de serviço. Por exemplo, o comando a seguir configura o papel do IAM para o tópico notificationTopic:

gcloud pubsub topics add-iam-policy-binding \
projects/PROJECT_NUMBER/topics/notificationTopic --role=roles/pubsub.publisher \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
 

Uma resposta a uma execução bem-sucedida do comando add-iam-policy-binding é semelhante a esta:

 Updated IAM policy for topic [notificationTopic].
 bindings:
 ‐ members:
    ‐ serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
    role: roles/pubsub.publisher
 etag: BwWcDOIw1Pc=
 version: 1
 

Para mais informações, consulte a página de referência de pubsub topics add-iam-policy-binding.

Autorizar uma conta de serviço para todos os tópicos

Para autorizar a conta de serviço em todos os tópicos, faça o seguinte:

  1. Acesse a página do IAM:
    Acessar o IAM
  2. Selecione Incluir concessões de papéis fornecidas pelo Google, conforme a imagem a seguir:
    Selecione a opção "Incluir concessões de papel fornecidas pelo Google".
  3. Procure a conta de serviço com o seguinte formato:
    service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com

    Atualize a página quando a conta de serviço não estiver listada.

  4. Selecione Editar na conta de serviço de notificações, selecione Adicionar outro papel e, em seguida, adicione o papel Editor do Pub/Sub.

Em seguida, defina o canal de notificação em uma política de alertas.

Definir o canal de notificação em uma política de alertas

Para usar um canal de notificação do Pub/Sub em uma política de alertas, selecione Pub/Sub como o tipo de canal e, em seguida, selecione o tópico.

Exemplo de esquema

Para ver um exemplo de pacote JSON e o esquema, expanda as seções a seguir.

Política de suspensão de uso

O esquema de payload está sujeito à política de suspensão de uso do Google Cloud descrita na Seção 1.4(d) dos Termos de Serviço do Google Cloud Platform. O esquema não controla os formatos dos valores de campo gerados, e esses formatos podem mudar sem aviso prévio. Por exemplo, incident.summary, incident.documentation.content e incident.url devem incluir dados pertencentes aos campos deles, mas o esquema não tem restrições para garantir uma análise precisa desses campos. É possível consumir o valor como um todo e esperar que ele obedeça à política de suspensão de uso, mas não dependa da análise dos campos gerados.

Criar um canal sob demanda

Ao adicionar um canal de notificação a uma política de alertas, é necessário selecionar um canal em uma lista. Para atualizar a lista de opções ao criar uma política de alertas, use o seguinte processo:

  1. Na caixa de diálogo de notificação, clique em Gerenciar canais de notificação. Você será direcionado para a janela Canais de notificação em uma nova guia do navegador.
  2. Para adicionar um novo canal de notificação, localize o tipo de canal, clique em Adicionar novo e siga as instruções específicas do canal contidas na tabela anterior.
  3. Retorne à guia original e, na caixa de diálogo de notificação, clique em Atualizar.

    Caixa de diálogo de notificação que exibe os botões de atualização e gerenciamento de canais.

  4. Selecione o canal de notificação na lista atualizada.

Editar e excluir canais de notificação

Para editar ou excluir um canal de notificação usando o Console do Cloud, faça o seguinte:

  1. No Console do Cloud, selecione Monitoramento ou clique no botão a seguir:

    Acessar Monitoring

  2. No painel de navegação do Monitoring, clique em Alerta.

  3. Clique em Editar canais de notificação.

    O painel Canais de notificação contém uma seção para cada tipo de canal de notificação. Cada seção lista todas as configurações desse tipo:

    • Para modificar uma entrada, clique em Editareditar. Clique em Salvar depois que suas alterações forem concluídas.
    • Para excluir uma entrada, clique em Excluir. Clique em Excluir na caixa de diálogo de confirmação.