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
Tālāk norādītās integrācijas ir pieejamas, ļaujot izmantot iepriekš definētus webhook multivides tipus, lai nosūtītu Zabbix paziņojumus uz:
- brevis.one
- Discord
- Event-Driven Ansible
- Express.ms messenger
- GitHub
- GLPI
- IBM Maximo Service Request
- iLert
- iTop
- Jira
- Jira Service Management
- ManageEngine ServiceDesk
- Mantis Bug Tracker
- Mattermost
- MS Teams Workflows
- LINE
- Opsgenie
- OTRS CE
- Pagerduty
- Pushover
- Redmine
- Rocket.Chat
- ServiceNow
- SIGNL4
- Slack
- SolarWinds
- SysAid
- Telegram
- TOPdesk
- VictorOps
- Zammad
- Zendesk
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 helpdesk e-pasta adresi (piem., [email protected]) norādīta Zabbix lietotāja profila iestatījumos.
Konfigurēšana
Lai sāktu izmantot webhook integrāciju:
- Atrodiet nepieciešamo
.yamlfailu lejupielādētās Zabbix versijastemplates/mediadirektorijā vai lejupielādējiet to no Zabbix git repozitorija. - Importējiet failu savā Zabbix instalācijā.
webhook tiks parādīts multivides tipu sarakstā. - Konfigurējiet webhook saskaņā ar
Readme.mdfailā sniegtajiem norādījumiem (lai ātri piekļūtuReadme.md, varat noklikšķināt uz webhook nosaukuma iepriekš).
Lai izveidotu pielāgotu webhook no jauna:
- Dodieties uz Brīdinājumi > Multivides tipi.
- Noklikšķiniet uz Izveidot multivides tipu.
- Formā ievadiet webhook multivides tipa parametrus.
Cilnē Multivides tips ir ietverti dažādi šim multivides tipam specifiski atribūti:

Visi obligātie ievades lauki ir atzīmēti ar sarkanu zvaigznīti.
Tālāk norādītie parametri ir specifiski webhook multivides tipam:
| Parametrs | Apraksts |
|---|---|
| Parametri | Norādiet webhook mainīgos kā atribūtu un vērtību 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ī makro {ALERT.SENDTO}, {ALERT.SUBJECT} un {ALERT.MESSAGE}. 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 izpildīs 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. Atkopšanas notikumus (neatkarīgi no tā, vai tie ģenerēti automātiski vai manuālas aizvēršanas rezultātā) izveido serveris, un tie ietver atrisinātos notikuma tagus (tostarp tagus, kas mantoti no veidnēm, hostiem un trigeriem). Webhook skripti tiek izpildīti pēc brīdinājuma izveides; tādēļ webhook skripta atgrieztie tagi tiek pievienoti tikai pēc sākotnējās brīdinājuma izveides un nebūs pieejami sākotnējā problēmas ziņojuma vai tūlītējā atkopšanas ziņojuma {EVENT.TAGS} un {EVENT.RECOVERY.TAGS} makro.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 konfliktiem 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 izveidoto ārējo pieteikumu. 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ī nevajadzētu to izmantot vairākās brīdinājumu darbībās vienam problēmas notikumam. |
| Izvēlnes ieraksta nosaukums | Norādiet izvēlnes ieraksta nosaukumu. Tiek atbalstīts {EVENT.TAGS.<tag name>} 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. Tiek atbalstīts {EVENT.TAGS.<tag name>} makro. Š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 multivides tipa parametri.
Pat ja webhook neizmanto noklusējuma ziņojumus, ziņojumu veidnes darbību tipiem, ko izmanto šis webhook, joprojām ir jādefinē.
Testēšana
Lai pārbaudītu konfigurētu webhook multivides tipu:
- Atrodiet attiecīgo webhook multivides tipu sarakstā.
- Saraksta pēdējā kolonnā noklikšķiniet uz Test (tiks atvērts testēšanas logs).
- Pēc nepieciešamī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. - 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ītas.

Lai skatītu multivides tipa testa žurnāla ierakstus, neaizverot 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 multivide
Kad multivides tips ir konfigurēts, dodieties uz sadaļu Users > Users un piešķiriet webhook multividi esošam lietotājam vai izveidojiet jaunu lietotāju, kas pārstāvēs webhook.
Darbības lietotāja multivides iestatīšanai esošam lietotājam, kas ir kopīgas visiem multivides tipiem, ir aprakstītas lapā Media types.
Ja webhook izmanto tagus, lai saglabātu biļetes\ziņojuma ID, nepiešķiriet to pašu webhook kā multividi dažādiem lietotājiem, jo tas var izraisīt webhook kļūdas (tas attiecas uz lielāko daļu webhook, kas izmanto opciju Include event menu entry). Šādā gadījumā ieteicams izveidot īpašu lietotāju, kas pārstāvēs webhook:
- Pēc webhook multivides tipa konfigurēšanas dodieties uz sadaļu Users > Users un izveidojiet īpašu Zabbix lietotāju, kas pārstāvēs webhook, piemēram, lietotāju ar lietotājvārdu Slack Slack webhook vajadzībām. Visus iestatījumus, izņemot multividi, var atstāt pēc noklusējuma, jo šis lietotājs nepieteiksies Zabbix.
- Lietotāja profilā dodieties uz 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.
- Piešķiriet šim lietotājam vismaz lasīšanas atļaujas visiem hostiem, kuriem tam jānosūta brīdinājumi.
Konfigurējot brīdinājuma darbību, laukā Send to users sadaļā Operation details pievienojiet šo lietotāju — tādējādi Zabbix izmantos webhook paziņojumiem no šīs darbības.
Brīdinājumu darbību konfigurēšana
Darbības nosaka, kuri paziņojumi ir jānosūta, izmantojot webhook. Soļi darbību konfigurēšanai, kas saistīti ar 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 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ā rezultējošā vērtība būs nenoteikta. Lai no tā izvairītos, webhook izmantojiet jaunu taga nosaukumu atjaunināto vērtību saglabāš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 viens webhook var tikt izmantots 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, kas netiks aktivizētas ar 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 darbības operācijas konfigurācijā definējiet pielāgotu ziņojumu. Pretējā gadījumā paziņojums netiks nosūtīts.