4 Webhook

Pārskats

Webhook medija tips ir noderīgs HTTP izsaukumu veikšanai, izmantojot pielāgotu JavaScript kodu, lai nodrošinātu vienkāršu integrāciju ar ārēju programmatūru, piemēram, palīdzības dienesta sistēmām, tērzēšanas risinājumiem vai ziņapmaiņas lietotnēm. Jūs varat izvēlēties importēt Zabbix nodrošinātu integrāciju vai izveidot pielāgotu integrāciju no nulles.

Integrācijas

Ir pieejamas šādas integrācijas, kas ļauj izmantot iepriekš definētus webhook multivides tipus, lai nosūtītu Zabbix paziņojumus uz:

Papildus šeit uzskaitītajiem pakalpojumiem Zabbix var integrēt ar Spiceworks (webhook nav nepieciešams). Lai pārvērstu Zabbix paziņojumus par Spiceworks biļetēm, izveidojiet e-pasta multivides tipu un norādiet Spiceworks palīdzības dienesta e-pasta adresi (piem., [email protected]) norādīta Zabbix lietotāja profila iestatījumos.

Konfigurēšana

Lai sāktu izmantot webhook integrāciju:

  1. Atrodiet nepieciešamo .yaml failu lejupielādētās Zabbix versijas templates/media direktorijā vai lejupielādējiet to no Zabbix git repozitorija.
  2. Importējiet failu savā Zabbix instalācijā. Webhook tiks parādīts datu nesēju tipu sarakstā.
  3. Konfigurējiet webhook saskaņā ar Readme.md failā sniegtajiem norādījumiem (varat noklikšķināt uz webhook nosaukuma iepriekš, lai ātri piekļūtu Readme.md).

Lai izveidotu pielāgotu webhook no jauna:

  1. Atveriet Brīdinājumi > Datu nesēju tipi.
  2. Noklikšķiniet uz Izveidot datu nesēja tipu.

Cilnē Datu nesēja tips ir ietverti dažādi šim datu nesēja tipam specifiski atribūti:

Visi obligātie ievades lauki ir atzīmēti ar sarkanu zvaigznīti.

Webhook datu nesēja tipam specifiski ir šādi parametri:

Parametrs Apraksts
Parametri Norādiet webhook mainīgos kā atribūta un vērtības pārus.
Iepriekš konfigurētiem webhook parametru saraksts atšķiras atkarībā no pakalpojuma. Parametru aprakstu skatiet webhook Readme.md failā.
Jauniem webhook pēc noklusējuma ir iekļauti vairāki bieži izmantoti mainīgie (URL:<empty>, HTTPProxy:<empty>, To:{ALERT.SENDTO}, Subject:{ALERT.SUBJECT}, Message:{ALERT.MESSAGE}); varat tos saglabāt vai noņemt.

Webhook parametri atbalsta lietotāja makro, visus makro, kas tiek atbalstīti problēmu paziņojumos, kā arī {ALERT.SENDTO}, {ALERT.SUBJECT} un {ALERT.MESSAGE} makro.

Ja norādāt HTTP starpniekserveri, lauks atbalsta tādu pašu funkcionalitāti kā vienuma konfigurācijas HTTP starpniekservera lauks. Starpniekservera virknes sākumā var pievienot [scheme]://, lai norādītu izmantotā starpniekservera veidu (piemēram, https, socks4, socks5; skatiet dokumentāciju).
Skripts Ievadiet JavaScript kodu modālajā redaktorā, kas tiek atvērts, noklikšķinot parametra laukā vai uz zīmuļa ikonas blakus tam. Šis kods veiks webhook darbību.
Skripts ir funkcijas kods, kas pieņem parametra un vērtības pārus. Vērtības jāpārveido JSON objektos, izmantojot JSON.parse() metodi, piemēram: var params = JSON.parse(value);.

Kodam ir piekļuve visiem parametriem; tas var veikt HTTP GET, POST, PUT un DELETE pieprasījumus, atbalstīt papildu metodes, piemēram, CONNECT, PATCH, HEAD, OPTIONS un TRACE, kā arī kontrolēt HTTP galvenes un pieprasījuma pamattekstu.
Skriptā jābūt return operatoram, pretējā gadījumā tas nebūs derīgs. Tas var atgriezt statusu OK kopā ar neobligātu tagu un tagu vērtību sarakstu (skatiet opciju Apstrādāt tagus) vai kļūdas virkni.

