Інтеграція Zabbix

Надсилайте тригери Zabbix у дзвінки, Telegram і ланцюги ескалації

Створіть media type Zabbix, що POST-ить JSON у WardenPoint. Severity мапиться у пріоритет сповіщення, контекст тригера потрапляє в журнал аудиту, а recovery надсилає сповіщення про вирішення і скасовує ланцюг ескалації.

Налаштування
Media type
Severity map
1:1
Recovery
Інфо про вирішення

Анатомія тригера Zabbix

LIVE
Zabbix → action
місце на диску < 10% на db-01
WardenPoint
мап severity · вміст · ескалація
Telegram
Voice call
Email

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

Три кроки всередині Zabbix

Уся конфігурація — в Administration Zabbix: media type, прив'язка до user і action.

  1. 1Крок 1

    Створіть media type

    Administration → Media types → Create. Тип 'Webhook', назва 'WardenPoint'. Вставте URL WardenPoint і JSON body template.

    $ Administration › Media types › Create
  2. 2Крок 2

    Прив'яжіть до user

    Administration → Users → оберіть чергового user → Media → Add WardenPoint media. Цього користувача й використовуйте як одержувача операції.

    $ Users › Media › Add
  3. 3Крок 3

    Налаштуйте action

    Configuration → Actions. Оберіть умови тригера і додайте 'Operation' до user WardenPoint.

    $ Actions › Operations › Send to user

Формат у мережі

Body template Zabbix media type

WardenPoint приймає будь-який JSON, який ви шаблонізуєте у media type. Використовуйте макроси Zabbix для контексту тригера.

Zabbix → WardenPoint
wardenpoint-mediatype.jsonJSON
// Zabbix webhook media type — JSON body template.
// Send the raw macros; WardenPoint maps severity and PROBLEM/RESOLVED itself.
{
"event_id": "{EVENT.ID}",
"event_name": "{EVENT.NAME}",
"severity": "{EVENT.SEVERITY}",
"status": "{EVENT.STATUS}",
"host": "{HOST.NAME}",
"operational_data": "{EVENT.OPDATA}",
"trigger_url": "{TRIGGER.URL}",
"tags": "{EVENT.TAGS}"
}
Розсилка WardenPoint
WardenPoint response202
{
"status": "queued",
"notification_uuid": "notif_8h2k7yQrxJp",
"channels_planned": [
"telegram_voice",
"voice_call",
"email"
],
"escalation_chain_id": "esc_4j2k9bMcvL"
}

Маршрутизація-рецепти

Три патерни для Zabbix → WardenPoint

Мапте severity Zabbix і host groups у ланцюги ескалації. Recovery автоматично надсилає сповіщення про вирішення і скасовує ланцюг ескалації.

Severity

Disaster → спочатку телефон

Severity 'Disaster' мапиться у WardenPoint priority 'critical' — спочатку телефон, потім Telegram голос, email на третій хвилині.

match
{TRIGGER.SEVERITY} = Disaster
→ route
priority: critical
Host group

Бази даних → DBA чергування

Створіть окрему інтеграцію WardenPoint, де групою отримувачів є ланцюг чергування DBA, і спрямуйте Zabbix-дію для групи хостів баз даних на URL цієї інтеграції. Ім'я хоста потрапляє у сповіщення через {HOST.NAME} як контекст.

match
дія db-prod
→ route
→ інтеграція DBA
Recovery

Recovery надсилає сповіщення про вирішення

Визначте Recovery-операцію в action Zabbix, яка POST-ить status='resolved' на той самий URL WardenPoint. WardenPoint позначає сповіщення як вирішене, надсилає в ланцюг сповіщення про вирішення, скасовує активну ескалацію і фіксує це в журналі аудиту.

match
{EVENT.RECOVERY.STATUS} = OK
→ route
→ Вирішено

FAQ Zabbix

Часті питання про інтеграцію Zabbix

Так, автоматично. Надсилайте необроблене макро {EVENT.SEVERITY}, а WardenPoint сам зіставить шість рівнів Zabbix — Disaster, High, Average, Warning, Information, Not classified — зі своїми пріоритетами сповіщень. Без ручного зіставлення в шаблоні.
Безкоштовний план

Підключіть одну Zabbix action, перш ніж покладатись на неї

Створіть media type, запустіть тестовий тригер і прочитайте audit-рядок. Без кредитки. Без production-ризику.

  • Severity 1:1
  • Recovery скасовує ескалацію
  • Контекст тригера збережено