Я пытаюсь смоделировать сеть серверов, маршрутизаторов и коммутаторов с помощью nagios, чтобы свести к минимуму ложные срабатывания / потоки писем. Топология достаточно сложная: хосты имеют один маршрутизатор в качестве родительского, но подключены через коммутатор к нескольким VLAN (и, следовательно, подключены к нескольким маршрутизаторам).
Я сделал так, чтобы каждый сервер зависел от коммутатора, к которому он подключен. Мое чтение документации предполагает, что с помощью прогнозируемых проверок зависимости хоста (они есть) это должно вызывать немедленные проверки зависимых (главных) хостов и подавление уведомлений, если главный хост будет обнаружен (это не так) .
Мои зависимости от хоста принимают простую форму:
define hostdependency {
host_name switch-x
dependent_host_name server-y
notification_failure_criteria d
}
Тестирование проводилось с наборами правил iptables для имитации соответствующих сбоев в сети, блокирования исходящего доступа к коммутатору и подключенным к ним серверам.
Я тестировал это с помощью nagios 3.2.1-2 из Debian squeeze и 3.2.3-3 из wheezy (я не видел никаких соответствующих записей журнала изменений в последнем апстриме, 3.3.1). Ведение журнала отладки подтвердило, что ожидаемое сообщение от base/checks.c
"Распространение прогнозируемых проверок зависимости на хосты, от которых зависит этот ... \ n" никогда не появляется.
Поведение, когда маршрутизатор (смоделированный) выходит из строя, является правильным; узлы за маршрутизатором отображаются как недоступные, а не отключенные, и уведомления не отправляются.
Что здесь не так?
Вы путаете зависимости хоста с отношениями родительского / дочернего хоста. Зависимости хоста не влияют на отображение топологии вашей сети. Вы должны использовать родительские / дочерние отношения.