Короткий ответ
Полезная карта алертов — это дерево зависимостей + severity + разные media, не «все триггеры в Telegram». При падении шлюза/proxy/10.0.20.50:10051 должен кричать корень, а не 200 agent.ping за ним. CPU Warning не звонит; Disaster недоступности LDAP и диск-timeleft — звонит. Шум порогов: ложные алерты. Молчание: триггер не срабатывает. Доступность слоями: сервис, не только ICMP.
UI zabbix.example. Хосты вроде WS-042 висят на конкретных uplink/proxy — это рёбра карты, их надо нарисовать явно.
Симптомы и как отличить
Типичная картина:
- падение одного коммутатора = 80 SMS;
- дежурный выключает звук на весь Zabbix;
- в тикетах нет корня, есть «всё красное»;
- Warning и Disaster в одном чате без тегов.
Отличия от «просто высокие пороги»: пороги режут flap одного item; карта режет каскад разных хостов. Нужны оба слоя. CPU: пороги. Диск: тренд места.
Возможные причины
- Нет dependencies вообще.
- Все хосты зависят от ICMP
zabbix.example— прячет реальные локальные диски при плановом рестарте UI? Нет: зависимость от сервера мониторинга тушит мир, когда мёртв только UI. Не делайте. - SMS на Information.
- Один action «все группы, все severity».
- Maintenance вместо карты на каждый чих.
- Дубли mediatype retry × 5.
- Редко: циклические зависимости триггеров.
Диагностика
1. Инцидент-разбор
Возьмите последний каскад: Events за 10 минут. Один корневой хост (switch/proxy) и хвост WS-042… Если хвост ушёл в SMS — ребра не настроены.
2. Dependencies в UI
Configuration → Hosts → Triggers → Dependencies. У «Zabbix agent is not available» на хостах филиала должен быть родитель «proxy down» / «gateway icmp down».
3. Actions
Notifications: фильтр severity, host group, time period. Escalation: Warning 30 мин в чат, Disaster сразу SMS. Action log: сколько сообщений на одно падение VLAN.
4. Карта сети UI
Monitoring → Maps — картинка для NOC, не замена trigger dependencies. Можно иметь оба: map для глаз, dependencies для тишины телефона.
Решение
Слой 0. Инвентарь путей
Таблица (ведите вне Zabbix, потом макросы):
- Филиал A: gateway
10.0.30.1→ proxy → хостыWS-042… - ДЦ: ToR → гипервизор → VM
- Сам Zabbix
10.0.20.50мониторится с другого probe, иначе смерть сервера тиха
Слой 1. Сеть
Триггер ICMP шлюза. Дочерние: ICMP хостов за ним, net.tcp.service тех же хостов. Не кладите диск-timeleft в зависимость от ICMP шлюза? Кладите: если хост недостижим, «диск» item nodata всё равно врёт/шумит. Диск зависит от «агент доступен», агент — от «шлюз/proxy». Цепочка: uplink → proxy → agent ping → disk items triggers.
Исключение: item снимается другим путём (SNMP СХД в другой сети) — не вешать на uplink филиала.
Слой 2. Proxy
Proxy не передаёт: родитель «proxy last seen». Дети — все agent unavailable этого proxy. Не дети: хосты, которых proxy не обслуживает.
Слой 3. Сервис на хосте
HTTP зависит от «порт 443 down» или от «агент down», если HTTP через агент. LDAP зависит от NTDS service и от host up. Не наоборот (host up зависит от LDAP).
Слой 4. Severity и media
| Severity | Пример | Media |
|---|---|---|
| Info | realloc=4 стабильно | дашборд |
| Warning | CPU выше базы, диск 14d timeleft | чат дневной |
| High | RAID degraded, backup fail, cert 7d | чат + тикет |
| Disaster | LDAP down, диск hours timeleft, proxy down | SMS/звонок |
Не SMS на Warning. Это и есть «не звонить обо всём».
Слой 5. Actions без дублей
Один action Disaster 24/7 SMS на группу дежурных. Warning — рабочие часы, Telegram. Не три action с пересечением «all triggers». Теги scope:network / scope:app для фильтра.
После правок:
sudo zabbix_server -R config_cache_reloadПроверка конфига сервера, если трогали процессы:
sudo -u zabbix zabbix_server -c /etc/zabbix/zabbix_server.conf -TКак проверить, что проблема устранена
На стенде (не прод-шлюз):
- Down ICMP gateway → одно Disaster, хосты за ним не SMS (видны как зависимые в UI, если включён показ).
- Down только
WS-042при живом шлюзе → SMS/чат про этот хост. - CPU Warning → нет SMS.
- Диск timeleft Disaster при живом агенте → есть SMS.
- Action log: счётчик сообщений каскада упал на порядок.
Разбор реального инцидента через неделю: в тикете указан корень, не 40 вложений.
Если не помогло
- Зависимости есть, UI всё равно пачка: включён показ dependents; media смотрит и на них. Снимите «notify dependent» если появилось в вашей версии action — сверяйте 6.0/7.0 UI, не выдумывайте флажок.
- Родитель не переходит в PROBLEM (порог ICMP слишком мягкий) — дети не прячутся, чините родительский trigger.
- Цикл A↔B: Zabbix отвергнет или поведение странное — уберите.
- Карта Maps зелёная, SMS красные — maps не управляют media.
Профилактика
- Новый филиал: ребра в том же change, что хосты.
- Ревью топ SMS раз в месяц — это метрика качества карты.
- Запрет action «all host groups, not classified+».
- Документ дерева в git (таблица), не только клики.
- Не глушить backup-fail зависимостью от CPU.
- Новые хосты из LLD не получают рёбра сами: template-level depends на gateway, где возможно, иначе runbook «дописать depends» в том же изменении, что discovery.
FAQ
Host dependencies vs trigger dependencies
В 6.0/7.0 основной механизм глушения каскада — trigger dependencies. Host-level (если используете) не путайте с «хост в maintenance». Читайте форму триггера.
Можно ли event correlation вместо dependencies?
В 7.0 есть развитый correlation. Не заменяет простое дерево uplink→host. Начните с dependencies.
Почему дети всё равно в Problems?
Фильтр Show suppressed / dependant. Для дежурного SMS важнее, чем список на дашборде.
Зависимость от «Zabbix server is down»
Осторожно: если server down, зависимые триггеры не вычисляются anyway. Внешний probe на 10.0.20.50:10051 и HTTP zabbix.example должен жить вне этой карты (другая система или простой cron), иначе слепое пятно.
Maps для руководства
Да, для демо. Телефон спасают dependencies+severity.
Нужно ли закрывать события вручную после каскада?
Нет, если OK пришёл. Ручной close без фикса корня — маскировка. ACK с сообщением «ждём линк» ок.