у меня есть Linksys WRT54GL маршрутизатор, который работает openwrt. У меня есть основное подключение к Интернету и дополнительное подключение, которое работает как резервное соединение, когда наша основная ссылка выходит из строя. У обоих подключений есть публичные IP-адреса.
Теперь я хочу контролировать оба соединения с помощью nagios, чтобы я мог получать уведомления, когда одно из них выходит из строя. Я также использую pnp4nagios для построения графиков, и я также собираюсь узнать статистику отключений каждого соединения.
Теперь у меня вопрос, какой плагин nagios вы рекомендуете использовать для отслеживания этих подключений. Есть ли такой плагин, идеально подходящий для такого сценария, и как вы это делаете?
Обычный подход NAGIOS к мониторингу состояния канала несколько проще, по крайней мере, в том, что касается его карты состояний и концепции зависимостей хоста: он хочет иметь возможность связываться с устройством немедленно на другом конце канала. Определение «контакта» обычно - это эхо-запрос ICMP (ping), но его можно произвольно настраивать.
Да, вы могли бы вместо этого разработать какой-нибудь тест для openwrt, который сообщает вам, как маршрутизатор видит состояние связи, но: давайте предположим, что такой тест можно написать.
Я очень верю в тестирование того, что вы действительно хотите знать. В этом случае я предполагаю, что вы хотите знать, будут ли ссылки нести трафик; если да, то не делегируйте ответ другому устройству - проверьте сами.
Если это вас не убеждает, взгляните на код openwrt и узнайте, как Это определяет, есть ли связь - и повторяет этот тест от NAGIOS.
Я бы, как ни странно, использовал скрипт check_http. Пусть он будет делать http-запрос каждые N минут к чему-то, что, по вашему мнению, будет работать (google, facebook, yahoo). Если вы не хотите, чтобы он жаловался, когда DNS не работает, используйте IP удаленного сервера вместо имени DNS.
check_http не выполняет эту работу, так как маршрутизаторы WRT54GL генерируют сертификат SSLv1 (Tomato 1.28 в моем случае), который не принимается плагином check_http nagios (только SSLv2 и SSLv3 в nagios-plugins 1.4).
nagios@host:~# ./check_http --ssl -H cacert.org
HTTP OK: HTTP/1.1 302 Found - 412 bytes in 0.446 second response time |time=0.445800s;;;0.000000 size=412B;;;0
nagios@host:~# ./check_http --ssl -H myrouter.local
CRITICAL - Cannot make SSL connection
20391:error:14077417:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert illegal parameter:s23_clnt.c:602:
HTTP CRITICAL - Error on receive
вместо этого пользователь check_tcp
nagios@host:~# ./check_tcp -p 443 -H myrouter.local
TCP OK - 0.059 second response time on port 443|time=0.059017s;;;0.000000;10.000000