求助nagios脚本无法正常监控shell运行脚本正常
本帖最后由 blackjack550 于 2010-08-20 17:18 编辑
最近写个脚本 执行没有任何问题,系统会输出正常的结果。但是放在nagios里面发现运行不正常。运行结果无法获得。
- OK-status:running:30 total:30 sleep:0
复制代码上面上是shell结果但是监控nagios本身结果是空的
即显示
- OK-status:
复制代码至于为什么显示ok是跟我的脚本有关系,随后我检查了一下脚本的运行时间
- real 0m3.640s
- user 0m0.513s
- sys 0m0.029s
复制代码很奇怪,用check_http测试的时候发现超时的效果nagios也是有显示的。
脚本如下:
- declare -a check_result
- check_result=`python $ROOTDIR/Client/State.py -H $server1 -S $server2 -i $HOSTADDRESS -n $MONITOR 2>/dev/null`
- if [ "$check_result" = "running:0 total:0 sleep:0" ]
- then
- echo "worker is stoped!!!"
- exit 2
- else
- echoresult=$check_result
- echo "OK-worker status:$echoresult"
- exit 0
- fi
复制代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
确认是否python的问题也容易,
你把check_result=`python $ROOTDIR/Client/State.py -H $server1 -S $server2 -i $HOSTADDRESS -n $MONITOR 2>/dev/null`
这一行替换为其他命令测试一下。
比如check_result=` echo Test_Here`,
如果正常,就debug python程序吧。
本帖最后由 blackjack550 于 2010-08-23 11:41 编辑
终于有人回复了, 我测试过了 所有的系统命令都改成绝对路径,但是shell无论是nagios还是root执行都不影响,nagios就是无法取到数值
为了避免这个问题,我尝试过把执行结果缓存到文本文件。但是貌似我手工执行没问题,但是nagios自动执行的时候就会把文件刷成0字节。所以是不是nagios 不允许这么调用python命令呢?
还是和nagios哪部分设置有关系?求指教
您好,我替换成静态字串nagios 没问题。可是用shell变量之前也没问题。 可能问题就出在那个python程序上吧?而且执行时间还挺长
1. Nagios用户是否有相应的执行权限,可以su - naigos之后执行试试看;
2. 注意路径问题,最好用绝对路径;
3. 把变量都替换为固定值后再测试确认,看是否和变量有关。