Você pode configurar o Atlas para enviar notificações de alerta para um endpoint de webhook como solicitações HTTP POST para processamento programático. Os webhooks permitem integrar alertas do Atlas a sistemas de monitoramento personalizados, plataformas de gerenciamento de instâncias ou fluxos de trabalho de automação.
Acesso necessário
Para integrar o Atlas com webhooks, você deve ter acesso Organization Owner de ou Project Owner ao projeto.
Configurar uma integração de webhook
No Atlas, vá para a página Project Settings.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Na barra lateral, clique no ícone ao lado de Project Overview.
A página Configurações do projeto é exibida.
No Atlas, vá para a página Project Integrations.
Clique na aba Integrations.
A página Integrações de projeto é exibida.
Para enviar alertas para seu webhook, configure notificações de alerta . Para saber mais, consulte Definir configurações de alerta.
Cabeçalhos de solicitação
O Atlas inclui os seguintes cabeçalhos HTTP com cada solicitação de webhook:
Cabeçalho | Descrição |
|---|---|
| Indica o estado de alerta . Valores possíveis:
|
| (Opcional) Se você especificar um segredo no Webhook Secret campo, o Atlas incluirá este cabeçalho. Contém a64assinatura HMAC-SHA- codificada por Base1 do corpo da solicitação. O Atlas cria a assinatura usando o segredo fornecido. Use este cabeçalho para verificar se a solicitação do webhook foi originada do Atlas. |
Corpo da solicitação
O corpo da solicitação contém um documento JSON que usa o mesmo formato que o recurso de alertas da API de administração do Atlas . A carga útil inclui campos principais, como:
id: Identificador único do alerta.eventTypeName: Tipo de evento que acionou o alerta.created: Timestamp em que o alerta foi criado.status: status atual do alerta (por exemplo,OPEN,CLOSED).humanReadable: Descrição legível por humanos do alerta. Esse campo contém o nome do projeto e o nome da organização no formato "Projeto: [nome do projeto ] Organização: [nome da organização]" além de outros detalhes do alerta .
Para obter uma lista completa de campos, consulte a documentação da API de administração do Atlas para obter todos os alertas de projeto.
Exemplo de carga útil do webhook
O exemplo a seguir mostra uma amostra de carga útil do webhook para um alerta de espaço em disco :
{ "id": "5d1b6f8e8c2e4e2d3c4a5b6c", "groupId": "5d1b6f8e8c2e4e2d3c4a5b6d", "eventTypeName": "OUTSIDE_METRIC_THRESHOLD", "status": "OPEN", "created": "2024-01-15T10:30:00Z", "updated": "2024-01-15T10:30:00Z", "lastNotified": "2024-01-15T10:30:00Z", "humanReadable": "Disk space used on data partition is 95.2%. Project: MyProject Organization: MyOrganization", "metricName": "DISK_PARTITION_SPACE_USED_DATA", "currentValue": { "number": 95.2, "units": "RAW" } }
Autenticar solicitações de webhook
O campo Webhook Secret armazena um segredo que o Atlas utiliza exclusivamente para gerar o cabeçalho X-MMS-Signature para verificação do pedido. O Atlas não envia o segredo diretamente como um cabeçalho de autenticação ou token de portador.
Se o endpoint do webhook exigir autenticação, você deverá lidar com isso de forma independente usando um dos seguintes métodos:
Parâmetros de consulta: inclua credenciais de autenticação no Webhook URL como parâmetros de consulta. Por exemplo:
https://example.com/webhook?token=your-auth-tokenLista de acesso IP: configure seu endpoint do webhook para aceitar solicitações somente de endereços IP do Atlas . Esta configuração garante que somente o Atlas possa enviar solicitações para seu endpoint.
Proxy reverso ou gateway de API: use um proxy reverso ou gateway de API que lide com a autenticação antes de encaminhar solicitações para o endpoint do webhook.
Verificar solicitações de webhook
Para verificar se uma solicitação de webhook foi originada do Atlas, valide o cabeçalho X-MMS-Signature:
Limitações
Ao usar integrações de webhook, considere as seguintes limitações:
Gravidade do alerta não incluída
A carga útil do webhook não inclui o nível de severidade de alerta que você configura no Atlas. Para recuperar a gravidade configurada, faça uma chamada adicional para o endpoint de configuração de alerta da API de administração do Atlas usando o alertConfigId da carga útil do webhook.
Nenhum alerta manual de teste
O Atlas não fornece uma maneira de acionar alertas de teste manualmente. Para testar o endpoint do webhook, você pode configurar temporariamente um alerta com condições fáceis de acionar, como:
Um limite baixo de espaço em disco em um cluster de teste.
Um limite de contagem de conexões que você pode acionar abrindo várias conexões.
Um limite de atraso de replicação em um conjunto de réplicas de teste.
Depois de confirmar que seu webhook recebe alertas corretamente, você pode excluir a configuração de alerta de teste.
Configuração de firewall
Se o firewall exigir que você configure uma lista de acesso IP, permita o acesso a partir de endereços IP do Atlas para que o Atlas possa se comunicar com o endpoint do webhook.
Solução de problemas de entrega de webhook
Se o webhook não receber alertas: