×

微信扫一扫,快捷登录!

nagios---nrdp

标签: 暂无标签
来自:网络



目录[-]
[  /u/877567/blog/327345#OSC_h2_1]title: “nagios/nrdp”[/url][  /u/877567/blog/327345#OSC_h2_2]源码[/url][  /u/877567/blog/327345#OSC_h2_3]NRDP的特性:[/url][  /u/877567/blog/327345#OSC_h2_4]工作原理[/url][  /u/877567/blog/327345#OSC_h2_5]配置过程[/url][  /u/877567/blog/327345#OSC_h2_6]apache 配置[/url][  /u/877567/blog/327345#OSC_h2_7]主机检测发送结果[/url][  /u/877567/blog/327345#OSC_h2_8]安全[/url][  /u/877567/blog/327345#OSC_h2_9]遇到的问题[/url]


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

  • 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]NagiosEnterprises/nrdp.gitcp[/url] -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>主机检测发送结果参考 [  /wiki/2014/10/11/nagios-passive-check.html]Nagios被动检测的配置[/url] 定义要被动监控的主机及其服务,使用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 nagios  php test_tempnam.php sudo -u nagios  php test_file_exists.phpsudo -u www-data  php test_tempnam.php sudo -u www-data  php 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






上一篇:nagios与check_multi
下一篇:nagios之passive_check
monicazhang

写了 2297 篇文章,拥有财富 12859,被 21 人关注

您需要登录后才可以回帖 登录 | 立即注册
B Color Link Quote Code Smilies

成为第一个吐槽的人

Powered by IT 运维管理
返回顶部