Puedes configurar Ops Manager para que envíe notificaciones de alerta a un punto final de webhook como solicitudes HTTP POST para su procesamiento programático. Los webhooks te permiten integrar las alertas de Ops Manager con sistemas de monitorización personalizados, plataformas de gestión de incidentes o flujos de trabajo de automatización.
Acceso requerido
Para integrar Ops Manager con webhooks, debe tener acceso Project Monitoring Admin al proyecto.
Configurar una integración de Webhook
Navega a la página Project Integrations.
Si aún no se muestra, se debe seleccionar la organización que contiene el proyecto deseado en el menú Organizations de la barra de navegación.
Si aún no se muestra, se debe seleccionar el proyecto deseado en el menú Projects de la barra de navegación.
Haz clic en Integrations en el panel de navegación izquierdo, debajo del encabezado Settings.
Para enviar alertas a tu webhook, configura las notificaciones de alerta. Para obtener más información, consulta Configurar ajustes de alerta en Ops Manager.
Encabezados de solicitud
Ops Manager incluye los siguientes encabezados HTTP en cada solicitud de webhook:
Ops Manager agrega un encabezado de solicitud llamado X-MMS-Event para distinguir entre varios estados de alerta. Los valores posibles para este encabezado son:
| La alerta se acaba de abrir. |
| La alerta se resolvió. |
| Una alerta previamente abierta aún está abierta. |
| La alerta fue reconocida. |
| La alerta se volvió inválida y fue cancelada. |
| Representa una alerta informativa, que es un evento de punto en el tiempo, como "Primario Elegido." |
Si especifica una clave en el campo Webhook Secret, MongoDB Ops Manager agrega el encabezado de solicitud X-MMS-Signature. Este encabezado contiene la firma HMAC-SHA-1 del cuerpo de la solicitud, codificada en base64. MongoDB Ops Manager crea la firma utilizando el secreto proporcionado.
Cuerpo de la solicitud
El cuerpo de la solicitud contiene un documento JSON que utiliza el mismo formato que el recurso de alertas de la API de Ops Manager. La carga útil incluye campos clave como:
id: Identificador único para la alerta.eventTypeName: Tipo de evento que activó la alerta.created: Marca de tiempo en que se creó la alerta.status: Estado actual de la alerta (por ejemplo,OPEN,CLOSED).humanReadable: Descripción de la alerta legible para humanos.
Para obtener una lista completa de los campos, consulte la documentación del punto final de Get One Alert.
Carga útil de webhook de ejemplo
El siguiente ejemplo muestra una carga útil de webhook de muestra para una alerta de umbral 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" } }
Personaliza las plantillas de webhook
Puedes personalizar los encabezados y el contenido del cuerpo de la solicitud mediante plantillas de FreeMarker. Para obtener información detallada sobre las plantillas de webhook, incluidas las variables de plantilla disponibles, las expresiones regulares y los ejemplos, consulta Configurar plantillas de webhook.
Autenticar solicitudes de webhook
El campo Webhook Secret almacena un secreto que Ops Manager utiliza únicamente para generar el encabezado X-MMS-Signature para la verificación de la solicitud. Ops Manager no envía el secreto directamente como encabezado de autenticación ni como token de portador.
Si el punto de conexión del webhook requiere autenticación, debe gestionarlo de forma independiente mediante uno de los siguientes métodos:
Parámetros de query: incluya las credenciales de autenticación en el Webhook URL como parámetros de query. Por ejemplo:
https://example.com/webhook?token=your-auth-tokenLista de acceso IP: Configure su punto final de webhook para que solo acepte solicitudes de las direcciones IP de su instancia de Ops Manager.
Proxy inverso o puerta de enlace API: utilice un proxy inverso o una puerta de enlace API que gestione la autenticación antes de reenviar las solicitudes a su punto final de webhook.
Verificar solicitudes de webhook
Para verificar que una solicitud de webhook se originó en Ops Manager, valide el encabezado X-MMS-Signature:
Limitaciones
Cuando utilice integraciones de webhook, considere las siguientes limitaciones:
Gravedad de la alerta no incluida
La carga útil del webhook no incluye el nivel de gravedad de la alerta que configura en Ops Manager. Para recuperar la gravedad configurada, realice una llamada adicional al punto final Get One Alert Configuration utilizando alertConfigId de la carga útil del webhook.
Sin alertas de prueba manual
Ops Manager no ofrece una forma de activar alertas de prueba manualmente. Para probar su punto final de webhook, puede configurar temporalmente una alerta con condiciones fáciles de activar, como por ejemplo:
Un umbral bajo de espacio en disco en una implementación de prueba.
Un umbral de recuento de conexiones que puede activar abriendo varias conexiones.
Un umbral de atraso de la replicación en un set de réplicas de prueba.
Después de confirmar que su webhook recibe las alertas correctamente, puede borrar la configuración de alerta de prueba.
Configuración del Firewall
Dado que Ops Manager es un software autoalojado, asegúrese de que su red permita las solicitudes HTTP salientes desde el servidor de Ops Manager hacia su punto final de webhook. Si su punto final de webhook se encuentra detrás de un firewall, agregue la dirección IP del servidor de Ops Manager a la lista de direcciones IP permitidas para dicho punto final.
Solucionar problemas de entrega de webhooks
Si su webhook no recibe alertas: