监控部署
前面已经把最基本的Nagios以及插件安装好了,现在只能对本机进行监控,要想监控远程主机,就必须通过类似于NRPE的软件来实现。
Nagios通过NRPE来远端管理服务的过程
1. Nagios服务端执行安装在它里面的check_nrpe插件,并告诉check_nrpe 去检测哪些服务。
2. 通过SSL,check_nrpe连接远端机子上的NRPE daemon
3. 被监控端的NRPE运行本地的各种插件去检测本地的服务和状态(check_disk,..etc)
4. 最后,被监控端的的NRPE把检测的结果传给nagios服务端的check_nrpe,check_nrpe再把结果送到Nagios状态队列中。
5. Nagios 依次读取队列中的信息,再把结果显示出来。
NRPE 工作原理如下图所示:
NRPE 总共由两部分组成:
1、check_nrpe 插件,位于监控主机上
2、NRPE daemon,运行在远程的Linux主机上(通常就是被监控机)
当Nagios 需要监控某个远程Linux 主机的服务或者资源情况时:
Nagios 会运行check_nrpe 这个插件,告诉它要检查什么;
@H_301_74@check_nrpe 插件会连接到远程的NRPE daemon,所用的方式是SSL;
NRPE daemon会运行相应的Nagios插件来执行检查;
NRPE daemon将检查的结果返回给check_nrpe 插件,插件将其递交给nagios做处理。
@H_301_74@注意:NRPE daemon需要Nagios 插件安装在远程的Linux主机上,否则,daemon不能做任何的监控。
服务端(监控端)安装过程
1、安装nrpe所需的依赖,使用yum命令安装即可。
#yum-yinstallopensslopenssl-devel
2、解压nrpe-2.15.tar.gz,进入其目录,执行如下命令。
#./configure--with-nrpe-user=nagios #makeall #makeinstall-plugin
3、安装完成后会在/usr/local/nagios/libexec/下生成check_nrpe文件
客户端(被监控端)的安装过程
nagios-plugins-2.0.tar (nrpe依赖于这个插件)
被监控端必须得有/usr/local/nagios/libexec/check_load 检测脚本文件
nrpe-2.12.tar (远程通信)
首先创建安装用户:
#useradd-s/sbin/nologinnagios
解压安装Nagios插件:
#wgethttp://nagios-plugins.org/download/nagios-plugins-2.0.tar.gz #tarxzfnagios-plugins-2.0.tar.gz #cdnagios-plugins-2.0 #./configure--prefix=/usr/local/nagios--with-nagios-user=nagios--with-nagios-group=nagios #make&&makeinstall
1、安装nrpe所需的依赖,使用yum命令安装即可。
#yuminstallopenssl-devel-y//check_nrpd会通过ssl的方式,连接远端的NRPEDaemon
2、解压nrpe-2.12.tar.gz,进入其目录,执行如下命令:
#tarzxfnrpe.2.12.tar #cdnrpe-2.12 #./configure #makeall #makeinstall-plugin #makeinstall-daemon #makeinstall-daemon-config
3、修改nrpe.cfg配置文件,允许监控端通过check_nrpe进行连接nrpe守护进程,默认只允许本机,加上监控端的IP即可。
allowed_hosts=127.0.0.1,192.168.32.55
4、启动nrpe守护进程,也可以将如下命令加入到开机启动脚本/etc/rc.local
#/usr/local/nagios/bin/nrpe-c/usr/local/nagios/etc/nrpe.cfg-d//启动nrpe,监听TCP5666端口
OK现在安装好了,现在开始配置:
5、验证是否安装及启动成功,可在服务端执行如下命令:(在监控端验证)
[root@nagios_serverlibexec]#/usr/local/nagios/libexec/check_nrpe-H192.168.32.11 NRPEv2.12//显示被监控端nrpe的版本 [root@nagios_serverlibexec]#/usr/local/nagios/libexec/check_nrpe-H192.168.32.11-ccheck_load //通过nrpe执行远端的检测插件
服务端(监控端)的配置
1、定义命令,在/usr/local/nagios/etc/objects/commands.cfg中增加对check_nrpe的定义,加入如下内容:
definecommand{ command_namecheck_nrpe//定义命令名称为check_nrpe,在services.cfg中要使用这个名称. command_line$USER1$/check_nrpe-H$HOSTADDRESS$-c$ARG1$//这是定义实际运行的插件程序 }
-c后的$ARG1$参数是传给nrpe daemon执行的检测命令,它必须是nrpe.cfg中所定义的那几条命令中的一条。在定义监控服务中使用check_nrpe的时候要用!带上这个参数。
2、在/usr/local/nagios/etc/nagios.cfg配置文件中加上如下内容:
cfg_file=/etc/nagios/objects/linux.cfg//让nagios包含此配置文件
3、定义主机与check_nrpe要检测的远端command名字。这里我们可以将主机与服务写在一个文件里,创建/usr/local/nagios/etc/objects/linux.cfg文件,写入如下内容:
definehost{#定义一个主机 uselinux-server#引用etc/objects/templates.cfg中的linux-server配置 host_namelinux11 aliaslinux11#定义一个主机名,并不是http的实际主机名,任意即可,但要继续,后面要调用 address192.168.32.11#指定地址 } defineservice{#定义一个服务 usegeneric-service#引用etc/objects/templates.cfg中的generic-service配置 host_namelinux11#引用主机名 service_descriptioncpu_load#定义监控服务名,就是在web网页上显示的服务名 check_commandcheck_nrpe!check_load#定义要执行的命令:让check_nrpe调用被监控端的check_load命令执行 notifications_enabled0 } #后面可以定义N个服务 (有时没错也报错不知什么问题,考一份localhsot.cfg,就可以用了)
4、重启nagios服务。打开nagios监控网站,可见如下图所示,则表示被监控节点添加成功。
本文转载自: