Este documento descreve como criar e gerenciar canais de notificação usando bibliotecas de cliente ou a Google Cloud CLI, que invocam a API Cloud Monitoring. O Cloud Monitoring usa canais de notificação para avisar você ou sua equipe de plantão quando a condição de uma política de alertas é atendida. Existem diversos tipos de canal disponíveis. Cada tipo é definido em um descritor do canal de notificação. Um canal de um determinado tipo é uma instância do descritor desse tipo. Entre as políticas de alertas estão referências para os canais de notificação a serem usadas como caminhos de notificação.
Um canal de notificação precisa existir para ser usado em uma política de alertas. Os descritores do canal de notificação são fornecidos, mas você precisa criar os canais para que possam ser usados.
Para configurar canais de notificação usando o console do Google Cloud , consulte Criar e gerenciar canais de notificação.
As amostras de código usadas neste documento são extraídas do exemplo da API alerting-policy, descrito em Exemplo: backup e restauração.
Sobre a API
O recurso NotificationChannel aceita operações que permitem
gerenciar seus canais de notificação. Ele também oferece suporte a operações relacionadas ao gerenciamento do campo verificationStatus de um canal:
- Envio de um código de verificação
- Geração de um código para copiar o status da verificação de um canal verificado para outros canais idênticos no mesmo projeto ou em um novo
- Verificação do canal usando o código criado pelas duas operações anteriores
Para mais informações, consulte os documentos de referência do notificationChannels.
Antes de começar
-
Para receber as permissões necessárias para visualizar e configurar canais de notificação usando a API Cloud Monitoring, peça ao administrador para conceder a você o papel Editor de NotificationChannel do Monitoring (
roles/monitoring.notificationChannelEditor) do IAM no seu projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Para mais informações sobre os papéis do Cloud Monitoring, consulte Controlar o acesso com o Identity and Access Management.
-
Selecione a guia para como planeja usar as amostras nesta página:
gcloud
No console do Google Cloud , ative o Cloud Shell.
Na parte de baixo do console Google Cloud , uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
C#
Para usar os exemplos do .NET nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud .
Go
Para usar os exemplos de Go nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud .
Java
Para usar os exemplos do Java nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud .
Node.js
Para usar os exemplos do Node.js nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud .
PHP
Para usar os exemplos de PHP nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud .
Python
Para usar os exemplos do Python nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud .
-
Se você pretende usar a Google Cloud CLI, configure o projeto padrão:
gcloud config set project PROJECT_IDAntes de executar o comando anterior, substitua o seguinte:
- PROJECT_ID: o identificador do projeto. Para configurações do App Hub, selecione o projeto host ou de gerenciamento do App Hub.
Listar os tipos de canais de notificação
O Monitoring fornece vários tipos de canais de notificação integrados. Cada um desses tipos é descrito em NotificationChannelDescriptor.
Esses descritores têm um campo type, e o valor desse campo funciona como um identificador para ele durante a criação de instâncias desse tipo de canal. Para recuperar uma lista de tipos de canais que podem ser criados com a API Cloud Monitoring ou a Google Cloud CLI, insira o seguinte comando:
$ gcloud beta monitoring channel-descriptors list --format='value(type)'
campfire
email
google_chat
hipchat
pagerduty
pubsub
slack
sms
webhook_basicauth
webhook_tokenauth
Para saber mais sobre canais de notificação, consulte Criar e gerenciar canais de notificação.
Se o canal de notificação preferido não for compatível, crie um pipeline que envie as notificações para o Pub/Sub. Para um exemplo em Python que usa o Flask, consulte Como criar notificações personalizadas com o Cloud Monitoring e o Cloud Run. Para outros exemplos, consulte o repositório do Git cloud-alerting-notification-forwarding.
Para recuperar todos os descritores de canal em um projeto Google Cloud , use o método
notificationChannelDescriptors.list.
Os descritores recuperados são somente leitura.
Se você estiver procurando por um descritor específico e souber o nome dele, poderá usar o método notificationChannelDescriptors.get para recuperar apenas esse descritor de canal. O nome de um descritor de canal tem o formato projects/[PROJECT_ID]/notificationChannelDescriptors/[CHANNEL_TYPE]
[CHANNEL_TYPE] precisa ser um dos tipos listados acima. Exemplo:
projects/[PROJECT_ID]/notificationChannelDescriptors/email
gcloud
Para listar todos os descritores do canal de notificação em um projeto Google Cloud , use o comando gcloud beta monitoring channel-descriptors list:
gcloud beta monitoring channel-descriptors list
Se bem-sucedido, o comando list fornecerá uma listagem de todos os descritores de canal no projeto especificado. Por exemplo, o descritor de canal email aparece na lista da seguinte forma:
---
description: A channel that sends notifications via email.
displayName: Email
labels:
- description: An address to send email.
key: email_address
name: projects/[PROJECT_ID]/notificationChannelDescriptors/email
type: email
---
Todos os descritores de canais incluem estes campos:
name: o nome de recurso totalmente qualificado do descritor de canaltype: a parte do nome que indica o tipo de canaldisplayName: uma descrição do campotype, para fins de exibiçãodescription: uma breve descrição do canallabels: um conjunto de campos específicos para um tipo de canal. Cada tipo de canal tem seu próprio conjunto de rótulos.
Quando um canal é criado, ele também recebe um campo enabled, com o valor true por padrão.
Para listar um descritor de único canal, use gcloud beta monitoring
channel-descriptors describe, em vez disso, e especifique o nome do descritor de canal. Você não precisa especificar o nome totalmente qualificado. Por exemplo, ambos os comandos retornam a listagem acima:
gcloud beta monitoring channel-descriptors describe email
gcloud beta monitoring channel-descriptors describe projects/[PROJECT_ID]/notificationChannelDescriptors/email
Consulte as referências gcloud beta monitoring channel-descriptors
list e describe para mais informações. O comando describe corresponde ao método notificationChannelDescriptors.get na API.
Criar um canal de notificação
É possível criar canais de notificação para seus projetos do Google Cloud com base em arquivos JSON ou YAML usando a Google Cloud CLI, e também é possível criá-los de maneira programática.
Para criar um canal de notificação, você precisa fornecer valores para os campos no descritor. A maioria deles, como type, são comuns a todos os descritores de canal de notificação; veja notificationChannelDescriptors.
Cada descritor também tem um conjunto de rótulos, e esse conjunto varia entre os descritores. Para ver o conjunto de rótulos de um descritor específico, recupere o descritor usando o comando gcloud beta monitoring channel-descriptors describe descrito em Listar os tipos de canais de notificação.
Por exemplo, a recuperação do descritor de canal email mostra um único rótulo:
labels:
- description: An address to send email.
key: email_address
O descritor de canal pubsub também contém um único rótulo, que identifica o tópico do Pub/Sub. No entanto, eles podem ter vários rótulos. Por exemplo, o descritor de canal slack tem dois rótulos:
labels:
- description: A permanent authentication token provided by Slack. This field is obfuscated by returning only a few characters of the key when fetched.
key: auth_token
- description: The Slack channel to which to post notifications.
key: channel_name
A recuperação do descritor de canal webhook_basicauth mostra diversos rótulos:
labels:
- description: The password. The field is obfuscated when the channel is fetched.
key: password
- description: The public URL to which to publish the webhook.
key: url
- description: The username.
key: username
Se você criar um novo canal de forma programática ou a partir da linha de comando, o valor de type em sua especificação deve corresponder ao campo type no descritor de canal de notificação correspondente. Todas as chaves de rótulo obrigatórias também precisam corresponder àquelas no descritor de canais.
Alguns rótulos correspondem às credenciais usadas na autenticação com o provedor. Durante a criação de um canal, os valores desses rótulos precisam ser recebidos do provedor. O recebimento de uma credencial pode envolver o uso de uma página de geração da chave de API no site do provedor ou a conclusão de um fluxo de login do OAuth com o provedor. As especificidades de como receber essa credencial dependem do provedor específico.
Por exemplo, isto mostra a especificação de um novo canal de notificação pubsub
em JSON:
{
"type": "pubsub",
"displayName": "Notifications",
"description": "Pub/Sub channel for notifications",
"labels": {
"topic": "projects/[PROJECT_ID]/topics/notificationTopic"
},
}
O valor type (pubsub) e a chave de rótulo única (topic) correspondem aos campos type e labels.key no descritor de canais correspondente.
Os canais são ativados por padrão. Se você quiser criar um canal inativo, inclua o campo enabled com o valor false.
Nos exemplos a seguir, veja a criação de canais de notificação.
gcloud
Para criar um canal de notificação em um projeto Google Cloud , use o comando gcloud beta monitoring
channels create. Para carregar o canal a partir de um arquivo, use a flag --channel-content-from-file para especificar o arquivo.
O exemplo a seguir cria um novo canal do Pub/Sub a partir do arquivo pubsub-channel.json:
gcloud beta monitoring channels create --channel-content-from-file="pubsub-channel.json"
Se bem-sucedido, este comando retornará o nome do novo canal. Por exemplo:
Created notification channel [projects/[PROJECT_ID]/notificationChannels/1355376463305411567].
Consulte a referência gcloud beta monitoring channels create para mais informações.
C#
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Exemplo: criar um canal de notificação do Slack
Para configurar um canal de notificação para um app do Slack, faça o seguinte:
Configure seu app do Slack:
- Se você ainda não tiver um app do Slack, siga a documentação de referência do Slack para criar e instalar um no seu espaço de trabalho.
- Configure seu app Slack com escopos OAuth para
chat:writeechat:write.public. - Copie o token OAuth do usuário de bot do app.
Crie um arquivo que defina a configuração do seu canal de notificação. Inclua um rótulo em que a chave
auth_tokentenha o valor do token OAuth do usuário bot do seu app Slack. Exemplo:{ "description": "A Slack notification channel", "displayName": "Slack", "type": "slack", "enabled": true, "labels": { "auth_token": "OAUTH_TOKEN_VALUE", "channel_name": "SLACK_CHANNEL_NAME" } }Execute o comando a seguir para criar o canal de notificação:
gcloud beta monitoring channels create --channel-content-from-file="FILE_NAME"
Listar canais de notificação em um projeto
Para recuperar todos os canais de notificação em um projeto Google Cloud , use o método
notificationChannels.list. Esse método também aceita opções filter e orderBy para restringir e classificar os resultados. Consulte Classificação e filtragem.
Se você estiver procurando um canal específico e souber o nome dele, use o método notificationChannels.get para recuperar apenas esse canal. O nome de um canal tem o formato projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID], por exemplo:
projects/[PROJECT_ID]/notificationChannels/1355376463305411567
Quando você recupera um canal, valores confidenciais, como tokens de autenticação e chaves de API, podem ficar ocultos por motivos de segurança. Se você estiver criando um novo canal copiando um atual, todos os valores ocultos precisarão ser corrigidos.
gcloud
Para listar todos os canais de notificação em um projeto Google Cloud , use o comando
gcloud beta monitoring channels list:
gcloud beta monitoring channels list
Se bem-sucedido, o comando list fornece uma listagem de todos os canais no projeto especificado. Por exemplo, o comando acima pode retornar uma lista que inclui as seguintes entradas:
---
description: E-mail channel created by gcloud as a test
displayName: test e-mail channel
enabled: false
labels:
email_address: user@example.com
name: projects/[PROJECT_ID]/notificationChannels/1355376463305411567
type: email
---
description: Pub/Sub channel for notifications
displayName: Notifications
enabled: true
labels:
topic: projects/[PROJECT_ID]/topics/notificationTopic
name: projects/[PROJECT_ID]/notificationChannels/1355376463305411567
type: pubsub
Para listar um único canal, use gcloud beta monitoring
channels describe, e especifique o nome do canal.
Por exemplo, este comando retorna o canal do Pub/Sub mostrado na listagem acima:
gcloud beta monitoring channels describe projects/[PROJECT_ID]/notificationChannels/1355376463305411567
Consulte as referências gcloud beta monitoring channels list e describe para mais informações. O comando describe corresponde ao método notificationChannels.get na API.
C#
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Excluir um canal de notificação de um projeto
Para excluir um canal de notificação de um projeto do Google Cloud , use o método
notificationChannels.delete e forneça o nome
do canal de notificação a ser excluído. O nome de um canal é o valor do campo name, não o displayName, na instância NotificationChannel.
O nome de um canal tem o formato
projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID], por exemplo:
projects/[PROJECT_ID]/notificationChannels/1355376463305411567
Por padrão, se você tentar excluir um canal referenciado por uma política de alertas, o canal não será excluído. Para forçar a remoção de referências das políticas de alertas e excluir o canal, defina a opção force como true. Essa opção remove automaticamente o canal de todas as políticas de referência.
gcloud
Para excluir um canal de notificação, use gcloud beta monitoring channels
delete e especifique o nome do canal a ser excluído. Por exemplo, o comando a seguir exclui o canal email criado em outro exemplo:
gcloud beta monitoring channels delete projects/[PROJECT_ID]/notificationChannels/1355376463305411567
Consulte a referência gcloud beta monitoring channels delete para mais informações.
C#
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Modificar um canal de notificação
Para modificar um canal de notificação, use o método notificationChannels.patch (na API REST).
Outras implementações de API e a Google Cloud CLI chamam isso de update em vez de patch.
Uma operação de atualização pode substituir todo o canal existente ou modificar um subconjunto de campos. Por exemplo, ative e desative o canal. Desativar um canal evita a entrega de notificações para o canal. Desativar um canal costuma ser mais prático do que removê-lo das políticas de alertas que se referem a ele, caso a alteração seja temporária.
gcloud
Para ativar um canal de notificação desativado, use o comando gcloud beta monitoring channels update e forneça a sinalização --enabled. O comando a seguir ativa o canal de notificação email criado, no estado desativado, em um exemplo anterior:
gcloud beta monitoring channels update projects/[PROJECT_ID]/notificationChannels/1355376463305411567 --enabled
Para desativar um canal de notificação, use o mesmo comando e forneça a
sinalização --no-enabled.
Consulte a referência gcloud beta monitoring channels update para mais informações. O comando update corresponde ao método notificationChannels.patch na API REST.
C#
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no Monitoring, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ver registros de canais de notificação
Use a Análise de registros para ver erros de canais de notificação:
-
No console do Google Cloud , acesse a página Análise de registros:
Acessar a Análise de registros
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.
Digite e execute sua consulta. Para consultas específicas sobre erros de canal de notificação, consulte Consultas do Cloud Monitoring.