4 Вебхук

Преглед

Тип медија вебхук је користан за упућивање HTTP позива користећи прилагођено JavaScript код за једноставну интеграцију са спољним софтвером као што су системи за подршку, ћаскање или гласници. Можете изабрати увоз интеграцију коју обезбеђује Zabbix или креирајте прилагођену интеграцију од огребати.

Интеграције

Доступне су следеће интеграције које омогућавају коришћење унапред дефинисаних типова вебхукова за слање Zabbix обавештења на:

Поред сервиса наведених овде, Zabbix се може интегрисати са Spiceworks (није потребан вебхук). Да бисте конвертовали Zabbix обавештења у Spiceworks тикете, креирајте тип медија за имејл и унесите Spiceworks имејл адресу службе за помоћ (нпр. [email protected]) у подешавањима профила одређеног Zabbix корисника.

Конфигурација

Да бисте почели да користите интеграцију вебхука:

  1. Пронађите потребну .xml датотеку у директоријуму templates/media преузете верзије Zabbix-а или је преузмите из Zabbix git репозиторијума.

  2. Увезите датотеку у вашу Zabbix инсталацију. Вебхук ће се појавити на листи типова медија.

  3. Конфигуришите вебхук према упутствима у датотеци Readme.md (можете кликнути на име вебхука изнад да бисте брзо приступили Readme.md).

Да бисте креирали прилагођени вебхук од нуле:

  1. Идите на Упозорења → Типови медија.
  2. Кликните на Креирај тип медија.

Картица Тип медија садржи различите атрибуте специфичне за овај тип медија:

Сва обавезна поља за унос су означена црвеном звездицом.

Следећи параметри су специфични за тип медија вебхука:

Parameter Description
* Parameters* Наведите променљиве вебхука као парове атрибута и вредности.
За унапред конфигурисане вебхукове, листа параметара варира у зависности од услуге. Проверите датотеку Readme.md вебхука за опис параметара.
За нове вебхукове, неколико уобичајених променљивих је подразумевано укључено (URL:<empty>, HTTPProxy:<empty>, To:{ALERT.SENDTO}, Subject:{ALERT.SUBJECT}, Message:{ALERT.MESSAGE}), слободно их задржите или уклоните.

Параметри вебхука подржавају корисничке макрое, све макрое који су подржани у обавештењима о проблемима и, поред тога, макрое {ALERT.SENDTO}, {ALERT.SUBJECT} и {ALERT.MESSAGE}.

Ако наведете HTTP прокси, поље подржава исту функционалност као у пољу за конфигурацију ставке HTTP proxy. Прокси стринг може имати префикс [шема]:// да би се назначила која врста проксија се користи (нпр., https, socks4, socks5; погледајте документацију).
* Script* Унесите JavaScript код у модални едитор који се отвара кликом на поље параметра или на икону оловке поред њега. Овај код ће извршити операцију вебхука.
Скрипта је функционални код који прихвата парове параметар - вредност. Вредности треба конвертовати у JSON објекте користећи JSON.parse() методу, на пример: var params = JSON.parse(вредност);.

Код има приступ свим параметрима, може да извршава HTTP GET, POST, PUT и DELETE захтеве и има контролу над HTTP заглављима и телом захтева.
Скрипта мора да садржи оператор враћања, у супротном неће бити валидна. Може вратити статус "ОК" заједно са опционом листом ознака и вредности ознака (погледајте опцију Обради ознаке) или низом грешке.

Имајте на уму да се скрипта извршава тек након што се креира упозорење. Ако је скрипта конфигурисана да враћа и обрађује ознаке, ове ознаке се неће решити у макроима {EVENT.TAGS} и {EVENT.RECOVERY.TAGS} у почетној поруци о проблему и порукама о опоравку јер скрипта још није имала времена да се покрене.
Напомена: Препоручује се коришћење локалних променљивих (нпр. var local = 1) уместо глобалне (нпр. global = 1) како би се осигурало да свака скрипта ради на сопственим подацима и да би се избегле колизије између истовремених позива (погледајте познати проблеми).

Погледајте такође: Смернице за развој вебхукова, Примери вебхукових скрипти, Додатни JavaScript објекти.
* Timeout* Временско ограничење извршавања JavaScript-а (1-60s, подразумевано 30s).
Подржани су временски суфикси, нпр. 30s, 1m.
Process tags Означите поље за потврду да бисте обрадили враћене вредности JSON својстава као ознаке. Ове ознаке се додају свим постојећим ознакама проблема.
Имајте на уму да када користите webhook ознаке, webhook мора вратити JSON објекат који садржи барем један празан објекат ознака: var result = {tags: {}};
Примери ознака које се могу вратити: jira-id:prod-1234, responsible:John Smith, processed:<без вредности>
Include event menu entry Означите поље за потврду да бисте укључили ставку у мени догађаја која води до креиране екстерне карте.
За сваки вебхук који је омогућен и за који је ово поље за потврду означено, биће укључен ставка. Имајте на уму да ако параметри Назив ставке менија и URL ставке менија садрже било које макрое {EVENT.TAGS.<назив ознаке>}, ставка ће бити укључена само ако се ови макрои могу решити (то јест, догађај има дефинисане ове ознаке).
Ако је означено, вебхук не би требало да се користи за слање обавештења различитим корисницима (размислите о креирању наменског корисника уместо тога) и не би требало да се користи у вишеструким акцијама упозорења за један проблематични догађај.
Menu entry name Наведите назив ставке менија.
Макро {EVENT.TAGS.<назив ознаке>} је подржан.
Ово поље је обавезно само ако је означено Укључи ставку менија догађаја.
Menu entry URL Наведите основни URL ставке менија.
Макро {EVENT.TAGS.<назив ознаке>} је подржан.
Ово поље је обавезно само ако је означено Укључи ставку менија догађаја.

