4 Webhook

Vista general

El tipus de suport web hook és útil per fer crides HTTP mitjançant codis JavaScript personalitzats per a una fàcil integració amb programari extern, com ara sistemes d'assistència, xats o missatgeria. Podeu triar importar una integració proporcionada per Zabbix o crear una integració personalitzada des de zero.

Integracions

Les integracions següents són disponibles per permetre emprar tipus de suport web predefinits per enviar les notificacions de Zabbix a:

-brevis.one -Discord -Event-Driven Ansible -Express.ms messenger -Github issues -GLPi -iLert -iTop -Jira -Jira Service Desk -ManageEngine ServiceDesk -Mantis Bug Tracker -Mattermost -Microsoft Teams -LINE -Opsgenie -OTRS -Pagerduty -Pushover -Redmine -Rocket.Chat -ServiceNow -SIGNL4 -Slack -SolarWinds -SysAid -Telegram -TOPdesk -VictorOps -Zammad -Zendesk

A més dels serveis llistats aquí, Zabbix es pot integrar amb Spiceworks (no cal cap webhook). Per convertir les notificacions de Zabbix en entrades d'Spiceworks, creeu un tipus de suport de correu-e i introduïu l'adreça de correu electrònic del servei d'assistència de Spiceworks (p. ex. [email protected]) a la configuració del perfil d'un usuari designat de Zabbix.

Configuració

