monicazhang 发表于 2016-2-28 16:00:01

nagios---nrdp

来自:网络


目录[-]
title: “nagios/nrdp”源码NRDP的特性:工作原理配置过程apache 配置主机检测发送结果安全遇到的问题

layout: post
title: “nagios/nrdp”源码不用从nagios主页获取源码,那份源码已经陈旧,并且存在很多问题,直接从作者
git clone NagiosEnterprises/nrdp.gitNRDP的特性:

[*]NRDP使用标准的端口和协议,需要对防火墙进行配置,客户端开发简单;                      nagios安装
[*]NRDP使用了Apache Web服务器提供的SSL加密传输和认证;
[*]NRDP支持host和service多行检测输
[*]NRDP写检测输出能够直接输出到Nagios 内核的spool目录——绕过外部命令文件,从而提高了性能
工作原理

[*]第一步、远程客户端向NRDP服务API提交一个请求,客户端提交包括:有效的“令牌(token)”;请求NRDP服务处理的命令,或检测结果
[*]第二步、NRDP校验“令牌(token)”并且将客户端需求传递到恰当的NRDP插件;
[*]第三步、NRDP插件处理客户端需求,并且将数据提交到Nagios或者其它应用程序;
[*]第四步、NRDP以XML的格式向客户端返回结果信息;
配置过程将应用拷贝到apache根目录下
git clone NagiosEnterprises/nrdp.gitcp -rp nrdp/server /var/www/html/nrdpchown -R nagios.nagios /var/www/html/nrdp修改nrdp插件配置 /var/www/html/nrdp/config.inc.php
$cfg['authorized_tokens'] = array(    "k&d@dlz9x",    "df23m7jadI34",   );$cfg["command_file"]="/var/lib/nagios3/rw/nagios.cmd";$cfg["check_results_dir"]="/var/lib/nagios3/spool/checkresults";$cfg["tmp_dir"]="/var/lib/nagios3/spool/tmp/";apache 配置添加 http 配置 /etc/apache2/conf-enabled/nrdp.conf                      开源监控软件 <Directory "/var/www/html/nrdp">#SSLRequireSSLOptions NoneAllowOverride NoneOrder allow,denyAllow from 10.0.0.0/8#Order deny,allow#Deny from all#使用与nagios相同的认证用户#AuthName "NRDP"#AuthType Basic#AuthUserFile       /etc/nagios3/htpasswd.users#Require valid-user</Directory>修改 apache 守护进程用户 /etc/apache2/envvars
export APACHE_RUN_USER=nagiosexport APACHE_RUN_GROUP=nagios重启服务,访问 URL
/etc/init.d/httpd restarthttp://server_ip/nrdp/如果提交数据返回 OK 的结果,说明 http 配置正确,正确结果如下:
<result><status>0</status><message>OK</message></result><result><status>0</status><message>OK</message><meta>    <output>2 checks processed.</output></meta></result>主机检测发送结果参考 Nagios被动检测的配置 定义要被动监控的主机及其服务,使用nrdp客户端向服务器发送检测结果,看nagios是否正确接收到并正确反馈处理!                           nagios配置 python send_nrdp.py -- ttp://server_ip/server/ --token="l@bs&d" --host=localhost --service=check_disk_passive --state=0 --output="ok ok ok"python send_nrdp.py -- ttp://server_ip/server/ --token="l@bs&d" --host=localhost --state=0 --output="ok ok ok"安全由于 nrdp-server 是运行在 apache 服务器上的应用,可以充分利用apache提供的安全机制,比如
1 SSL加密传输 ,对应配置
SSLRequireSSL2 限制IP访问
Order allow,denyAllow from 10.0.0.0/83 用户认证
#使用与nagios相同的认证用户#AuthName "NRDP"#AuthType Basic#AuthUserFile      /etc/nagios3/htpasswd.users#Require valid-user遇到的问题在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 nagiosphp test_tempnam.php sudo -u nagiosphp test_file_exists.phpsudo -u www-dataphp test_tempnam.php sudo -u www-dataphp test_file_exists.php最后给出一种解决办法,更改apache服务的运行时用户                   nagios实施 vim /etc/apache2/envvars
export APACHE_RUN_USER=nagiosexport APACHE_RUN_GROUP=nagios最后测试一切OK               nagios培训


想做Nagios, Zabbix,Cacti,iTop各种交流的,可以进入开源监控工具Nagios交流QQ群号 :476809427

页: [1]
查看完整版本: nagios---nrdp