Команда работает на хосте, который мне нужно отслеживать (его IP обозначается здесь как $ HOSTADDRESS $):
[root@host ~]# /usr/local/nagios/libexec/check_ssh localhost
SSH OK - OpenSSH_4.3 (protocol 2.0)
Однако на сервере Nagios это не так:
root@server:~# /usr/lib/nagios/plugins/check_ssh -H $HOSTADDRESS$
Server answer:
Я вижу, что порт открыт:
root@server:~# /usr/lib/nagios/plugins/check_tcp -H $HOSTADDRESS$ -p 22
TCP OK - 0.123 second response time on port 22|time=0.123277s;;;0.000000;10.000000
И я могу проверить с помощью telnet:
root@server:/etc/nagios3/conf.d# telnet $HOSTADDRESS$ 22
Trying $HOSTADDRESS$...
Connected to $HOSTADDRESS$.
Escape character is '^]'.
После двухчасового поиска в Интернете и пробования разных предложений у меня закончились идеи. У меня есть несколько других хостов с аналогичной настройкой, и у них нет этой проблемы. Я сравнил конфиги и они выглядят одинаково (думаю).
Мне здесь явно чего-то не хватает.
У меня была такая же проблема с проверкой сервера OpenSSH, установленного в Windows (KpyM Telnet / SSH Server), и я проверяю порт с помощью check_ssh с моего сервера Nagios linux.
С участием "check_ssh
", Я получил ответ" Ответ сервера "С"check_tcp
"в порту 22: SSH OK
В логах SSH-сервера в Windows ip сервера nagios был в запрещенных IP-адресах.
Я удалил IP из запрещенных IP-адресов, и теперь check_ssh в порядке:
check_ssh
ответ сейчас: SSH OK - cryptlib (protocol 2.0)
Может это поможет. Возможно, не то же программное обеспечение, но, возможно, такое же поведение.
Вы установили SSH без пароля между сервером Nagios и сервером, который вы пытаетесь проверить?
Это необходимо настроить, так как не может быть предложено ввести пароль. Вы можете проверить это, установив соединение с сервером nagios и попытавшись подключиться к серверу, который вы пытаетесь проверить как пользователь nagios, и посмотреть, запрашивает ли он пароль.
К тому же telnet - это не ssh, это совершенно другой протокол!