PagerDuty – налаштування інтеграції з zabbix

В межах глобальних завдань по моніторингу випала змога ознайомитись з PagerDuty та налаштувати інтеграцію з системою моніторингу Zabbix. На даному етапі розглянемо тільки інтеграцію а ознайомлення та налаштування делегувань буде в окрземих публікаціях.

Як працюватиме інтеграція? Все відбувається за допомогою webhook та PagerDuty Event API v2. Використовується користувач в Zabbix для PagerDuty, через якого відбувається відправка сповіщень коли було знайдено пробему. Проте є й нюанси, так як це не повноцінна інтеграція ми не зможемо взаємодіяти через pagerduty з забіксом (закривати або aсk проблему) проте zabbix буде повідомляти нас про проблеми, підтвердження та їх вирішення й самостійно їх закривати як в Zabbix так PagerDuty.

Процес налаштуванян поділяється на два етапи:

  • Етап1 – створення інтеграції в PagerDuty.
  • Eтап2 – налаштування Zabbix.

Налаштування PagerDuty

Створення інтеграції

Потрібно залогінитись в PagerDuty та обрати пункт Service > Service Discovery:

З правого боку натискаємо на  + New Service:

Перейшли до створення інтеграції. В полі Name* вказуємо назву (в моєму випадку це Zabbix) а в Description можемо дописати для чого ця інтеграція, далі натискаємо Next:

Обираємо Generate a new Escalation Policy, ящо до початку налаштування інтеграції Ви вже створили політику, то її можна обрати в пункт Select an existing Escalation Policy, натискаємо Next:

Обираємо Zabbix, далі натискаємо Create Service:

Інтеграцію створено:

Далі нам знадобиться токен, який ми будемо використовувати в zabbix media type. Для отримання токену натискаємо на інтеграцію, обираємо вкладку Integrations, розгортаємо її. З правого боку бачимо Integration Token:

Основну частину завершено, переходимо до налаштування з боку Zabbix.

Налаштування Zabbix

Для початку потрібно обрати версію Zabbix, для цього переходимо за посиланням тут та обираємо необхідну версію, в моєму випадку че версія 5.0:

Після чого завантажуємо шаблон, перейшовши за посиланям:

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/pagerduty?at=release/5.0

Створення глобального Macros

Administration > General в лівому кутку з`явиться список, в якому потрібно обрати Macros. Додаємо новий макро Macro:{$ZABBIX.URL} | Value: https://your_zabbix_url:

Створення Media Type для PagerDuty

Зараз будемо імпортувати завантажений шаблон, переходимо в Administration > Media Types > Import:

Обираємо завантажений файл, додаємо його, натискаємо Import:

Залишається додати Токен, який ми скопіювали після створення інтеграції в PagerDuty. В MediaType обираємо PagerDuty, шукаємо рядок з token, в нього додаємо токен та зберігаємо:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Створення користувача для PagerDuty сповіщень

Створюємо користувача (або можна використати вже існуючого), в моєму випадку це буде користувач inv, в Permission оберемо права admin:

Далі в media потрібно додати PagerDuty, тиснемо Add:

Після заповнення, натискаємо Update:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

де:

  • Type: обираємо PagerDuty (темплейт який ми додали);
  • Send to: кому або куди будемо відправляти (для інформативності);
  • Use if severity: при яких типав сповіщень використовувати нотифікацію;

Медіа додано, залишається зберегти, та перейти до екшенів, натискаємо Update:

Тепер потрібно обрати подію на яку буде спрацьовувати webhook. Переходимо в Configuration > Action, обираємо необхідний Action, обираємо вкладку Operations:

В моєму випадку з даним екшеном потрібно у всі три пункти Operations / Recovery operations / Update operations додати відправку в PagerDuty. Для цього по черзі в кожному з пунктів натискаємо Add:

де:

  • Operation Type: обираємо Send Message;
  • Send to Users: обираємо створеного користувача inv;
  • Send only to: вказуємо PagerDuty;

Після додавання бачимо наступне:

Натискаємо Update та переходимо до перевірки сповіщень.

Перевірка

Для перевірки ми зупинемо на одному з серверів zabbix-agent та будемо спостерігати. Ось що бачимо через браузер:

трішки детальніше:

Після того як проблему буде вирішено, забікс відправить webhook, проблема автоматично закриється.

Розглянемо як відобрадається сповіщення в додатку:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Щож, інтеграцію налаштували, далі залишається створити графіки чергувань, налаштувати делегування та перевірити роботу дзвінків.

Click to rate this post!
[Total: 0 Average: 0]