Commmand在我需要监视的主机上工作(其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
我可以用telnetvalidation:
root@server:/etc/nagios3/conf.d# telnet $HOSTADDRESS$ 22 Trying $HOSTADDRESS$... Connected to $HOSTADDRESS$. Escape character is '^]'.
在网上search了两个小时,并尝试了不同的build议,我没有想法。 我有几个其他主机有类似的设置,他们没有这个问题。 我比较了configuration,他们看起来相同(我认为)。
我显然在这里错过了一些东西。
我有同样的问题来检查安装在Windows(KpyM Telnet / SSH服务器)上的OpenSSH服务器,我正在使用Nagios linux服务器中的check_ssh检查端口。
使用“ check_ssh
”,我得到了答案“服务器答案”与端口22上的“ check_tcp
”: SSH OK
在Windows上的SSH服务器日志中,nagios服务器的IP位于被禁止的IP中。
我删除了IP在禁止的IP和check_ssh现在好了:
check_ssh
现在回答: SSH OK - cryptlib (protocol 2.0)
也许它有帮助。 可能不是相同的软件,但也许是相同的行为。
您是否在Nagios服务器和您要检查的服务器之间设置无密码SSH?
这需要设置,因为它不能用密码提示。 你可以通过连接到nagios服务器来检查这个,并尝试SSH到你想要检查的服务器上作为nagios用户,看看它是否提示你input密码。
另外telnet不是SSH,它是一个完全不同的协议!