Per començar a emprar una integració de webhook:

  1. Localitzeu el fitxer .xml necessari al directori templates/media de la versió de Zabbix baixada o descarregueu-lo des del repositori git de Zabbix.
  2. Importeu el fitxer a la instal·lació de Zabbix. El webhook apareixerà a la llista de tipus de suports.
  3. Configureu el webhook segons les instruccions del fitxer Readme.md (podeu fer clic al nom d'un webhook a dalt per accedir ràpidament a Readme.md).

Per crear un webhook personalitzat des de zero:

  • Aneu a Administració → Tipus de suport
  • Feu clic a Crea un tipus de suport

La pestanya Tipus de suport conté diversos atributs específics d'aquest tipus de suport:

Tots els camps d'entrada obligatoris són marcats amb un asterisc vermell.

Els paràmetres següents són específics del tipus de suport de webhook:

Paràmetre Descripció
Paràmetres Especifiqueu les variables del webhook com a parelles d'atribut i valor.
Per als webhooks preconfigurats, una llista de paràmetres varia segons el servei. Comproveu el fitxer Readme.md del webhook per a la descripció del paràmetre.
Per als webhooks nous, s'inclouen diverses variables habituals de manera predeterminada (URL:<buit>, HTTPProxy:<buit>, Per a:{ALERT.SENDTO}, Assumpte: {ALERT.SUBJECT}, Missatge:{ALERT.MESSAGE}), no dubteu a conservar-los o esborrar-los.
Totes les macros admeses a les notificacions de problemes s'admeten al paràmetres.
Si especifiqueu un proxy HTTP, el camp suporta la mateixa funcionalitat que al camp de configuració de l'element proxy HTTP. La cadena de proxy pot tindre el prefix [scheme]:// per especificar quin tipus de proxy s'empra (p. ex. https, socks4, socks5; veieu la documentació).
Script Introduïu el codi JavaScript al bloc que apareix en fer clic al camp de paràmetres (o al botó de visualització/edició al costat). Aquest codi realitzarà l'operació webhook.
L'script és un codi de funció que accepta paràmetres - valor. Els valors s'han de convertir en objectes JSON mitjançant el mètode JSON.parse(), per exemple: var params = JSON.parse(value);.

El codi té accés a tots els paràmetres, pot fer peticions HTTP, GET, POST, PUT i DELETE i té control sobre les capçaleres HTTP i el cos de la petició.
L'script ha de contindre un operador de retorn, en cas contrari, no serà vàlid. Pot tornar l'estat correcte juntament amb un llistat opcional d'etiquetes i valors d'etiquetes (veieu l'opció Etiquetes de procés) o una cadena d'error.

Tingueu en compte que l'script només s'executa després de crear una alerta. Si l'script és configurat per tornar i processar etiquetes, aquestes etiquetes no es resoldran a les macros {EVENT.TAGS} i {EVENT.RECOVERY.TAGS} al missatge de problema inicial i als missatges de recuperació perquè l'script no ha tingut temps d'executar-se encara.

Veieu també: Directrius de desenvolupament de Webhook, Exemples d'scripts de Webhook, Objectes JavaScript addicionals.
Temps d'espera Temps d'espera d'execució de JavaScript (1-60 s, 30 s per defecte).
S'admeten sufixos de temps, p. 30 anys, 1m.
Processar les etiquetes Marqueu la casella de selecció per processar els valors de propietat JSON retornats com a etiquetes. Aquestes etiquetes s'afegeixen a les etiquetes d'esdeveniment de problemes ja existents (si n'hi han) a Zabbix.
Si un webhook empra etiquetes (la casella de selecció Processar etiquetes és marcada), el webhook sempre hauria de retornar un objecte JSON que contingui almenys un objecte buit per a tags:var resultat = {etiquetes: {}};.
Exemples d'etiquetes que es poden retornar: Jira ID: PROD-1234, Responsable: John Smith, Processat:<sense valor> , etc.
Inclou l'entrada del menú d'esdeveniments Marqueu la casella de selecció per incloure una entrada al menú d'esdeveniment que enllaça amb el bitllet extern creat.
Si és marcat, el webhook no s'ha d'emprar per enviar notificacions a diferents usuaris (considereu crear un usuari dedicat) o a diverses accions d'alerta relacionades amb un sol esdeveniment problema.
Nom de l'entrada del menú Especifiqueu el nom de l'entrada del menú.
La macro {EVENT.TAGS.<nom de l'etiqueta>} és compatible.
Aquest camp només és obligatori si és seleccionat Inclou l'entrada del menú d'esdeveniments.
URL de l'entrada del menú Especifiqueu l'URL subjacent de l'entrada del menú.
S'admet la macro {EVENT.TAGS.<nom de l'etiqueta>}.
Aquest camp només és obligatori si és seleccionat Inclou l'entrada del menú d'esdeveniments .

Veieu paràmetres de tipus de mitjans comuns per obtindre informació sobre com configurar els missatges predeterminats i les opcions de processat d'alertes.

Fins i tot si un webhook no empra missatges predeterminats, les plantilles de missatges per als tipus d'operacions emprats per aquest webhook encara s'han de definir.

Suport d'usuari

Un cop configurat el tipus de suport, aneu a Administració → Usuaris i assigneu el suport del webhook a un usuari existent o creeu un usuari nou per representar el webhook. Les passes per configurar els suports d'usuari per a un usuari existent, comunes a tots els tipus de suports, es descriuen a la pàgina Tipus de suport.

Si un webhook empra etiquetes per emmagatzemar l'ID del bitllet\missatge, eviteu assignar el mateix webhook com a suports a diferents usuaris, ja que això pot provocar errors de webhook (s'aplica a la majoria de webhooks que empren l'opció Inclou l'entrada del menú d'esdeveniments). En aquest cas, la millor pràctica és crear un usuari dedicat per representar el webhook:

  1. Després de configurar el tipus de suport del webhook, aneu a la secció Administració → Usuaris i creeu un usuari Zabbix dedicat per representar el webhook, per exemple, amb un nom d'usuari Slack per al webhook Slack. Totes les configuracions, excepte els suports, es poden deixar amb els seus valors predeterminats, ja que aquest usuari no iniciarà sessió a Zabbix.
  2. Al perfil d'usuari, navegueu a la pestanya Suports i afegiu webhook amb la informació de contacte necessària. Si el webhook no empra un camp Envia a, introduïu qualsevol combinació de caràcters admesos per ometre els requisits de validació.
  3. Concediu a aquest usuari almenys permisos per llegir tots els equips dels quals hauria d'enviar alertes.

Quan configureu l'acció d'alerta, afegiu aquest usuari al camp Envia als usuaris als detalls de l'operació; això indicarà a Zabbix que empri el webhook per a les notificacions d'aquesta acció.

Configuració de les accions d'alertes

Les accions determinen quines notificacions s'han d'enviar mitjançant el webhook. Les passes per a configurar accions que involucren webhooks són les mateixes que per a tots els altres tipus de suport amb aquestes excepcions:

  • Si un webhook empra etiquetes per emmagatzemar el bitllet\ID del missatge i per fer un seguiment de les operacions d'actualització\resolució, aquest webhook no s'hauria d'emprar a diverses accions d'alerta per a un únic esdeveniment problema. Si {EVENT.TAGS.<nom>} ja existeix i s'actualitza al webhook, el seu valor resultant no serà definit. En aquest cas, s'ha d'emprar un nom d'etiqueta nova al webhook per emmagatzemar els valors actualitzats. Això s'aplica als webhooks Jira, Jira Service Desk, Mattermost, Opsgenie, OTRS, Redmine, ServiceNow, Slack, Zammad i Zendesk proporcionats per Zabbix i la majoria dels webhooks que empren l'opció Inclou l'entrada del menú. Es permet emprar el webhook en diverses operacions si aquestes operacions o passes d'escalat pertanyen a la mateixa acció. També és acceptable emprar aquest webhook en diferents accions si les accions no s'apliquen al mateix esdeveniment problemàtic a causa de diferents condicions de filtre.
  • Quan empreu un webhook en accions per a esdeveniments interns: a la configuració de l'operació d'acció, marqueu la casella Missatge personalitzat i configureu el missatge personalitzat, en cas contrari, no hi haurà cap notificació quan s'enviï.