Nagios:企业级系统监控方案(3)

通过该图可以看出,我们需要在被监测主机上部署NRPE,他相当于一个守护进程负责监听。而监测主机使用check_nrpe并通过SSL连接访问这个daemon,然后调用被监测方的check_disk,check_load等脚本获取信息并将结果传递到监测主机。同时这些脚本也有能力监测到其他主机的相关信息。

NRPE的使用环境有direct check和indirect check两种,direct check指的是NRPE运行在被监测主机的本地,而indirect check意味着运行NRPE的服务器只是一个中间人,他会继续通过刚才所提及的脚本来监测其他更多远程主机上的服务和系统信息。层次化的监测就是通过这种方式来实现。

为了简单说明问题,我们将部署的是基于direct check的环境部署NRPE。所以下面的操作将会在被监测主机192.168.1.220上进行。

首先要建立Nagios账号,这里我使用同样的密码:

# useradd nagios [ Enter ] # passwd nagios [ Enter ]

之后按照和上面相同的步骤来编译和安装nagios-plugin软件:

# tar -zxf nagios-plugins-1.4.12.tar.gz [ Enter ] # cd nagios-plugins-1.4.12 [ Enter ] # ./configure [ Enter ] # make [ Enter ] # make install [ Enter ]

然后对相关的目录设置权限和所属用户组:

# chown nagios.nagios /usr/local/nagios [ Enter ] # chown –R nagios.nagios /usr/local/nagios/libexec [ Enter ]

接着NRPE包放到/usr/local目录下,按照下面的步骤解压缩,并且编译和安装:

# tar -zxf nrpe-2.12.tar.gz [ Enter ] # cd nrpe-2.12 [ Enter ] # ./configure [ Enter ] # make all [ Enter ] # make install-plugin [ Enter ] # make install-daemon [ Enter ] # make install-daemon-config [ Enter ]

同时安装NRPE的插件、进程以及进程范例配置文件。

接着执行命令将nrpe安装为依赖xinetd超级进程的非独立服务,那么前提是必须安装xinetd。不过一般系统都会自动安装该服务。 最后执行下面的命令将NRPE安装为xinetd超级进程所管理的进程之一。

# make install-xinetd [ Enter ]

完成之后需要编辑/etc/xinetd.d目录下的nrpe文件,并且在最后添加允许实施监测的主机IP地址,这里是192.168.1.10,那么整个配置文件全文如下:

# cat /etc/xinetd.d/nrpe [ Enter ] service nrpe { flags = REUSE socket_type = stream port = 5666 wait = no user = nagios group = nagios server = /usr/local/nagios/bin/nrpe server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd log_on_failure += USERID disable = no only_from = 192.168.1.10 }

然后修改/etc/services档,并添加下面的内容:

nrpe 5666/tcp # nrpe

重启服务:

# /etc/init.d/xinetd restart [ Enter ]

此时检查nrpe服务启动状况如下:

# netstat -nl | grep 5666 [ Enter ] tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN # lsof -i:5666 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME xinetd 9949 root 5u IPv4 28764 TCP *:nrpe (LISTEN)

现在最关键的一步是确保安装的NRPE进程能够正常工作,所以要使用check_nrpe插件进行测试。在监测主机192.168.1.10上执行命令:

# /usr/local/nagios/libexec/check_nrpe -H 192.168.1.220 [ Enter ]

如果能够出现如下的版本号显示,则证明在被监测主机上配置的NRPE已经正常工作,并且监测主机能够通过SSL与被监测主机上的NRPE正常通信。 NRPE v2.12

但是如果出现一些error信息,则需要检查配置,检查的内容包括主要有下面几项:

nrpe的版本号和nrpe-plugin的版本号是否一致。版本不一致极有可能造成该问题。 SSL是否被关闭。确保NRPE以及check_nrpe插件在编译的时候都加入了SSL支持,同时在运行时都开启SSL。不过一般编译过程中默认都会假如支持SSL选项。 确保NRPE的配置文件nrpe.cfg文件可以被nagios用户读取并且nagios用户可以执行nrpe二进制程序。 确认在/etc/xinetd.d/nrpe文件的“only_from=x.x.x.x”中x.x.x.x是访问NRPE的监测主机的IP地址。

NRPE的配置文件/usr/local/nagios/etc/nrpe.cfg中实际上已经包含了一些对系统进行监测的命令。由于NRPE安装在本地,这些命令可以直接协助NRPE从被监测主机获取系统和服务运行状况,而且都是在刚才通过nagios-plugin安装的。

如果从监测主机上运行这些命令进行监测,一切正确可以看到下面的效果。那么不难看出其中的奥妙,即实际上完全可以利用在/usr/local/nagios/libexec/中的各种脚本并添加各项参数来定制自己的监测内容。(如图pic36.png所示)

Nagios:企业级系统监控方案

那么到此为止我们就完成了在远程被监测主机上安装和配置RNPE的任务。现在需要在监测主机,也即是192.168.1.10上面安装和配置check_nrpe插件。

步骤大概分为:

第一,安装check_nrpe插件;
第二,为使用check_nrpe插件建立Nagios命令定义;
第三,建立Nagios host以及服务定义

由于我们刚才已经在安装Nagios之后安装了nrpe,所以实际上第一个步骤已经完成。

现在开始执行第二步骤——建立命令定义:

这里需要花点时间特别说明一下Nagios利用命令定义进行监测的原理:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/bc2656883ccc359dac7bb9b55cc6e4d8.html