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

[经验分享] nagios被动监控模式

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-1-27 08:23:58 | 显示全部楼层 |阅读模式
1、工作原理:
相比与主动模式中服务器主动去被监控机上轮询获取监控数据的方式,被动模式则是在被监控机上面通过插件或脚本获取监控数据,然后将数据通过send_nsca发往监控机,最后监控机通过Nsca接收并解析数据,并传递给Nagios。这样做的一个很大的优势就是将除去处理数据的其他工作都放在了被监控机上面(包括了数据的传输),这样就避免了被监控机数量大时,一次轮询时间过长而导致监控反应延迟,这也是被动模式能承担更大监控量的关键。
在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主程序对数据进行处理(前台展示,警报)。
2、组成:
Nsca (安装在MonitorServer上,用来接收并解析MonitorClient发来的监控数据,传递给nagios)
Send_nsca(安装在MonitorClient上,用来发送监控数据。)
3、实现过程:
1)、修改nagios配置文件
vim /usr/local/nagios/etc/nagios.cfg
check_external_commands = 1 (enable  commands  file)
command_check_interval = -1 (check  the  external  command file as often as possible )

2)、添加模板
vim /usr/local/nagios/etc/objects/template.cfg
define service{
name                            passive_service
use                             generic-service
max_check_attempts              3
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                  admins
register                        0
}

3)、定义一个command
vim /usr/local/nagios/etc/objects/command.cfg
define command{
command_name                    check_dummy
command_line                    /usr/local/nagios/libexec/check_dummy $ARG1$
}
4)、定义一台主机需要被监控的服务
vim /usr/local/nagios/etc/objects/XH_DemoTrade.cfg
define service{
use                     passive_service
host_name               XH_DemoTrade
service_description     load
check_command           check_dummy
contact_groups          admins
}

define service{
use                     passive_service
host_name               XH_DemoTrade
service_description     disk
check_command           check_dummy
contact_groups          admins
}
define service{
use                     passive_service
host_name               XH_DemoTrade
service_description     logonService_aufront_common
check_command           check_dummy
contact_groups          admins
}

define service{
use                     passive_service
host_name               XH_DemoTrade
service_description     http
check_command           check_dummy
contact_groups          admins
}

5)、下载安装nsca
wget http://nchc.dl.sourceforge.net/p ... 1/nsca-2.9.1.tar.gz
tar zxvf nsca-2.9.1.tar.gz
./configure
make all
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

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

7)、在nagios client端安装nsca服务(其实只需要send_nsca和send_nsca.cfg两个文件,所以可以从nagios server端直接分发到nagios client)
wget http://nchc.dl.sourceforge.net/p ... 1/nsca-2.9.1.tar.gz
tar zxvf nsca-2.9.1.tar.gz
./configure
make all
cp ./src/send_nsca /usr/local/nagios/bin/
cp ./sample-config/send_nsca.cfg /usr/local/nagios/etc
chown nagios.nagios   /usr/local/nagios/bin/nsca
chown nagios.nagios   /usr/local/nagios/etc/nsca.cfg
8)、在nagios client设置监控脚本,调用libexec中nagios-plugins提供的插件,内容如下,其中JYS_check_proce是自定义的服务
vim /usr/local/nagios/nsca.sh
#!/bin/sh
host_name=$1
svc_name=$2
load_ARG="-w 5 -c 10"
http_ARG="-H 172.18.11.30 -u http://172.18.11.30/index.html"
disk_ARG="-w 20% -c 10% -p /dev/sda"
#echo "$host_name\t$svc_name\n"
case "$2" in
check_load)
output=`/usr/local/nagios/libexec/$2 $load_ARG`
status=`echo $?`
echo "$host_name;load;$status;$output">/tmp/nsca_load.out
cat /tmp/nsca_load.out | /usr/local/nagios/bin/send_nsca -H 10.0.100.32 -d ";" -c /usr/local/nagios/etc/send_nsca.cfg
;;
check_http)
output=`/usr/local/nagios/libexec/$2 $http_ARG`
status=`echo $?`
echo $status
echo "$host_name;http;$status;$output">/tmp/nsca_http.out
cat /tmp/nsca_http.out | /usr/local/nagios/bin/send_nsca -H 10.0.100.32 -d ";" -c /usr/local/nagios/etc/send_nsca.cfg
;;
check_disk)
output=`/usr/local/nagios/libexec/$2 $disk_ARG`
status=`echo $?`
echo "$host_name;disk;$status;$output">/tmp/nsca_disk.out
cat /tmp/nsca_disk.out | /usr/local/nagios/bin/send_nsca -H 10.0.100.32 -d ";" -c /usr/local/nagios/etc/send_nsca.cfg
;;
JYS_check_proce)
output=`/usr/local/nagios/libexec/$2 $3`
status=`echo $?`
echo "$host_name;$3;$status;$output">/tmp/nsca_JYS.out
cat /tmp/nsca_JYS.out | /usr/local/nagios/bin/send_nsca -H 10.0.100.32 -d ";" -c /usr/local/nagios/etc/send_nsca.cfg
;;
esac
9)、在crontab中添加任务
crontab -e
*/5     *       *       *       *       /bin/sh /usr/local/nagios/nsca.sh XH_DemoTrade JYS_check_proce logonService_aufront_common
*/5     *       *       *       *       /bin/sh /usr/local/nagios/nsca.sh XH_DemoTrade check_http -H 127.0.0.1
*/5     *       *       *       *       /bin/sh /usr/local/nagios/nsca.sh XH_DemoTrade check_disk
*/5     *       *       *       *       /bin/sh /usr/local/nagios/nsca.sh XH_DemoTrade check_load



运维网声明 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.iyunv.com/thread-41525-1-1.html 上篇帖子: kvm guest使用NAT上网 下篇帖子: kvm添加虚拟磁盘 监控
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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