Погледајте параметри заједничког типа медија за детаље о томе како конфигурисати подразумеване поруке и опције обраде упозорења.

Чак и ако вебхук не користи подразумеване поруке, шаблони порука за типове операција које користи овај вебхук и даље морају бити дефинисани.

Тестирање типа медија

Да бисте тестирали конфигурисани тип медија вебхука:

  1. Пронађите одговарајући вебхук у листи типова медија.
  2. Кликните на Тест у последњој колони листе (прозор за тестирање отвориће се).
  3. Измените вредности параметара вебхука, ако је потребно.
  4. Кликните на Тест.

Подразумевано, вебхук тестови се изводе са параметрима унетим током конфигурацију. Међутим, могуће је променити вредности атрибута за тестирање. Замена или брисање вредности у прозору за тестирање утиче на само за процедуру тестирања, стварне вредности атрибута вебхук-а ће остати непромењена.

Да бисте видели уносе тестног дневника типа медија без напуштања прозора теста, кликните на Отвори дневник (отвориће се нови искачући прозор).

Ако је тест вебхука успешан:

  • Приказује се порука "Тест медија је успешан.".
  • Одговор сервера се појављује у сивом пољу Одговор. – Тип одговора (JSON или Стринг) је наведен испод Одговора поље.

Ако тест вебхука не успе:

  • Приказаће се порука "Тест медија типа није успео.", а затим и додатни детаљи квара.

Кориснички медији

Када је тип медија конфигурисан, идите на одељак Корисници → Корисници и доделите вебхуков медији постојећем кориснику или креирајте новог корисника који ће представљати вебхук. Кораци за подешавање корисничких медија за постојећег корисника, који су заједнички за све типове медија, описани су на страници Типови медија.

Ако вебхук користи ознаке за чување ID-а тикета\поруке, избегавајте додељивање истог вебхука као медија различитим корисницима јер то може изазвати грешке вебхука (односи се на већину вебхукова који користе опцију Укључи догађај унос у менију). У овом случају, најбоља пракса је креирање наменског корисника који ће представљати вебхук:

  1. Након конфигурисања типа медија вебхука, идите на одељак Корисници → Корисници и креирајте наменског Zabbix корисника који ће представљати вебхук - на пример, са корисничким именом Slack за Slack вебхук. Сва подешавања, осим медија, могу се оставити на подразумеваним вредностима јер се овај корисник неће пријављивати на Zabbix.
  2. У корисничком профилу, идите на картицу Медији и додајте вебхук са потребним контакт информацијама. Ако вебхук не користи поље Пошаљи на, унесите било коју комбинацију подржаних знакова да бисте заобишли захтеве за валидацију.
  3. Доделите овом кориснику барем дозволе за читање дозволе свим хостовима за које треба да шаље упозорења.

Приликом конфигурисања акције упозорења, додајте овог корисника у поље Пошаљи корисницима у Детаљима операције - ово ће рећи Zabbix-у да користи вебхук за обавештења из ове акције.

Конфигурисање акција упозорења

Акције одређују која обавештења треба слати путем вебхука. Кораци за конфигурисање акција које укључују вебхукове су исти као и за све остале типове медија, са овим изузецима:

  • Ако вебхук користи webhook тагови за чување ID-а поруке и руковање операцијама ажурирања/решавања, избегавајте коришћење истог вебхука у више акција упозорења за један проблемски догађај. Ако {EVENT.TAGS.<назив ознаке>} постоји и ажурира се у вебхуку, његова резултујућа вредност ће бити недефинисана. Да бисте то избегли, користите ново име ознаке у вебхуку за чување ажурираних вредности. Ово се односи на вебхукове Jira, Jira Service Desk, Mattermost, Opsgenie, OTRS, Redmine, ServiceNow, Slack, Zammad, и Zendesk које пружа Zabbix и на већину вебхукова који користе опцију Укључи унос у мени догађаја. Међутим, имајте на уму да се један вебхук може користити у више операција или корака ескалације исте акције, као и у различитим акцијама које неће бити покренуте истим проблемским догађајем због различитих услова.
  • Када користите вебхук у акцијама за интерне догађаје, обавезно означите поље за потврду Прилагођена порука и дефинишите прилагођену поруку у конфигурацији операције акције. У супротном, обавештење неће бити послато.