#4 Webhook
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 funciones predefinidas tipos de medios de webhook para enviar notificaciones de Zabbix a:
Además de los servicios enumerados aquí, Zabbix puede ser integrado con Spiceworks (no se requiere webhook). Para convertir Notificaciones de Zabbix en boletos de Spiceworks, cree un email media type e ingrese Spiceworks dirección de correo electrónico del servicio de asistencia (por ejemplo, [email protected]) en el configuración de perfil de un usuario de Zabbix designado.
Para comenzar a usar una integración de webhook:
templates/media
del descargó la versión de Zabbix o descárguela de Zabbix git repositorioPara 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 para el tipo de medio 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 ver la descripción de los parámetros. Para los nuevos webhooks, se incluyen varias variables comunes de forma predeterminada (URL:<vacío>, HTTPProxy:<vacío>, Para:{ALERT.SENDTO}, Asunto: {ALERT.SUBJECT}, Message:%7BALERT.MESSAGE}), no dude en conservarlos o eliminarlos. Se admiten todas las macros compatibles con las notificaciones de problemas. en los parámetros. 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 el prefijo [scheme]:// para especificar qué tipo de proxy se usa (por ejemplo, https, socks4, socks5; consulte [documentación] (https://curl.haxx.se/libcurl/c/ CURLOPT_PROXY.html)). |
Script | Ingrese el código JavaScript en el bloque que aparece al hacer clic en el campo del parámetro (o en el botón ver/editar al lado). Este código realizará la operación de webhook. La secuencia de comandos 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 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 etiqueta (consulte la opción Procesar etiquetas) o una cadena de error. Tenga en cuenta que la secuencia de comandos 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 los mensajes de recuperación porque el script no ha tenido tiempo de ejecutarse. todavía. Consulte también: Directrices de desarrollo de Webhook, Ejemplos de script 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, p. 30s, 1m. |
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 problemáticos ya existentes (si las hay) en Zabbix. Si un webhook usa etiquetas (la casilla de verificación Procesar etiquetas está marcada), el webhook siempre debe devolver un objeto JSON que contenga al menos un objeto vacío para tags: var result = {tags: {}}; .Ejemplos de etiquetas que se pueden devolver: ID de Jira: PROD-1234, Responsable: John Smith, Procesado:<sin valor> , etc |
Incluir entrada de menú de eventos | Marque la casilla de verificación para incluir una entrada en el menú de eventos vinculada al ticket externo creado. Si está marcada, el webhook no debe usarse 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 problemático. |
Nombre de entrada de menú | Especifique el nombre de entrada de menú. Se admite la macro {EVENT.TAGS.<tag name>}. 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.<tag name>}. Este campo solo es obligatorio si se selecciona Incluir entrada de menú de evento . |
Ver tipo de medio común parámetros para detalles sobre cómo configurar los mensajes predeterminados y el procesamiento de alertas opciones
::: nota de advertencia Incluso si un webhook no usa mensajes predeterminados, las plantillas de mensajes para los tipos de operación utilizados por este webhook aún deben ser definido. :::
To test a configured webhook media type:
By default, webhook tests are performed with parameters entered during configuration. However, it is possible to change attribute values for testing. Replacing or deleting values in the testing window affects the test procedure only, the actual webhook attribute values will remain unchanged.
To view media type test log entries without leaving the test window, click on Open log (a new popup window will open).
If the webhook test is successful:
If the webhook test fails:
Una vez configurado el tipo de medio, vaya a Administración → Usuarios sección y asigne los medios de webhook a un usuario existente o cree un nuevo usuario para representar el webhook. Pasos para configurar medios de usuario para un usuario existente, siendo común para todos los tipos de medios, se describen en la Tipos de medios página.
Si un webhook usa etiquetas para almacenar ticket\Id. de mensaje, evite asignar el mismo webhook como un medio para diferentes usuarios, ya que hacerlo puede causar un webhook errores (se aplica a la mayoría de webhooks que utilizan Incluir evento entrada de menú opción). 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 en Enviar a usuarios campo en Detalles de la operación: esto le indicará a Zabbix que use el webhook para recibir notificaciones de esta acción.
Las acciones determinan qué notificaciones deben enviarse a través del webhook. Pasos para configurar acciones que involucran webhooks son los mismos que para todos los demás tipos de medios con estos excepciones: