一.工作原理
相比与主动模式中服务器主动去被监控机上轮询获取监控数据的方式,被动模式则是在被监控机上面通过插件或脚本获取监控数据,然后将数据通过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主程序对数据进行处理(前台展示,警报)。
Nagios 服务端安装
1)rpm -q gcc glibc glibc-common gd gd-devel xinetd openssl-devel(若没有则自行安装)
2)创建nagios用户和用户组
useradd -s /sbin/nologin nagios
mkdir /app/gyq/nagios
chown -R nagios.nagios /app/gyq/nagios(注意权限)
3)编译安装nagios
#tar zxvf nagios-3.4.3.tar.gz
#cd nagios
#./configure --prefix=/app/gyq/nagios
#make all
#make install
#make install-init
#make install-commandmode
#make install-config
#chkconfig --add nagios
# chkconfig --level 35 nagios on
# chkconfig --list nagios
(验证程序是否安装正确)
2、组成:
Nsca (安装在MonitorServer上,用来接收并解析MonitorClient发来的监控数据,传递给nagios)
Send_nsca(安装在MonitorClient上,用来发送监控数据)。
3.实现过程
1)修改nagios配置文件
Vi /app/gyq/nagios/etc/nagios.cfg
check_external_commands = 1 // 检测外部命令