Ņemiet vērā, ka skripts tiek izpildīts tikai pēc brīdinājuma izveides. Ja skripts ir konfigurēts tagu atgriešanai un apstrādei, šie tagi netiks atrisināti {EVENT.TAGS} un {EVENT.RECOVERY.TAGS} makro sākotnējā problēmas ziņojumā un atkopšanas ziņojumos, jo skriptam vēl nebūs bijis laika izpildīties.
Piezīme: Ieteicams izmantot lokālos mainīgos (piemēram, var local = 1), nevis globālos mainīgos (piemēram, global = 1), lai nodrošinātu, ka katrs skripts darbojas ar saviem datiem, un izvairītos no sadursmēm vienlaicīgu izsaukumu laikā (skatiet zināmās problēmas).

Skatiet arī: Webhook izstrādes vadlīnijas, Webhook skriptu piemēri, Papildu JavaScript objekti.
Noildze JavaScript izpildes noildze (1–60 s, pēc noklusējuma 30 s).<brTiek atbalstīti laika sufiksi (piemēram, 30s, 1m).
Apstrādāt tagus Atzīmējiet izvēles rūtiņu, lai atgriezto JSON rekvizītu vērtības apstrādātu kā tagus. Šie tagi tiek pievienoti visiem esošajiem problēmas tagiem.
Ņemiet vērā, ka, izmantojot webhook tagus, webhook jāatgriež JSON objekts, kas satur vismaz tukšu tagu objektu: var result = {tags: {}};
Atgriežamo tagu piemēri: jira-id:prod-1234, responsible:John Smith, processed:<no value>
Iekļaut notikumu izvēlnes ierakstu Atzīmējiet izvēles rūtiņu, lai notikumu izvēlnē iekļautu ierakstu, kas novirza uz izveidotu ārēju biļeti.
Ieraksts tiks iekļauts katram iespējotam webhook, kuram šī izvēles rūtiņa ir atzīmēta. Ņemiet vērā: ja parametri Izvēlnes ieraksta nosaukums un Izvēlnes ieraksta URL satur kādu no {EVENT.TAGS.<tag name>} makro, ieraksts tiks iekļauts tikai tad, ja šos makro var atrisināt (tas ir, notikumam ir definēti šie tagi).
Ja šī opcija ir atzīmēta, webhook nevajadzētu izmantot paziņojumu sūtīšanai dažādiem lietotājiem (tā vietā apsveriet iespēju izveidot īpašu lietotāju), kā arī to nevajadzētu izmantot vairākās brīdinājumu darbībās vienam problēmas notikumam.
Izvēlnes ieraksta nosaukums Norādiet izvēlnes ieraksta nosaukumu.<br[Tiek atbalstīts]({EVENT.TAGS.<tag name>}](/manual/appendix/macros/supported_by_location#events) makro.
Šis lauks ir obligāts tikai tad, ja ir atzīmēta opcija Iekļaut notikumu izvēlnes ierakstu.
Izvēlnes ieraksta URL Norādiet izvēlnes ieraksta pamatā esošo URL.
{EVENT.TAGS.<tag name>} makro tiek atbalstīts.
Šis lauks ir obligāts tikai tad, ja ir atzīmēta opcija Iekļaut notikumu izvēlnes ierakstu.

Detalizētu informāciju par noklusējuma ziņojumu un brīdinājumu apstrādes opciju konfigurēšanu skatiet sadaļā kopīgie datu nesēja tipa parametri.

Pat ja webhook neizmanto noklusējuma ziņojumus, šim webhook izmantotajiem darbību tipiem joprojām ir jābūt definētām ziņojumu veidnēm.

Testēšana

Lai pārbaudītu konfigurētu webhook mediju tipu:

  1. Atrodiet attiecīgo webhook sarakstā ar mediju tipiem.
  2. Noklikšķiniet uz Test saraksta pēdējā kolonnā (tiks atvērts testēšanas logs).
  3. Pēc vajadzības rediģējiet webhook parametru vērtības. Aizstājiet makro ar piemēra vērtībām; pretējā gadījumā makro netiks atrisināti, un tests neizdosies.
  4. Noklikšķiniet uz Test.

Vērtību aizstāšana vai dzēšana testēšanas logā ietekmē tikai testēšanas procedūru, faktiskās webhook atribūtu vērtības paliks nemainīgas.

Lai skatītu mediju tipa testa žurnāla ierakstus, neatstājot testēšanas logu, noklikšķiniet uz Open log (tiks atvērts jauns uznirstošais logs).

Ja webhook tests ir veiksmīgs:

  • tiek parādīts ziņojums "Media type test successful.".
  • servera atbilde tiek parādīta pelēkajā laukā Response.
  • zem lauka Response tiek norādīts atbildes tips (JSON vai String).

Ja webhook tests neizdodas:

  • tiek parādīts ziņojums "Media type test failed.", kam seko papildu informācija par kļūmi.

Lietotāja medijs

Kad medija tips ir konfigurēts, dodieties uz sadaļu Users > Users un piešķiriet webhook mediju esošam lietotājam vai izveidojiet jaunu lietotāju, kas pārstāvēs webhook. Darbības, kā iestatīt lietotāja mediju esošam lietotājam, kas ir kopīgas visiem mediju tipiem, ir aprakstītas lapā Mediju tipi.

Ja webhook izmanto birkas, lai glabātu pieteikuma\ziņojuma ID, nepiešķiriet vienu un to pašu webhook kā mediju dažādiem lietotājiem, jo tas var izraisīt webhook kļūdas (attiecas uz lielāko daļu webhook, kas izmanto opciju Include event menu entry). Šādā gadījumā ieteicamā prakse ir izveidot atsevišķu lietotāju, kas pārstāvēs webhook:

  1. Pēc webhook medija tipa konfigurēšanas dodieties uz sadaļu Users > Users un izveidojiet atsevišķu Zabbix lietotāju, kas pārstāvēs webhook — piemēram, ar lietotājvārdu Slack Slack webhook vajadzībām. Visus iestatījumus, izņemot mediju, var atstāt pēc noklusējuma, jo šis lietotājs nepieslēgsies Zabbix.
  2. Lietotāja profilā atveriet cilni Media un pievienojiet webhook, norādot nepieciešamo kontaktinformāciju. Ja webhook neizmanto lauku Send to, ievadiet jebkādu atbalstīto rakstzīmju kombināciju, lai apietu validācijas prasības.
  3. Piešķiriet šim lietotājam vismaz lasīšanas atļaujas visiem hostiem, kuriem tam jānosūta brīdinājumi.

Konfigurējot brīdinājumu darbību, laukā Send to users sadaļā Operation details pievienojiet šo lietotāju — tas norādīs Zabbix izmantot webhook paziņojumiem no šīs darbības.

Brīdinājumu darbību konfigurēšana

Darbības nosaka, kuri paziņojumi jānosūta, izmantojot webhook. Darbību konfigurēšanas soļi, kuros tiek izmantoti webhook, ir tādi paši kā visiem citiem mediju tipiem, izņemot šādus gadījumus:

  • Ja webhook izmanto webhook tagus, lai saglabātu biļetes\ziņojuma ID un apstrādātu atjaunināšanas\atrisināšanas darbības, izvairieties no viena un tā paša webhook izmantošanas vairākās brīdinājumu darbībās vienam problēmas notikumam. Ja {EVENT.TAGS.<tag name>} pastāv un tiek atjaunināts webhook, tā iegūtā vērtība būs nedefinēta. Lai no tā izvairītos, izmantojiet webhook jaunu taga nosaukumu atjaunināto vērtību glabāšanai. Tas attiecas uz Jira, Jira Service Desk, Mattermost, Opsgenie, OTRS, Redmine, ServiceNow, Slack, Zammad un Zendesk webhook, ko nodrošina Zabbix, kā arī uz lielāko daļu webhook, kas izmanto opciju Include event menu entry. Tomēr ņemiet vērā, ka vienu webhook var izmantot vairākās vienas un tās pašas darbības operācijās vai eskalācijas soļos, kā arī dažādās darbībās, kuras netiks aktivizētas ar vienu un to pašu problēmas notikumu atšķirīgu nosacījumu dēļ.
  • Izmantojot webhook darbībās iekšējiem notikumiem, noteikti atzīmējiet izvēles rūtiņu Custom message un definējiet pielāgotu ziņojumu darbības operācijas konfigurācijā. Pretējā gadījumā paziņojums netiks nosūtīts.