Nagios 输出格式

Nagios Output Formatting

简短版本:

有没有更好的写法?

./check_snmp -H x.x.x.x -o oidstring -C public | awk '{print }' | sed 's/.$/.&/' | sed -e 's/$/ KB/'

长版:

我有一个输出三位数的 Nagios 服务检查:

./check_snmp -H x.x.x.x -o oidstring -C public

SNMP OK - 711 | iso.oidstring=711

这是我按照自己的喜好格式化它并给出准确值的方法:

./check_snmp -H x.x.x.x -o oidstring -C public | awk '{print }' | sed 's/.$/.&/' | sed -e 's/$/ KB/'

71.1 KB

输出是完美的,我可以 运行 在 CentOS 环境中的命令没有问题,但是当试图在 Nagios 中执行检查时,服务没有 return 和值,而是我得到(标准输出上没有输出)。

奇怪的是,我什至可以在 Nagios 中成功执行服务测试检查,但显示主机和服务值的页面是给出(stdout 无输出)的页面。

我认为 Nagios 不喜欢我尝试格式化输出的方式,至少在 Web 端是这样。

上面的支票有'neater'写法吗?

提前致谢。

您可以使用单个 sed(使用破折号作为锚点):

 ... | sed 's/^.*- \([0-9]*\)\([0-9]\) .*$/. KB/'

或单个 awk:

... | awk '{printf "%s KB\n", /10}'

我的 Icinga 显示为空。

$USER1$/check_snmp -H $HOSTADDRESS$ -C SNMP -o .1.3.6.1.2.1.33.1.2.5.0 $ARG1$ | awk '{printf "%s V\n", /10}'

当我手动执行此操作时,我得到了正确的输出:80.2V