[comment]: # ({56bf7160-56bf7160})
# 4 Webhook

[comment]: # ({/56bf7160-56bf7160})

[comment]: # ({02b4d443-6584b266})
#### 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.

[comment]: # ({/02b4d443-6584b266})

[comment]: # ({36dd08c9-27a06b1f})
#### Integrācijas

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

-   [brevis.one](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/brevis.one/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Discord](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/discord/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Event-Driven Ansible](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/event_driven_ansible/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Express.ms
    messenger](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/express.ms/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [GitHub](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/github/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [GLPI](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/glpi/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [IBM Maximo Service Request](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/maximo_service_request/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [iLert](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/ilert/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [iTop](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/itop/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Jira](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/jira/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Jira Service Management](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/jira_service_management/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [ManageEngine ServiceDesk](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/manageengine_servicedesk/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Mantis Bug Tracker](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/mantisbt/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Mattermost](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/mattermost/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [MS Teams](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/msteams/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [MS Teams Workflows](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/msteams-workflow/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [LINE](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/line/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Opsgenie](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/opsgenie/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [OTRS CE](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/otrs_ce/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Pagerduty](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/pagerduty/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Pushover](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/pushover/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Redmine](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/redmine/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Rocket.Chat](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/rocketchat/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [ServiceNow](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/servicenow/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [SIGNL4](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/signl4/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Slack](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/slack/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [SolarWinds](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/solarwinds/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [SysAid](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/sysaid/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Telegram](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/telegram/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [TOPdesk](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/topdesk/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [VictorOps](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/victorops/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Zammad](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/zammad/README.md?at=refs%2Fheads%2Frelease%2F7.4)
-   [Zendesk](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/zendesk/README.md?at=refs%2Fheads%2Frelease%2F7.4)

::: notetip
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](/manual/config/notifications/media/email) un norādiet Spiceworks palīdzības dienesta e-pasta adresi (piem., help\@zabbix.on.spiceworks.com) norādītā Zabbix lietotāja profila iestatījumos.
:::

[comment]: # ({/36dd08c9-27a06b1f})

[comment]: # ({2d7e87a0-d84f1038})
#### Konfigurācija

Lai sāktu izmantot webhook integrāciju:

1.  Atrodiet nepieciešamo .yaml failu lejupielādētās Zabbix versijas direktorijā `templates/media` vai lejupielādējiet to no Zabbix [git repozitorija](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media?at=refs%2Fheads%2Frelease%2F7.4).
2.  [Importējiet](/manual/xml_export_import/media#importing) failu savā Zabbix instalācijā.
Webhook parādīsies mediju tipu sarakstā.
3.  Konfigurējiet webhook saskaņā ar norādījumiem failā *Readme.md* (varat noklikšķināt uz webhook nosaukuma augstāk, lai ātri atvērtu *Readme.md*).

Lai izveidotu pielāgotu webhook no nulles:

1.  Dodieties uz *Alerts > Media types*.
2.  Noklikšķiniet uz *Create media type*.

Cilnē **Media type** ir dažādi šim mediju tipam specifiski atribūti:

![](../../../../../assets/en/manual/config/notifications/media/media_webhook_express.png){width="600"}

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

Tālāk norādītie parametri ir specifiski webhook mediju tipam:

|Parameter|Description|
|--|--------|
|*Parameters*|Norādiet webhook mainīgos kā atribūtu un vērtību pārus.<br>Iepriekš konfigurētiem webhook parametru saraksts atšķiras atkarībā no pakalpojuma. Parametru aprakstu skatiet webhook failā *Readme.md*.<br>Jauniem webhook pēc noklusējuma ir iekļauti vairāki kopīgi mainīgie (URL:<empty>, HTTPProxy:<empty>, To:{ALERT.SENDTO}, Subject:{ALERT.SUBJECT}, Message:{ALERT.MESSAGE}); tos varat paturēt vai noņemt.<br><br>Webhook parametri atbalsta [lietotāja makro](/manual/appendix/macros/supported_by_location_user), visus [makro](/manual/appendix/macros/supported_by_location), kas tiek atbalstīti problēmu paziņojumos, kā arī {ALERT.SENDTO}, {ALERT.SUBJECT} un {ALERT.MESSAGE} makro.<br><br>Ja norādāt HTTP starpniekserveri, lauks atbalsta tādu pašu funkcionalitāti kā vienuma konfigurācijas laukā [HTTP proxy](/manual/config/items/itemtypes/http#configuration). Starpniekservera virknei var pievienot prefiksu `[scheme]://`, lai norādītu, kāda veida starpniekserveris tiek izmantots (piem., https, socks4, socks5; skatiet [dokumentāciju](https://curl.haxx.se/libcurl/c/CURLOPT_PROXY.html)).|
|*Script*|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.<br>Skripts ir funkcijas kods, kas pieņem parametru un vērtību pārus. Vērtības jākonvertē JSON objektos, izmantojot JSON.parse() metodi, piemēram: `var params = JSON.parse(value);`.<br><br>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.<br>Skriptā obligāti jābūt return operatoram, pretējā gadījumā tas nebūs derīgs. Tas var atgriezt OK statusu kopā ar neobligātu tagu un taga vērtību sarakstu (skatiet opciju *Process tags*) vai kļūdas virkni.<br><br>Ņemiet vērā, ka skripts tiek izpildīts tikai pēc brīdinājuma izveides. Ja skripts ir konfigurēts atgriezt un apstrādāt tagus, šie tagi netiks atrisināti {EVENT.TAGS} un {EVENT.RECOVERY.TAGS} makros sākotnējā problēmas ziņojumā un atkopšanas ziņojumos, jo skriptam vēl nebūs bijis laika izpildīties.<br>*Piezīme*: Ieteicams izmantot lokālos mainīgos (piem., `var local = 1`) globālo mainīgo vietā (piem., `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](/manual/installation/known_issues#preprocessing--global-variables-are-unsafe)).<br><br>Skatiet arī: [Webhook izstrādes vadlīnijas](https://www.zabbix.com/documentation/guidelines/en/webhooks), [Webhook skriptu piemēri](/manual/config/notifications/media/webhook/webhook_examples), [Papildu JavaScript objekti](/manual/config/items/preprocessing/javascript/javascript_objects).<br>|
|*Timeout*|JavaScript izpildes noildze (1-60 s, noklusējums 30 s).<br>Tiek atbalstīti laika sufiksi, piemēram, 30s, 1m.|
|*Process tags*|Atzīmējiet izvēles rūtiņu, lai apstrādātu atgrieztās JSON īpašību vērtības kā tagus. Šie tagi tiek pievienoti jebkuriem esošajiem problēmas tagiem.<br>Ņemiet vērā, ka, izmantojot [webhook tagus](https://www.zabbix.com/documentation/guidelines/en/webhooks#webhook-tags), webhook jāatgriež JSON objekts, kas satur vismaz tukšu tags objektu: `var result = {tags: {}};`<br>Tagu piemēri, ko var atgriezt: *jira-id:prod-1234*, *responsible:John Smith*, *processed:<no value>*|
|*Include event menu entry*|Atzīmējiet izvēles rūtiņu, lai [notikuma izvēlnē](/manual/web_interface/menu/event_menu) iekļautu ierakstu ar saiti uz izveidotu ārējo biļeti.<br>Ieraksts tiks iekļauts katram iespējotajam webhook, kuram šī izvēles rūtiņa ir atzīmēta. Ņemiet vērā: ja parametros *Menu entry name* un *Menu entry URL* ir kādi [{EVENT.TAGS.<tag name>}](/manual/appendix/macros/supported_by_location#events) makro, ieraksts tiks iekļauts tikai tad, ja šos makro varēs atrisināt (tas ir, notikumam būs definēti šie tagi).<br>Ja ir atzīmēts, webhook nevajadzētu izmantot paziņojumu sūtīšanai dažādiem lietotājiem (apsveriet iespēju izveidot [atsevišķu lietotāju](/manual/config/notifications/media/webhook#user-media) tā vietā), un to nevajadzētu izmantot vairākās brīdinājumu darbībās [vienam problēmas notikumam](/manual/config/notifications/media/webhook#configuring-alert-actions).|
|*Menu entry name*|Norādiet izvēlnes ieraksta nosaukumu.<br>Tiek atbalstīts [{EVENT.TAGS.<tag name>}](/manual/appendix/macros/supported_by_location#events) makro.<br>Šis lauks ir obligāts tikai tad, ja ir atzīmēts *Include event menu entry*.|
|*Menu entry URL*|Norādiet izvēlnes ieraksta pamatā esošo URL.<br>Tiek atbalstīts [{EVENT.TAGS.<tag name>}](/manual/appendix/macros/supported_by_location#events) makro.<br>Šis lauks ir obligāts tikai tad, ja ir atzīmēts *Include event menu entry*.|

Sīkāku informāciju par noklusējuma ziņojumu un brīdinājumu apstrādes opciju konfigurēšanu skatiet [kopējos mediju tipa parametros](/manual/config/notifications/media#common-parameters).

::: notewarning
Pat ja webhook neizmanto noklusējuma ziņojumus, šī webhook izmantoto darbību tipu ziņojumu veidnēm joprojām jābūt definētām.
:::

[comment]: # ({/2d7e87a0-d84f1038})

[comment]: # ({f9688d90-e5e73ea8})
#### Testēšana

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

1.  Atrodiet attiecīgo webhook medija tipu [sarakstā](/manual/config/notifications/media#overview).
2.  Saraksta pēdējā kolonnā noklikšķiniet uz *Test* (tiks atvērts testēšanas logs).
3.  Pēc nepieciešamības rediģējiet webhook parametru vērtības.
Aizstājiet makrosus ar piemēra vērtībām; pretējā gadījumā makrosi 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ītas.

![](../../../../../assets/en/manual/config/webhook_test1.png){width="600"}

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

![](../../../../../assets/en/manual/config/mediatype_test2.png){width="600"}

[comment]: # ({/f9688d90-e5e73ea8})

[comment]: # ({817ae9ce-b2974109})
**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).

[comment]: # ({/817ae9ce-b2974109})

[comment]: # ({d11e9918-abfbc807})
**Ja webhook tests neizdodas:**

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

[comment]: # ({/d11e9918-abfbc807})

[comment]: # ({22965c08-6eeec89a})
#### 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](/manual/config/notifications/media#user-media).

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](/manual/config/notifications/media#user-media), 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](/manual/config/users_and_usergroups/permissions#permissions-to-host-groups) 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.

[comment]: # ({/22965c08-6eeec89a})

[comment]: # ({1b5d3274-ac89791d})
#### Brīdinājumu darbību konfigurēšana

Darbības nosaka, kuri paziņojumi jānosūta, izmantojot webhook.
Darbību [konfigurēšanas](/manual/config/notifications/action) 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](https://www.zabbix.com/documentation/guidelines/en/webhooks#webhook-tags), 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](/manual/config/notifications/action/conditions) dēļ.
-   Izmantojot webhook darbībās [iekšējiem notikumiem](/manual/config/events/sources#internal-events), 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.

[comment]: # ({/1b5d3274-ac89791d})
