El tipo de medio de webhook es útil para realizar llamadas HTTP utilizando Código JavaScript para una integración sencilla con software externo como sistemas de mesa de ayuda, chats o mensajeros. Puede optar por importar una integración proporcionada por Zabbix o crear una integración personalizada desde rascar.
Las siguientes integraciones están disponibles, lo que permite utilizar tipos de medios de webhook predefinidos para enviar notificaciones de Zabbix a:
Además de los servicios listados aquí, Zabbix puede integrarse con Spiceworks (no se requiere webhook). Para convertir las notificaciones de Zabbix en tickets de Spiceworks, cree un tipo de medio de correo electrónico e introduzca la dirección de correo electrónico del helpdesk de Spiceworks (por ejemplo, [email protected]) en la configuración de perfil de un usuario de Zabbix designado.
Para comenzar a utilizar una integración de webhook:
templates/media
de la versión de Zabbix descargada o descárguelo del repositorio git de Zabbix.Para crear un webhook personalizado desde cero:
La pestaña Tipo de medio contiene varios atributos específicos para este tipo de medio:
Todos los campos obligatorios están marcados con un asterisco rojo.
Los siguientes parámetros son específicos para el tipo de medio webhook:
Parámetro | Descripción |
---|---|
Parámetros | Especifique las variables del webhook como pares de atributo y valor. Para webhooks preconfigurados, la lista de parámetros varía según el servicio. Consulte el archivo Readme.md del webhook para la descripción de los parámetros. Para nuevos webhooks, se incluyen por defecto varias variables comunes (URL:<vacío>, HTTPProxy:<vacío>, To:{ALERT.SENDTO}, Subject:{ALERT.SUBJECT}, Message:{ALERT.MESSAGE}); puede mantenerlas o eliminarlas según lo desee. Los parámetros del webhook admiten macros de usuario, todas las macros que se admiten en las notificaciones de problemas y, adicionalmente, las macros {ALERT.SENDTO}, {ALERT.SUBJECT} y {ALERT.MESSAGE}. Si especifica un proxy HTTP, el campo admite la misma funcionalidad que en el campo de configuración de ítem proxy HTTP. La cadena del proxy puede ir precedida de [esquema]:// para especificar el tipo de proxy que se utiliza (por ejemplo, https, socks4, socks5; consulte la documentación). |
Script | Introduzca el código JavaScript en el editor modal que se abre al hacer clic en el campo de parámetro o en el icono de lápiz junto a él. Este código realizará la operación del webhook. El script es un código de función que acepta pares de parámetros y valores. Los valores deben convertirse en objetos JSON utilizando el método JSON.parse(), por ejemplo: var params = JSON.parse(value); .El código tiene acceso a todos los parámetros, puede realizar solicitudes HTTP GET, POST, PUT y DELETE y tiene control sobre las cabeceras HTTP y el cuerpo de la solicitud. El script debe contener un operador return, de lo contrario no será válido. Puede devolver un estado OK junto con una lista opcional de etiquetas y valores de etiquetas (ver opción Procesar etiquetas) o una cadena de error. Tenga en cuenta que el script se ejecuta solo después de que se crea una alerta. Si el script está configurado para devolver y procesar etiquetas, estas etiquetas no se resolverán en las macros {EVENT.TAGS} y {EVENT.RECOVERY.TAGS} en el mensaje de problema inicial y en los mensajes de recuperación porque el script aún no ha tenido tiempo de ejecutarse. Nota: Se recomienda utilizar variables locales (por ejemplo, var local = 1 ) en lugar de globales (por ejemplo, global = 1) para garantizar que cada script opere con sus propios datos y evitar colisiones entre llamadas simultáneas (consulte problemas conocidos).Consulte también: Guía de desarrollo de webhooks, Ejemplos de scripts de webhook, Objetos JavaScript adicionales. |
Tiempo de espera | Tiempo de espera de ejecución de JavaScript (1-60s, por defecto 30s). Se admiten sufijos de tiempo, por ejemplo, 30s, 1m. |
Procesar etiquetas | Marque la casilla para procesar los valores de las propiedades JSON devueltas como etiquetas. Estas etiquetas se añaden a cualquier etiqueta de problema existente. Tenga en cuenta que al utilizar etiquetas de webhook, el webhook debe devolver un objeto JSON que contenga al menos un objeto de etiquetas vacío: var result = {tags: {}}; Ejemplos de etiquetas que se pueden devolver: jira-id:prod-1234, responsable:Juan Pérez, procesado:<sin valor> |
Incluir entrada en el menú de eventos | Marque la casilla para incluir una entrada en el menú de eventos que enlace a un ticket externo creado. Se incluirá una entrada para cada webhook que esté habilitado y tenga marcada esta casilla. Tenga en cuenta que si los parámetros Nombre de la entrada del menú y URL de la entrada del menú contienen alguna macro {EVENT.TAGS.<nombre de etiqueta>}, solo se incluirá una entrada si estas macros pueden resolverse (es decir, si el evento tiene definidas estas etiquetas). Si se marca, el webhook no debe usarse para enviar notificaciones a diferentes usuarios (considere crear un usuario dedicado en su lugar) y no debe usarse en múltiples acciones de alerta para un solo evento de problema. |
Nombre de la entrada del menú | Especifique el nombre de la entrada del menú. Se admite la macro {EVENT.TAGS.<nombre de etiqueta>}. Este campo solo es obligatorio si se marca Incluir entrada en el menú de eventos. |
URL de la entrada del menú | Especifique la URL subyacente de la entrada del menú. Se admite la macro {EVENT.TAGS.<nombre de etiqueta>}. Este campo solo es obligatorio si se marca Incluir entrada en el menú de eventos. |
Consulte parámetros comunes de tipo de medio para obtener detalles sobre cómo configurar mensajes predeterminados y opciones de procesamiento de alertas.
Incluso si un webhook no utiliza mensajes predeterminados, aún deben definirse plantillas de mensajes para los tipos de operación utilizados por este webhook.
Para probar un tipo de medio webhook configurado:
Reemplazar o eliminar valores en la ventana de prueba afecta solo al procedimiento de prueba, los valores reales de los atributos del webhook permanecerán sin cambios.
Para ver las entradas del registro de pruebas del tipo de medio sin salir de la ventana de prueba, haga clic en Abrir registro (se abrirá una nueva ventana emergente).
Si la prueba del webhook es exitosa:
Si la prueba del webhook falla:
Una vez configurado el tipo de medio, vaya a la sección Usuarios → Usuarios y asigne los medios del webhook a un usuario existente o cree un nuevo usuario para representar el webhook. Lo pasos para configurar medios de usuario para un usuario existente, que son comunes para todos los tipos de medios, se describen en la página de tipos de medios.
Si un webhook utiliza etiquetas para almacenar el ID del ticket\mensaje, evite asignar el mismo webhook como medio para diferentes usuarios, ya que al hacerlo puede provocar errores en el webhook (se aplica a la mayoría de los webhooks que utilizan la opción Incluir evento entrada de menú ). En este caso, la mejor práctica es crear un usuario dedicado para representar el webhook:
Al configurar la acción de alerta, agregue este usuario al campo Enviar a usuarios en Detalles de la operación: esto le indicará a Zabbix que use el webhook para notificaciones de esta acción.
Las acciones determinan qué notificaciones se deben enviar a través del webhook. Los pasos para configurar acciones que involucran webhooks son los mismos que para todos los demás tipos de medios con estas excepciones: