Моніторинг
Інтеграція з Zabbix
Огляд
Готовий шаблон Zabbix, що опитує API здоров'я SecondDNS через HTTP Agent кожні 5 хвилин, витягує лічильники зон через JSONPath та запускає тригери, коли зони стають stale або unreachable.
Вимоги
- Zabbix Server 6.0+ (підтримка HTTP Agent)
- API-ключ SecondDNS (Dashboard → API Key)
- Хост у Zabbix для прикріплення шаблону (може бути сам Zabbix-сервер)
1. Завантажте шаблон
curl -O https://raw.githubusercontent.com/seconddns/dns_integrations/main/zabbix_templates/seconddns_health.yamlДжерело: github.com/seconddns/dns_integrations/zabbix_templates
2. Імпортуйте в Zabbix
- Перейдіть до Configuration → Templates → Import
- Виберіть завантажений seconddns_health.yaml
- Натисніть Import
3. Налаштуйте макроси
Прив'яжіть шаблон до хоста, потім задайте макроси:
{$SECONDDNS_API_URL}https://seconddns.com (за замовчуванням, змініть для self-hosted){$SECONDDNS_API_KEY}Ваш API-ключ (зберігається як Secret text у Zabbix)4. Що ви отримуєте
Елементи
| Елемент | Тип | Інтервал |
|---|---|---|
| Zone health JSON | HTTP Agent | 5m |
| Загальна кількість зон | Dependent (JSONPath) | — |
| Синхронізовані зони | Dependent (JSONPath) | — |
| Застарілі зони | Dependent (JSONPath) | — |
| Master unreachable | Dependent (JSONPath) | — |
| Nagios output | HTTP Agent | 5m |
Тригери
| Тригер | Важливість |
|---|---|
| Зона(и) stale | Warning |
| Зона(и) master unreachable | High |
| Health API не відповідає (30 хв) | High |
Як це працює
- Основний елемент (seconddns.health.json) отримує GET /api/health/zones кожні 5 хвилин
- Залежні елементи витягують $.summary.total, $.summary.synced тощо через JSONPath — без додаткових HTTP-запитів
- Тригери оцінюють лічильники: якщо stale > 0 → Warning, якщо masterUnreachable > 0 → High
- Елемент Nagios output (seconddns.health.nagios) отримує ?format=nagios для зрозумілого тексту у вікні "Latest data"