Você pode configurar o Ops Manager 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 Ops Manager a sistemas de monitoramento personalizados, plataformas de gerenciamento de instâncias ou fluxos de trabalho de automação.
Acesso necessário
Para integrar o Ops Manager aos webhooks, você deve ter acesso Project Monitoring Admin ao projeto.
Configurar uma integração de Webhook
Navegue até a Project Integrations página.
Se ainda não estiver exibido, selecione a organização que contém o projeto desejado 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.
Clique em Integrations no painel de navegação esquerdo sob o título Settings.
Para enviar alertas para seu webhook, configure notificações de alerta . Para saber mais, consulte Definir configurações de alerta no Ops Manager.
Cabeçalhos de solicitação
O Ops Manager inclui os seguintes cabeçalhos HTTP com cada solicitação de webhook:
O Ops Manager adiciona um cabeçalho de solicitação chamado X-MMS-Event para distinguir entre vários estados de alerta. Os valores possíveis para este cabeçalho são:
| O alerta acabou de ser aberto. |
| O alerta foi resolvido. |
| Um alerta aberto anteriormente ainda está aberto. |
| O alerta foi reconhecido. |
| O alerta tornou-se inválido e foi cancelado. |
| Representa um alerta informativo, que é um evento pontual, como "Primário eleito". |
Se você especificar uma chave no campoWebhook Secret, o MongoDB Ops Manager adicionará o cabeçalho de solicitação X-MMS-Signature. Esse cabeçalho contém a assinatura HMAC-SHA-1 codificada de base64 do corpo da solicitação. O MongoDB Ops Manager cria a assinatura usando o segredo fornecido.
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 do Ops Manager. A carga útil inclui campos principais, como:
id: Identificador exclusivo para o alerta.eventTypeName: Tipo de evento que acionou o alerta.created: Carimbo de data/hora quando o alerta foi criado.status: Current status of the alert (for example,OPEN,CLOSED).humanReadable: Descrição legível por humanos do alerta.
For a complete list of fields, refer to the Get One Alert endpoint documentation.
Exemplo de carga útil de webhook
O exemplo a seguir mostra uma amostra de carga útil do webhook para um alerta de limite de métrica :
{ "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%.", "metricName": "DISK_PARTITION_SPACE_USED_DATA", "currentValue": { "number": 95.2, "units": "RAW" } }
Personalizar modelos de webhook
Você pode personalizar os cabeçalhos da solicitação e o conteúdo do corpo usando modelos FreeMarker. Para obter informações detalhadas sobre a modelagem de webhook, incluindo variáveis de modelo disponíveis, ajudantes de regex e exemplos, consulte Configurar modelagem de webhook.
Autenticar solicitações de Webhook
O campo Webhook Secret armazena um segredo que o Ops Manager usa somente para gerar o cabeçalho X-MMS-Signature para verificação do pedido. O Ops Manager não envia o segredo diretamente como um cabeçalho de autenticação ou token de portador.
Se o ponto de extremidade do webhook exigir autenticação, você deverá lidar com ela de forma independente usando um dos seguintes métodos:
Parâmetros de query: Inclua credenciais de autenticação no Webhook URL como parâmetros de query. Por exemplo:
https://example.com/webhook?token=your-auth-tokenLista de acesso IP: configure seu ponto de conexão do webhook para aceitar solicitações somente dos endereços IP da instância do Ops Manager.
Reverse Proxy or API Gateway: Use a reverse proxy or API gateway that handles authentication before forwarding requests to your webhook endpoint.
Verificar solicitações de webhook
Para verificar se uma solicitação de webhook foi originada do Ops Manager, 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 gravidade do alerta que você configura no Ops Manager. Para recuperar a gravidade configurada, faça uma chamada adicional para o endpoint Get One Alert Configuration usando o alertConfigId da carga útil do webhook.
Nenhum alerta de teste manual
O Ops Manager 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 sistema de teste.
Um limite de contagem de conexões que você pode trigger 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 está recebendo alertas corretamente, você pode excluir a configuração de alerta de teste.
Configuração de firewall
Como o Ops Manager é auto-hospedado, verifique se sua rede permite solicitações HTTP de saída do servidor do Ops Manager para o endpoint do webhook. Se o endpoint do webhook estiver atrás de um firewall, adicione o endereço IP do servidor do Ops Manager à lista de acesso IP do endpoint.
Solucionar problemas de entrega de webhook
Se o seu webhook não receber alertas: