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
简短版本:
有没有更好的写法?
./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