缺lesscheck_tcp Nagios插件中的function

我遇到了Nagioscheck_tcp插件问题,无法find任何需要的插件。

我通过check_tcp发送一个string到一个端口,并得到一个数字,在这种情况下,2580.在这个数字,我需要定义警告和crital值。

例:

 /usr/lib/nagios/plugins# ./check_tcp -H XXXXXXXXXX -p 51031 -E -s "status\r\n" -d 1 -t 30 -e "SOMEThING" TCP WARNING - Unexpected response from host/socket: 2580|time=0,000358s;;;0,000000;30,000000 

我需要像这样的东西:

 /usr/lib/nagios/plugins# ./check_tcp -H XXXXXXXXXX -p 51031 -E -s "status\r\n" -d 1 -t 30 -w 2500 -c 3000 

有无论如何做这个或任何我没有find的插件?

创build自己的包装,即。 在Perl中,在内部执行check_tcp,然后分析响应并根据响应返回退出代码。

用这么简单的检查,你甚至可以用Perl来实现整个事情,而不用包装其他命令。 示例代码在这里: http : //xmodulo.com/how-to-write-simple-tcp-server-and-client-in-perl.html

最后,我写了一个小的bash脚本,基本上可以正常工作…只是还有一些bug,所以如果有任何改进的想法:

 #!/bin/bash # # Check TCP Response fuer NAGIOS # # by Kjell Krenz # # # Version 0.1 # # while [ $# -gt 0 ] do case $1 in -h) HOST=$2 shift 2 ;; -p) PORT=$2 shift 2 ;; -s) STRING=$2 shift 2 ;; -w) WARN=$2 shift 2 ;; -c) CRIT=$2 shift 2 ;; -m) MSG=$2 shift 2 ;; *) echo "Usage:" echo "-h: Host (IP)" echo "-p: TCP Port" echo "-s: STRING" echo "-w: WARNING VALUE" echo "-c: CRITICAL VALUE" echo "-m: Custom Message Label" shift 1 ;; esac done exec 3<>/dev/tcp/$HOST/$PORT echo -en "$STRING\n" >&3 RESPONSE="`cat <&3`" if [ $RESPONSE -lt $WARN ] then echo "OK- $RESPONSE $MSG" exit 0 elif [ $RESPONSE -ge $CRIT ] then echo "CRITICAL- $RESPONSE $MSG" exit 2 elif [ $RESPONSE -ge $WARN ] then echo "WARNING- $RESPONSE $MSG" exit 1 else echo "UNKNOWN- $RESPONSE" exit 3 fi esac echo $RESPONSE exit $EXIT