Esta es una traducción de la página de documentación original en español. Ayúdanos a mejorarla.

1 Ejemplos de script de webhook

Visión general

Aunque Zabbix ofrece una gran cantidad de integraciones de webhook disponibles listo para usar, es posible que desee crear sus propios webhooks en su lugar. Este La sección proporciona ejemplos de scripts de webhook personalizados (utilizados en el parámetro Script). Ver webhook para descripción de otros parámetros de webhook.

Webhook de Jira (personalizado)

Este script creará un problema de JIRA y devolverá información sobre el creado tema.

probar {
           Zabbix.log(4, '[Jira webhook] Comenzó con parámetros: ' + valor);
       
           var resultado = {
                   'etiquetas': {
                       'punto final': 'jira'
                   }
               },
               params = JSON.parse(valor),
               req = nueva HttpRequest(),
               campos = {},
               resp;
       
           si (parámetros.HTTPProxy) {
               req.setProxy(parámetros.HTTPProxy);
           }
       
           req.addHeader('Tipo de contenido: aplicación/json');
           req.addHeader('Autorización: Básica ' + params.authentication);
       
           campos.resumen = params.resumen;
           campos.descripción = params.descripción;
           campos.proyecto = {clave: params.proyecto_clave};
           campos.issuetype = {id: params.issue_id};
       
           resp = req.post('https://tsupport.zabbix.lan/rest/api/2/issue/',
               JSON.stringify({"campos": campos})
           );
       
           if (req.getStatus() != 201) {
               throw 'Código de respuesta: ' + req.getStatus();
           }
       
           respuesta = JSON.parse(resp);
           result.tags.issue_id = resp.id;
           result.tags.issue_key = resp.key;
       
           devuelve JSON.stringify(resultado);
       }
       atrapar (error) {
           Zabbix.log(4, '[Jira webhook] Falló la creación del problema json: ' + JSON.stringify({"fields": fields}));
           Zabbix.log(3, '[Jira webhook] error en la creación del problema: ' + error);
       
           throw 'Error con error: ' + error;
       }

Webhook de Slack (personalizado)

Este webhook reenviará notificaciones de Zabbix a un canal de Slack.

probar {
           var params = JSON.parse(valor),
               req = nueva HttpRequest(),
               respuesta;
       
           si (parámetros.HTTPProxy) {
               req.setProxy(parámetros.HTTPProxy);
           }
       
           req.addHeader('Content-Type: application/x-www-form-urlencoded');
       
           Zabbix.log(4, '[ Slack webhook ] Solicitud de webhook con valor=' + valor);
       
           respuesta = req.post(params.hook_url, 'payload=' + encodeURIComponent(value));
           Zabbix.log(4, '[ Slack webhook ] Respondió con el código: ' + req.Status() + '. Respuesta: ' + respuesta);
       
           probar {
               respuesta = JSON.parse(respuesta);
           }
           atrapar (error) {
               if (req.getStatus() < 200 || req.getStatus() >= 300) {
                   throw 'Solicitud fallida con código de estado' + req.getStatus();
               }
               más {
                   throw 'Solicitud exitosa, pero el análisis de respuesta falló.';
               }
           }
       
           if (req.getStatus() !== 200 || !respuesta.ok || respuesta.ok === 'falso') {
               lanzar respuesta.error;
           }
       
           devuelve 'OK';
       }
       atrapar (error) {
           Zabbix.log(3, '[Jira webhook] Error al enviar. Error: ' + error);
       
           throw 'Error con error: ' + error;
       }