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 y permiten usar tipos de medios de webhook predefinidos para enviar notificaciones de Zabbix a:
Además de los servicios enumerados aquí, Zabbix se puede integrar 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 ingrese la dirección de correo electrónico del servicio de asistencia técnica de Spiceworks (p. ej., [email protected]) en la configuración del perfil de un usuario de Zabbix designado.
Para comenzar a utilizar una integración de webhook:
templates/media
de la versión descargada de Zabbix o descárguelo desde el 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 de entrada obligatorios están marcados con un asterisco rojo.
Los siguientes parámetros son específicos del tipo de medio de webhook:
Parámetro | Descripción |
---|---|
Parámetros | Especifique las variables del webhook como pares de atributo y valor. Para los webhooks preconfigurados, la lista de parámetros varía según el servicio. Consulte el archivo Readme.md del webhook para obtener una descripción de los parámetros. Para los nuevos webhooks, se incluyen varias variables comunes de forma predeterminada (URL:<empty>, HTTPProxy:<empty>, To:{ALERT.SENDTO}, Subject:{ALERT.SUBJECT}, Message:{ALERT.MESSAGE}); puede conservarlas o eliminarlas. Los parámetros del webhook admiten macros de usuario, todas las macros que se admiten en las notificaciones de problemas y, además, 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 del elemento proxy HTTP. La cadena de proxy puede tener como prefijo [scheme]:// para especificar qué tipo de proxy se utiliza (p. ej., https, sockets4, sockets5; consulte la documentación). |
Script | Ingrese el código JavaScript en el bloque que aparece al hacer clic en el campo de parámetro (o en el botón ver/editar al lado). Este código realizará la operación del webhook. El script es un código de función que acepta pares de parámetro-valor. Los valores deben convertirse en objetos JSON usando el método JSON.parse(), por ejemplo: var params = JSON.parse(value); .El código tiene acceso a todos los parámetros, puede realizar HTTP Solicitudes GET, POST, PUT y DELETE y tiene control sobre los encabezados HTTP y el cuerpo de la solicitud. El script debe contener un operador de retorno; de lo contrario, no será válido. Puede devolver el estado OK junto con una lista opcional de etiquetas y valores de etiquetas (consulte la 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 no ha tenido tiempo de ejecutarse. todavía. Nota: Se recomienda usar variables locales en lugar de las globales para asegurarse de que cada script opera con sus propios datos y que no hay colisiones entre las posibles ejecuciones simultáneas (ver los problemas conocidos). Consulte también: Pautas de desarrollo de Webhook, Ejemplos de secuencias de comandos de Webhook, Objetos JavaScript adicionales. |
Tiempo de espera | Tiempo de espera de ejecución de JavaScript (1-60 s, predeterminado 30 s). Se admiten sufijos de tiempo, por ejemplo, 30 s, 1 m. |
Procesar etiquetas | Marque la casilla de verificación para procesar los valores de propiedad JSON devueltos como etiquetas. Estas etiquetas se agregan a las etiquetas de eventos de problemas ya existentes (si las hay) en Zabbix. Si un webhook usa etiquetas (la casilla de verificación Etiquetas de proceso está marcada), el webhook siempre debe devolver un objeto JSON que contenga al menos un archivo vacío. objeto para etiquetas: var resultado = {etiquetas: {}}; .Ejemplos de etiquetas que se pueden devolver: Jira ID: PROD-1234, Responsable: John Smith, Procesado:<sin valor >, etc. |
Incluir entrada del menú de eventos | Marque la casilla de verificación para incluir una entrada en el menú de eventos que enlace al ticket externo creado. Si está marcada, no se debe utilizar el webhook para enviar notificaciones a diferentes usuarios (considere crear un usuario dedicado en su lugar) o en varias acciones de alerta relacionadas con un solo evento de problema. |
Nombre de entrada de menú | Especifique el nombre de la entrada de menú. Se admite la macro {EVENT.TAGS.<nombre de etiqueta>}. Este campo solo es obligatorio si se selecciona Incluir entrada de menú de eventos. |
URL de entrada de menú | Especifique la URL subyacente de la entrada de menú. Se admite la macro {EVENT.TAGS.<nombre de etiqueta>}. Este campo solo es obligatorio si se selecciona Incluir entrada de menú de evento . |
Consulte los parámetros comunes de tipo de medio para más detalles sobre cómo configurar mensajes predeterminados y procesamiento de alertas opciones.
Incluso si un webhook no utiliza mensajes predeterminados, las plantillas de mensajes para los tipos de operaciones utilizadas por este webhook deben estar definidas.
Para probar un tipo de medio de webhook configurado:
De forma predeterminada, las pruebas de webhook se realizan con parámetros ingresados durante configuración. Sin embargo, es posible cambiar los valores de los atributos para pruebas. Reemplazar o eliminar valores en la ventana de prueba afecta la Sólo durante el procedimiento de prueba, los valores reales de los atributos del webhook permanecerán sin alterar.
Para ver las entradas del registro de pruebas de 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: