nagios的CS模式的,所以在被监控主机Client上要有客户端,而监控机Server要有和客户端交互的组建,这个就是check_nrpe。
如果不需要监控远端主机,仅仅是想知道本地监控机的监控信息,那么就不用安装该插件;但这样一来失去了监控的意义。
nagios工作原理:
Nagios<-->check_nrpe <=====>NRPE<--->check_disk
NRPE总共由两部分组成:
check_nrpe ==>插件,位于监控主机上
NRPE daemon==>运行在远程的Linux主机上(通常就是被监控机)
按照上面的监控过程:
当Nagios 需要监控某个远程Linux 主机的服务或者资源情况时:
Nagios会运行check_nrpe插件,告诉它要检查什么;
check_nrpe ==>插件会连接到远程的NRPE daemon,所用的方式是SSL;
NRPE daemon==>会运行相应的Nagios 插件来执行检查;
NRPE daemon==>将检查的结果返回给check_nrpe 插件,插件将其递交给nagios做处理。
NRPE是在nagios-plugins正确安装的基础上进行的,nagios-plugins的安装详情请移步到:
[Nagios监控之2:nagios-plugins安装]http://4709096.blog.51cto.com/4699096/1702253
1.依赖包检测
#rpm -q openssl-devel
#yum install openssl-devel
2.编译安装
NRPE依赖于nagios-plugins,因此,需要先安装之
# tar -zxvf nrpe-2.12.tar.gz
# cd nrpe-2.13
# ./configure \
--prefix=/usr/local/nagios \
--with-nrpe-user=nagios \
--with-nrpe-group=nagios \
--with-nagios-user=nagios \
--with-nagios-group=nagios \
--enable-command-args \
--enable-ssl
(也可以自己# ./configure)
# make all
# make install-plugin
(监控端只安装这一个插件即可)
3.配置监控
3.1定义nrpe监控命令
在commands.cfg中增加check_nrpe命令的定义,以便Nagios监控主机可以使用check_nrpe插件来获取远程被监控主机的信息。
#vim /usr/local/nagios/etc/objects/commands.cfg
在最后面增加如下内容:
# 'check_nrpe' command definition
define command{
# 定义命令名称为check_nrpe,在services.cfg中要使用这个名称
command_name check_nrpe
#这是定义实际运行的插件程序
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
注意:这个命令行的书写要完全按照check_nrpe这个命令的用法,不知道用法的就用check_nrpe –h查看.
3.2添加远端被监控主机信息
#vim /usr/local/nagios/etc/objects/hosts.cfg
该文件默认不存在,新建他是为了统一存放主机配置信息
define host{
#引用主机linux-server的属性信息,linux-server主机在templates.cfg文件中进行了定义。
use linux-server
host_name Nagios-Linux #主机名
alias Nagios-Linux #主机别名
#被监控的主机地址,这个地址可以是ip,也可以是域名。
address 192.168.1.111
}
#定义一个主机组
define hostgroup{
hostgroup_name bsmart-servers #主机组名称,可以随意指定
alias bsmart servers #主机组别名
#主机组成员,其中“Nagios-Linux”就是上面定义的主机
members Nagios-Linux
}
3.3添加远端被监控主机上定义要监控服务信息
该文件默认不存在,新建他是为了统一存放服务配置信息,如192.168.1.111和其分组信息。
#vim /usr/local/nagios/etc/objects/services.cfg
如:监控负载
define service{
#引用主机local-service的属性信息,local-service在templates.cfg文件中进行了定义。
use local-service
host_name Nagios-Linux #在hosts.cof中定义的主机
service_description Current Load
#check_load要在被监控主机的nrpe.cfg中定义,默认有这个命令
check_command check_nrpe!check_load
}
如:监控磁盘(注意要监控磁盘的类型和设备号)
define service{
use local-service
host_name Nagios-Linux
service_description Check Disk sda1
check_command check_nrpe!check_sda1
}
3.4添加自定义配置文件到nagios总配置文件中(hosts.cfg和services.cfg)
# vim /usr/local/nagios/etc/nagios.cfg
添加
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/services.cfg
鸣谢:本人参考了多篇文章后总结而得,在此感谢各位网络分享者!