Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Menu Docs

Integração com webhooks no Cloud Manager

Você pode configurar o Cloud 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 Cloud Manager a sistemas de monitoramento personalizados, plataformas de gerenciamento de instâncias ou fluxos de trabalho de automação.

Para integrar o Cloud Manager aos webhooks, você deve ter acesso Project Monitoring Admin ao projeto.

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Project Settings.

    A página Configurações do projeto é exibida.

2

Na barra lateral, clique em Integrations sob o título Settings.

A página Integrações de projeto é exibida.

3
4

No campoWebhook URL, insira a URL do endpoint para onde o Cloud Manager deve enviar notificações de alerta .

5

No campoWebhook Secret, insira uma chave secreta. O Cloud Manager utiliza este segredo para gerar o cabeçalho X-MMS-Signature para verificação do pedido.

6

Para enviar alertas para o seu webhook, configure as notificações de alerta. Para saber mais, consulte Definir configurações de alerta.

O Cloud Manager inclui os seguintes cabeçalhos HTTP com cada solicitação de webhook:

O Cloud 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:

alert.open

O alerta acabou de ser aberto.

alert.close

O alerta foi resolvido.

alert.update

Um alerta aberto anteriormente ainda está aberto.

alert.acknowledge

O alerta foi reconhecido.

alert.cancel

O alerta tornou-se inválido e foi cancelado.

alert.inform

Representa um alerta informativo, que é um evento pontual, como "Primário eleito".

Se você especificar uma chave no campoWebhook Secret, o MongoDB Cloud 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 Cloud Manager cria a assinatura usando o segredo fornecido.

O corpo da solicitação contém um documento JSON que usa o mesmo formato que o recurso de alertas da API do Cloud 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: status atual do alerta (por exemplo, OPEN, CLOSED).

  • humanReadable: Descrição legível por humanos do alerta.

Para obter uma lista completa de campos, consulte a documentação do endpoint Get One Alert.

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"
}
}

Você pode personalizar os cabeçalhos de solicitação do webhook e o conteúdo do corpo definindo os campos webhookHeadersTemplate e webhookBodyTemplate na notificação do webhook. Cada modelo suporta interpolação ${field}: o Cloud Manager substitui cada espaço reservado ${field} pelo valor do campo correspondente do documento de alerta quando envia a notificação.

Você pode interpolar qualquer campo que o documento de alerta retorne, como ${eventTypeName}, ${clusterName}, ${status} e ${created}. Para obter a lista completa de campos que você pode interpolar, consulte os campos de resposta para o ponto de extremidade Obter um alerta.

Por exemplo, o modelo de corpo {"event": "${eventTypeName}", "cluster": "${clusterName}"} renderiza cada espaço reservado com seu valor de alerta antes que o Cloud Manager envie a solicitação.

O corpo renderizado deve ser JSON válido e é enviado com o cabeçalho Content-Type: application/json. Os cabeçalhos renderizados devem formar um objeto JSON que mapeie cada nome de cabeçalho para seu valor. O Cloud Manager não expõe o segredo do webhook ou o cabeçalho de assinatura a modelos e edita ambos os campos de modelo nas respostas da API.

Se um modelo falhar ao renderizar, exceder o limite de tamanho ou produzir uma saída inválida, o Cloud Manager enviará sua carga útil e cabeçalhos padrão e ainda entregará a notificação.

Para visualizar a saída renderizada antes de salvar o alerta, clique no botão Post test message to webhook, que renderiza seus modelos em relação aos dados de alerta de amostra.

O campo Webhook Secret armazena um segredo que o Cloud Manager usa somente para gerar o cabeçalho X-MMS-Signature para verificação da solicitação. O Cloud 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-token

  • Lista de acesso IP: configure seu endpoint do webhook para aceitar solicitações somente de endereços IP do Cloud Manager . Essa configuração garante que somente o Cloud Manager 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.

Para verificar se uma solicitação de webhook foi originada do Cloud Manager, valide o cabeçalho X-MMS-Signature:

1
2
3

Se eles corresponderem, a solicitação será autêntica.

Ao usar integrações de webhook, considere as seguintes limitações:

A carga útil do webhook não inclui o nível de gravidade do alerta configurado no Cloud 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.

O Cloud 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.

Se o firewall exigir que você configure uma lista de acesso IP, permita o acesso a partir de endereços IP do Cloud Manager para que o Cloud Manager possa se comunicar com o endpoint do webhook.

Se o seu webhook não receber alertas:

1
2
3

O Cloud Manager considera outros códigos de status como falhas.

4
5
Avalie esta página