4 Вебхук

Преглед

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

Интеграције

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Погледајте и: Смернице за развој Вебхук-а, Вебхук скрипта примери, Додатни JavaScript објекти.
* Timeout* Време је истекло за извршавање JavaScript-а ( 1-60с, подразумевано 30с).
Подржани су временски суфикси, нпр. 30с, 1м.

|Обради ознаке|Означи поље за потврду да враћене вредности JSON својства обрађују као ознаке. Ове ознаке се додају свим постојећим ознакама проблема.
Имајте на уму да када користите вебхук ознаке, вебхук мора да врати JSON објекат који садржи најмање празан објекат ознака: var result = {tags: {}};
Примери ознака које се могу вратити: jira-id:prod-1234, responsible:John Smith, processed:<no value>| |Include event menu entry|Означите поље за потврду да бисте укључили унос у мени догађаја који повезује са креираном спољном тикетом.
Унос ће бити укључен за сваки вебхук који је омогућен и који има означено ово поље за потврду. Имајте на уму да ако параметри Назив уноса менија и * URL уноса менија* садрже било које макрое {EVENT.TAGS.<tag name>}, унос ће бити укључен само ако се ови макрои могу решити (то јест, догађај има ове ознаке дефинисане).
Ако је означено, вебхук не би требало да се користи за слање обавештења различитим корисника (размотрите стварање наменског корисника и не би требало да се користи у више радњи упозорења за један проблемски догађај.| |Menu entry name|Наведите унос менија име.
{EVENT.TAGS.<tag name>} макро је подржан.
Ово поље је обавезно само ако је означено Укључи унос менија догађаја .| |Menu entry URL|Наведите основни URL уноса менија.
{EVENT.TAGS.<tag name>} макро је подржан.
Ово поље је обавезно само ако је означено Укључи унос менија догађаја.|

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Након конфигурисања типа медија веб-хука, идите на одељак Корисници →Корисници и креирајте наменског Zabbix корисника који ће представљати вебхук - на пример, са корисничко име * Slack* за Slack вебхук. Сва подешавања, осим медија, могу бити остављена на подразумеване вредности јер се овај корисник неће пријављује на Zabbix.

  2. У корисничком профилу идите на картицу Медиjа и додати вебвук са потребним контакт информацијама. Ако веб-хук не користи поље Send to, унесите било коју комбинацију подржаних знакова да бисте заобишли захтеве валидације.

  3. Омогућите овом кориснику најмање реаддозволе свим домаћинима за које требало би да шаље упозорења.

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

Конфигурисање радњи упозорења

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

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

Имајте на уму, међутим, да се један вебхук може користити у више операцијама или корацима ескалације исте радње, као и у различитим радњама које неће бити покренуте истим проблемским догађајем због различитих услова. - Када се користи вебхук у акције за интерне догађаје, обавезно означите поље за потврду Прилагођена порука и дефинишите прилагођену поруку у радњи конфигурацију рада. У супротном, обавештење неће бити послато.