我有一个服务器,用于一堆反向ssh隧道的中间人。 我想在该服务器上使用nagios来监视所有这些ssh隧道已经启动。
基本上我想做的nagios相当于:
ssh -p 12344 localhost ssh -p 12415 localhost ssh -p 12544 localhost
我有以下定义:
define host{ use generic-host host_name paniqui address localhost _PORT 12345 } define hostgroup { hostgroup_name chits-servers alias CHITS servers members paniqui } define service { hostgroup_name chits-servers service_description SSHTUNNEL check_command check_ssh!-p $_HOSTPORT$ $HOSTADDRESS$ use generic-service notification_interval 0 ; set > 0 if you want to be renotified }
但是,当我在Nagios web界面上查看服务时,我看到:
Status Information: UNKNOWN (for 0d 2h 7m 50s) Usage:check_ssh [-46] [-t <timeout>] [-r <remote version>] [-p <port>] <host>
有什么build议么?
命令的参数应该在命令定义中configuration。 就像是:
define command { command_name check_tunneled_ssh command_line /usr/lib/nagios/plugins/check_ssh -p $ARG1$ $HOSTADDRESS$ }
那么你会用
check_command check_tunneled_ssh!12344
在你的服务。
这是我的nagios / etc / objects / commands.cfg,我相信这是标准的。
# 'check_ssh' command definition define command{ command_name check_ssh command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$ }
这意味着我认为你通过在你的check命令中指定$ HOSTADDRESS $出错了。 尝试在您的服务定义,而不是:
check_command check_ssh!-p 12345
另一个评论,与你的“真正的”问题没有关系……我不会为所有的远程服务器做一个单独的主机定义,我只是在本地主机上创build一个新的服务(看作是提供服务)为每个隧道。