我遇到了Nagios的问题,特别是check_tcp插件,用于检查Windows服务器上的Citrix连接。 Nagios在版本3.3.1和nagios插件在版本1.4.15(这似乎是最后一个)。
当连接正常时,服务状态正常,状态信息显示“TCP OK”。 但是,当Citrix服务没有响应时,服务的状态仍然正常,状态信息显示“连接被拒绝”,这表明Citrix连接不正常。
还有一件事,当手动启动检查命令时,它将返回0,这说明Web界面上的OK状态,而它必须返回1或其他值来指示错误。
有人已经有同样的问题? 有什么我可以做的纠正这个检查?
提前致谢,
杰里米
我不确定我们对这个问题有足够的了解。 这不是check_tcp插件的正常行为:
[madhatta@nagios plugins]$ ./check_tcp -H localhost -p 1234 Connection refused [madhatta@nagios plugins]$ echo $? 2 [madhatta@nagios plugins]$
你能告诉我们当你手动调用插件时会发生什么? 你的NAGIOS现在怎么调用它?
编辑 :那么你将不得不通过你的NAGIOSconfiguration,从服务定义中的check_command条目,通过命令定义文件,直到我们确切知道什么光盘命令正在运行,以及什么标志。
编辑2 :我怀疑问题是在pipe道中。 我不知道是谁决定的 | sed 's/,/./g'需要被添加,也不是为什么,但是pipe道的退出状态是其中最后一个命令的退出状态 。 将此与上面的输出进行比较:
[madhatta@nagios plugins]$ ./check_tcp -H localhost -p 1234 | sed 's/n/N/g' CoNNectioN refused [madhatta@nagios plugins]$ echo $? 0 [madhatta@nagios plugins]$
sed是pipe道中的最后一个命令,工作正常,所以pipe道的退出状态为0,表示“是的,我很好”,导致NAGIOS说“是的,一切正常”。
如果您觉得必须进行整理,则需要编写一个执行实际check_tcp的shell脚本,保存终止状态和输出,通过sed输出输出,但以终止状态终止。 更好的是,不要担心点和逗号,并开始担心服务器是否closures。
检查您的服务器上是否添加了-r作为tcp_check命令的选项。
-r, --refuse=ok|warn|crit Accept TCP refusals with states ok, warn, crit (default: crit)