В составе большого комплекса находится небольшое офисное здание с 4 компьютерами. Он имеет один запуск cat5 для неуправляемого коммутатора, к которому подключено 4 компьютера.
Поскольку я не могу проверить связь с коммутатором, единственный способ определить, работает ли эта сеть, - это проверить связь с компьютерами. Но дамы в этом офисе, как правило, выключают компьютеры по праздникам, выходным, когда им это нравится, и т. Д. В 99% случаев по крайней мере 1 компьютер включен.
Я хочу, чтобы Nagios отправлял уведомление только в том случае, если все 4 компьютера пропадают. Ака, выключатель умер или ФСБ (экскаватор-погрузчик с поиском волокна) повеселился в этом районе. Я не думаю, что зависимости проверки хоста Nagios сделают это из того, что я читал.
Есть другой способ сделать это?
Ну, четыре машины составляют кластер, не так ли? Видеть http://nagios.sourceforge.net/docs/nagioscore/3/en/clusters.html в документации указание, как создать проверку «ИЛИ»; тот, который уведомляет только при возникновении нескольких условий.
Написание собственного небольшого плагина, который делает это, не должно быть слишком сложным, поскольку простые тестовые плагины действительно легко написать, все, что им нужно сделать, это вернуть код выхода и строку текста, которую интерпретирует nagios (см. документ).
Изменить: у меня была минута времени, поэтому вот чрезвычайно простой пример того, как пройти такой тест:
#!/bin/bash
ping -c 3 host1 > /dev/null
if [ "$?" -eq "0" ]; then
echo "OK - answer from host1"
exit 0
fi
ping -c 3 host2 > /dev/null
if [ "$?" -eq "0" ]; then
echo "OK - answer from host2"
exit 0
fi
echo "Fail - no host answers"
exit 2
Это просто отправит хостам три эхо-запроса и выйдет с возвращаемым значением 0, если хост отвечает, и, наконец, выйдет со значением 2, если ни один не может быть достигнут.