设为首页 收藏本站
查看: 2065|回复: 0

nagios使用nsca实现被动监控

[复制链接]
累计签到:15 天
连续签到:1 天
发表于 2015-11-23 08:17:48 | 显示全部楼层 |阅读模式
被动模式工作原理:

相比与主动模式中服务器主动去被监控机上轮询获取监控数据的方式,被动模式则是在被监控机上面通过插件或脚本获取监控数据,然后将数据通过send_nsca发往监控机,最后监控机通过Nsca接收并解析数据,并传递给Nagios。这样做的一个很大的优势就是将除去处理数据的其他工作都放在了被监控机上面(包括了数据的传输),这样就避免了被监控机数量大时,一次轮询时间过长而导致监控反应延迟,这也是被动模式能承担更大监控量的关键


NSCA由两个部分组成:

Nsca
(安装在MonitorServer上,用来接收并解析MonitorClient发来的监控数据,传递给nagios)

Send_nsca(安装在MonitorClient上,用来发送监控数据。)


过程如下:

在MonitorClient上面,使用nagios-plugins提供的插件,得出监控数据,然后将数据存为一个文件,利用输入重定向,通过send_nsca将数据发往MonitorServer。MonitorServer上面运行一个nsca的daemon(默认开启5667端口),用来接收这些数据,然后做一个简单的处理(会和nagios的service文件进行对应,将多余的监控数据排除),然后将数据进行格式的转换,发给nagios的“外部命令文件”(默认配置为“/usr/local/nagios/var/rw/nagios.cmd”在nagios.cfg中定义的)。

该文件是一个管道文件,也是nagios主程序的一个接口(用来接收监控数据),使用cat查看该文件时候,会出来经nsca处理后的数据格式。然后nagios主程序对数据进行处理(前台展示,警报)。


实现过程-- Nagios所在主机(MonitorServer)

1、配置nagios(nagios安装参考其他文件)

1)修改配置文件nagios.cfg



check_external_commands = 1(enable  commands  file)
command_check_interval = -1(check  the  external  command file as often as possible )




2)添加模板(template.cfg


define service{
name                        passive_service
use                          generic-service
max_check_attempts           1      
active_checks_enabled          0
passive_checks_enabled         1
normal_check_interval          5  
retry_check_interval            1
notifications_enabled           1
notification_interval              5
notification_period             24x7
contact_groups                admin
register                      0
}




3)定义一个command



define command{
command_name    check_dummy
command_line    /usr/local/nagios/libexec/check_dummy $ARG1$
}









该command对被监控机发过来的数据进行处理,check_dummy只能处理4个参数(0、1、2、其他数字)

[iyunv@vps /]# /usr/local/nagios/libexec/check_dummy 0

OK

[iyunv@vps /]# /usr/local/nagios/libexec/check_dummy 1

WARNING

[iyunv@vps /]# /usr/local/nagios/libexec/check_dummy 2

CRITICAL

[iyunv@vps /]# /usr/local/nagios/libexec/check_dummy 55

UNKNOWN: Status 55 is not a supported error state

4个参数可以代表4种状态,而监测服务一般只需要两种状态(running,sotp),硬件三种(OK warning critical)

4)再定义一个本机的被动监控service


define service{
use                             passive_service
host_name                       localhost
service_description             NSCA
check_command                   check_dummy!0
}               





2、下载并安装nsca

wget http://nchc.dl.sourceforge.net/project/nagios/nsca-2.x/nsca-2.9.1/nsca-2.9.1.tar.gz

tar zxf nsca-2.9.1.tar.gz

cd nsca-2.9.1

./configure

make all

以上步骤检查正确执行以后:

1)
、会在src目录下生成两个程序 nsca send_nsca(主程序)

2)、sample-config中会有nsca.cfg与send_nsca.cfg(配置文件)

3)、当前目录下会有一个init-script(启动脚本)

Nagios监控机(MonitorServer)操作:

cp  
src/nsca  /usr/local/nagios/bin/

cp  
sample-config/nsca.cfg  /usr/local/nagios/etc

chown nagios.nagios  /usr/local/nagios/bin/nsca

chown nagios.nagios  /usr/local/nagios/etc/nsca.cfg

cp  
init-script  /etc/init.d/nsca

chmod a+x /etc/init.d/nsca

chkconfig --add  nsca

至此nsca安装完成,下面需要更改一些配置选项:(nsca.cfg)


server_address=xxx.xxx.xxx.xxx(这里务必使用对外表现的IP)
debug=1                      (debug选项即log选项,写入message)
aggregate_writes=1           (能够支持更大的监控量,建议开启)
max_packet_age=60            (数据包过期时间,默认30s,但是考虑到网络因素建议设为60s)
password=xxxxxxx             (密码,最基础的加密方式,也可以不设置)





3、检查配置文件是否正确:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


4、启动nagios和nsca服务

[iyunv@localhost ~]# service nagios restart

Running configuration check...done.

Stopping nagios: done.

Starting nagios:This account is currently not available.

done.

[iyunv@localhost ~]# service nsca restart

Shutting down nsca:                                       [FAILED]

Starting nsca:                                            [  OK  ]

[iyunv@localhost ~]# service nsca restart

Shutting down nsca:                                       [  OK  ]

Starting nsca:                                            [  OK  ]


5、测试发送数据给被动监测服务:

echo "localhost;NSCA;0;testOK"|./send_nsca -H 127.0.0.1 -d ";" -c /root/send_nsca.cfg

通过管道将数据传给send_nsca程序,send nsca再将数据发送到nsca服务,其中localhost是nsca监听的主机名,NSCA是Nagios中定义的被动监测服务的名字,0告诉nsca正常,testOK是附加信息,在web端的显示如下:




  • -H 127.0.0.1是数据发往的目的地,即nagios监控机;
  • -d ‘;’是数据的分隔符,默认是[TAB];
  • -c /root/send_nsca.cfg是send_nsca这个发送程序的配置文件。

也可以将要发送的数据写入一个文件,如/root/info.txt,用下面命令发送数据:

./send_nsca -H 127.0.0.1 -d ; -c /root/send_nsca.cfg < /root/info.txt

  
  

实现过程—Nagios被监控主机(MonitorClient)

1、Send_nsca安装在MC上面,将nagios主机build出来的send_nsca与send_nsca.cfg拷贝至MC上面,即完成安装。

2、撰写脚本或者其他程序调用NRPE插件,将插件的执行结果透过send_nsca发送到nagiso所在的主机。参考shell脚本如下:


#!/bin/bash
serverhost=&quot;testsvr&quot;
sheckCMD=&quot;/usr/local/nagios/libexec/check_mem.sh -w 80% -c 90%&quot;
servicName=&quot;check mem&quot;
send_nsca=&quot;/usr/local/nagios/bin/send_nsca&quot;
send_nsca_cfg=&quot;/usr/local/nagios/etc/send_nsca.cfg&quot;
nagiosHost=&quot;10.21.1.77&quot;

result=$($checkCMD)
status=$?
echo &quot;$status&quot; &quot;$result&quot;
echo &quot;$serverhost;$servicName;$status;$result&quot;|$send_nsca -H $nagiosHost -d &quot;;&quot; -c $send_nsca_cfg

  


  参考:
  http://blog.iyunv.com/uid-23886490-id-3150556.html
  http://www.cszhi.com/20120527/nagios-nsca.html
  http://www.codelast.com/?p=2213
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142347-1-1.html 上篇帖子: ganglia和nagios配置实现hadoop集群监控 下篇帖子: nagios 使用MSN 发报警消息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表