首页 > 代码库 > 部署 nagios nrdp 插件过程中遇到的问题总结

部署 nagios nrdp 插件过程中遇到的问题总结

在ubuntu 14.04 系统探索部署 nagios nrdp 插件过程中,遇到如下问题?

测试 http: ip /nrdp/ 提交结果的页面中,总是报如下错误:

<result>
<status>-1</status>
<message>BAD COMMAND FILE</message>
</result>

<result>
<status>-1</status>
<message>BAD CHECK RESULTS DIR</message>
</result>

“BAD COMMAND FILE” “BAD CHECK RESULTS DIR” 开发者定义的这两条运行错误提示信息,语义解偏差很大,弄了两天依然无头绪, 无奈之下只能在阅读插件的源码,分别找到了源码中的位置,现在把报错信息出处的调用的函数写成两个测试脚本

test_file_exists.php
 <?php 
 $result=file_exists("/var/lib/nagios3/spool/checkresults","c");
 print $result."\n\r";
 ?>

 test_tempnam.php
 <?php 
 $tmpname=tempnam("/var/lib/nagios3/spool/checkresults","c");
 print $tmpname."\n\r";
 ?>

分别以nagios www-data 用户身份执行,会返回不同的结果,插件不能工作的正常原因就这里,请读者自行验证,!

sudo -u nagios  test_tempnam.php 
sudo -u nagios  test_file_exists.php
sudo -u www-data  test_tempnam.php 
sudo -u www-data  test_file_exists.php

最后给出一个临时解决办法,更改apache服务的运行用户

vim /etc/apache2/envvars
export APACHE_RUN_USER=nagios
export APACHE_RUN_GROUP=nagios

最后测试一切OK

主机检测发送结果

python send_nrdp.py –url=http://10.2.0.191/server/ –token=“l@bs&d” –host=localhost –state=0 –output=“ok ok ok”

服务检测发送结果

python send_nrdp.py –url=http://10.2.0.191/server/ –token=“l@bs&d” –host=localhost –service=check_disk_passive –state=0 –output=“ok ok ok”

部署 nagios nrdp 插件过程中遇到的问题总结