#4 Webhook

Visión general

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.

Integraciones

Las siguientes integraciones están disponibles, lo que permite tipos de medios predefinidos de webhook que se utilizarán 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 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 (por ejemplo, [email protected]) en la configuración del perfil de un usuario designado de Zabbix.

Configuración

Para comenzar a utilizar una integración de webhook:

  1. Ubique el archivo .xml requerido en el directorio templates/media de la versión descargada de Zabbix o descárguela del repositorio git de Zabbix
  2. Importe el archivo en su instalación de Zabbix. El webhook aparecerá en la lista de tipos de medios.
  3. Configure el webhook según las instrucciones del archivo Readme.md (puede hacer clic en el nombre de un webhook arriba para acceder rápidamente a Readme.md).

Para crear un webhook personalizado desde cero:

  • Vaya a Administración → Tipos de medios
  • Haga clic en Crear tipo de medio

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 webhooks nuevos, se incluyen varias variables comunes de forma predeterminada (URL:<empty>, HTTPProxy:<empty>, Para:{ALERT.SENDTO}, Asunto: {ALERT.SUBJECT}, Mensaje:{ALERT.MESSAGE}), no dude en conservarlos o eliminarlos.
Todas las macros que se admiten en las notificaciones de problemas se admiten en el 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 [esquema]:// para especificar qué tipo de proxy se utiliza (por ejemplo, https, calcetines4, calcetines5; consulte 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 crear 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.

Ver 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, 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 de problemas 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 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á marcado, 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 de problema.
Nombre de entrada de menú Especifique el nombre de 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 del tipo de medio para detalles sobre cómo configurar mensajes predeterminados y opciones de procesamiento de alertas.

Incluso si un webhook no utiliza mensajes predeterminados, las plantillas de mensajes para los tipos de operaciones utilizadas por este webhook aún deben estar disponibles.

Medios de usuario

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:

  1. Después de configurar el tipo de medio webhook, vaya a Administración → Sección Usuarios y cree un usuario Zabbix dedicado para representar el webhook: por ejemplo, con un nombre de usuario Slack para Slack webhook. Todas las configuraciones, excepto los medios, se pueden dejar en sus valores predeterminados ya que este usuario no iniciará sesión en Zabbix.
  2. En el perfil de usuario, vaya a la pestaña Medios y agregue un webhook con el información de contacto requerida. Si el webhook no usa un Enviar a campo, ingrese cualquier combinación de caracteres admitidos para omitir requisitos de validación.
  3. Otorgue a este usuario al menos lectura permisos a todos los hosts para los que debe enviar las alertas.

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.

Configuración de acciones de alerta

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:

  • Si un webhook usa etiquetas para almacenar el ticket\Id. de mensaje y para realizar un seguimiento con operaciones de actualización\resolver, este webhook no debe usarse en varias acciones de alerta para un solo evento de problema. Si {EVENT.TAGS.<name>} ya existe y se actualiza en el webhook, entonces su valor resultante no está definido. Para tal caso, un el nuevo nombre de la etiqueta debe usarse en el webhook para almacenar valores actualizados. Esto se aplica a Jira, Jira Service Desk, Mattermost, Opsgenie, OTRS, Webhooks de Redmine, ServiceNow, Slack, Zammad y Zendesk proporcionados por Zabbix y a la mayoría de los webhooks que utilizan Incluir evento entrada de menú opción. Usar el webhook en varias operaciones es permitido si esas operaciones o pasos de escalamiento pertenecen al mismo acción. También está bien usar este webhook en diferentes acciones si las acciones no se aplicarán al mismo evento de problema debido a diferentes condiciones de filtrado.
  • Al usar un webhook en acciones para interno eventos: en el configuración de operación de acción, marque la casilla de verificación Mensaje personalizado y defina el mensaje personalizado, de lo contrario, una notificación no será enviado.