二、进行被控端的安装
NRPE的使用环境有direct check和indirectcheck两种,direct check指的是NRPE运行在被监测主机的本地,而indirect check意味着运行NRPE的服务器只是一个中间人,他会继续通过刚才所提及的脚本来监测其他更多远程主机上的服务和系统信息。层次化的监测就是通过这种方式来实现。
为了简单说明问题,我们将部署的是基于direct check的环境部署NRPE。
1.安装环境
# yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel
2.建立用户和用户密码以及目录
然后要建立Nagios账号,这里我使用同样的密码:
# mkdir /usr/local/nagios
# useradd nagios
# passwd nagios
3.安装nagios-plugins-2.0.3.tar.gz插件
之后按照和上面相同的步骤来编译和安装插件:
# cd /root/Downloads
# tar –zxvf nagios-plugins-2.0.3.tar.gz
# cd nagios-plugins-2.0.3
# ./configure –prefix=/usr/local/nagios
# make
# make install
然后对相关的目录设置权限和所属用户组:
# chown nagios.nagios /usr/local/nagios
# chown –R nagios.nagios /usr/local/nagios/libexec
4.安装NRPE
同样的将NRPE的安装包放置到/root/Downloads下面,然后进行解压缩、编译和安装
# tar –zxvf nrpe-2.12.tar.gz
# cd nrpe-2.12
# ./configure –prefix=/usr/local/nagios #注意这里的安装位置建议最好和主控端相同,经验之谈。
# make all
# make install-plugin #nrpe的插件
# make install-daemon #nrpe的进程
# make install-daemon-config #nrpe的示例配置文件
5.安装超级进程服务和nrpe添加到超级进程,以及添加nrpe端口到服务列表
接着执行命令将nrpe安装为依赖xinetd超级进程的非独立服务,那么前提是必须安装xinetd。不过一般系统都会自动安装该服务。 最后执行下面的命令将NRPE安装为xinetd超级进程所管理的进程之一。
# make install-xinetd
完成之后需要编辑/etc/xinetd.d目录下的nrpe文件,并且在最后添加允许实施监测的主机IP地址,这里是192.168.34.131,那么整个配置文件全文如下:
# cat /etc/xinetd.d/nrpe
然后修改vi /etc/services档,并添加下面的内容:
nrpe 5666/tcp #nrpe
这个服务列表里面有很多东西,这里只截取了一部分。
然后重新启动服务:
# /etc/init.d/xinetd restart
6.检查配置是否都正常
此时检查nrpe服务启动状况如下:
# netstat –an | grep 5666
# lsof –i:5666
现在最关键的一步是确保安装的NRPE进程能够正常工作,所以要使用check_nrpe插件进行测试。在监测主机192.168.34.131上执行命令:
# /usr/local/Nagios/libexec/check_nrpe –H 192.168.34.132
如果这里可以看到版本号,就算是成功了,即:
注意,如果这里显示没有文件,你就要找到libexec这个文件,看看里面有没有check_nrpe这个文件了。(因为有时候你用ssh2登录到linux上面去看,可能原本在那个目录里面,但是你通过ls –al的命令却是看不到的。)
7.进行主控段对被控端配置文件的修改
因为前面已经将被控端的环境和程序都安装好了,那么怎么能让主机这边来监控到被控端主机的信息从而实现控制的功能呢,这里就会有详细的方法。
其实很简单,只用在主控端(这里是192.168.34.131)的/usr/local/nagios/etc/objects下面找到一个localhost.cfg的配置文件,然后进行修改就可以了。
修改方法如下:
# vi /usr/local/nagios/etc/objects/localhost.cfg
先添加HOST DEFINTION的主机部分
再添加SERVICE DEFINITIONS部分
如果你需要再添加其他对被控端进行监控的功能,可以在SERVICE DEFINITIONS里面进行添加,而这里面的所有服务的内容,比如check_command后面的check_ping其实已经在/usr/local/nagios/etc/objects/templates.cfg的配置文件里面进行了定义。这里是引用的意思,再比如use也表示引用的意思,而“use local-service”就表示引用了主机服务。
8.检查配置文件的正确性并验证web端是否有收到被控端信息
上面进行完了配置文件的修改以后,不要忘了进行配置文件的检查,看是否可以通过检查。
# /usr/local/nagios/bin/nagios –v/usr/loacal/nagios/etc/nagios.cfg
如果出现下图所示的情况,就表示验证通过。
这时候就可以来看看web页面的主机信息,可以明显看到除了localhost之外多另一台主机(而这里多出来的主机名称应该是linux132才对。)
三、多个主机添加管理办法
如果有很多主机需要被监控,那么为了便于管理,就肯定会用到主机群组来管理。比如linux系统的主机和window系统的主机,安装web的服务器或者安装有sql server的服务器,他们的监控要求是不一样的,所以除了群组以外,最好能够定义不一样的模版,方便以后修改管理。
举例说明:
前提:1.已经能够实现单点主机的监控,即直接在localhost.cfg的配置文件中进行添加。
2.web页面也已经可以看到通过添加而来的被控端主机信息。
满足以上两个条件只是为了说明后续的操作只是来创建和更改,而不用再做前期的工作。
当前环境:(我是在VMware workstation10上面完成实验的。)
1.主控端的主机(CentOS6.6)
IP address 192.168.34.131
2.被控端的主机(CentOS6.6)
主机名称:192-168-34-132
IP address :192.168.34.132
假设条件:1.需要将被控端的主机加入到新建立的主机组linux-test
2. 单独存放被控端主机的配置文件在/usr/local/nagios/etc/objects/test下面,以便于以后针对单个主机进行修改。
3. 要满足主控端的主机和被控端加入主机组的(主机192-168-34-132)能够同时被主控端监控。
操作步骤:
1.首先在/usr/local/nagios/etc/objects的目录下建立组文件hostgroup.cfg和test目录文件,并且加入到nagios的用户和用户组:
# chownnagios.nagios /usr/local/nagios/etc/objects/hostgroup.cfg
[root@localhostobjects]#ls –l查看是否已经加入到nagios的用户和用户组下面。
2.在/usr/local/nagios/etc/nagios.cfg里面进行新创建的hostgroup.cfg配置文件和目录test的添加。
3.定义hostgroup.cfg配置文件的内容,将本地主机和被控端主机加入到这个组配置文件里面。
#creat anew hostgroup
definehostgroup{
hostgroup_name linux-test #这里的组名称可以自定义
alias linuxtest #alias是别名的意思
members localhost,192-168-34-132 #加入本地和被控端名称
}
4.在/usr/local/nagios/etc/objects/test下建立被控端主机192-168-34-132的配置文件
192-168-34-132.cfg并进行配置,配置如下,可以参照templates.cfg的配置文件进行更改。
而下图中use引用的后面的linux-server就是在templates.cfg里面被定义。
5.更改好了以后,就可以检测配置文件是否全部正确可以通过:
# /usr/local/nagios/bin/nagios -v/usr/local/nagios/bin/nagios
如果通过,那就进行nagios的服务重新启动,这时候应该可以看到在web的监控页面里面
已经有两个主机的显示了。
#service nagios restart