Nagios 通过 NRPE 来远端管理服务

1.Nagios 执行安装在它里面的 check_nrpe 插件,并告诉 check_nrpe 去检测哪些服务。

2.通过 SSL,check_nrpe 连接远端机子上的 NRPE daemon

3.NRPE 运行本地的各种插件去检测本地的服务和状态(check_disk,..etc)

4.最后,NRPE 把检测的结果传给主机端的 check_nrpe,check_nrpe 再把结果送到 Nagios状态队列中。

5.Nagios 依次读取队列中的信息,再把结果显示出来。

下面通过一个监控远端服务器 CPU 负载情况的实例,研究如何实现通过 NRPE 来管理远端服务器。假设有一台远端服务器的 IP 是 10.20.0.110,Nagios 服务主机 IP 是:10.20.10.1。它们都已经安装上了 nagios 系统,主机通过 NRPE 检查运行中的服务器 CPU 的负载量,当负载量超过80%是发出警告(WARNING)报告,超过95%时发出紧急(CRITICAL)报告。在Nagios 的插件中存在 check_load -w $ARG1$ -c $ARG2$插件,通过查看其帮助,当 Nagios 调用它时,就会去检查对象主机的CPU负载,达到$ARG1$指定的数值时就会发出警告(WARNING),达到$ARG2$时发出紧急报告(CRITICAL)。

首先是在远端服务器上的修改:

1.让 Nagios 用户拥有对如下文件的所用权:

chown nagios.nagios /usr/local/nagios chown –R nagios.nagios /usr/local/nagios/libexec 然后如果没有安装 xinetd,则先安装 xinetd。

2.按照 Nagios 文档安装好 nrpe 插件。

3.修改文件/etc/xinetd.d/nrpe:

only_from = 127.0.0.1 10.20.10.1(这个是 Nagios 主机的 IP)

nrpe 允许以上 IP 的机器通过 nrpe 查询服务

4.在/etc/service 文件里添加:

nrpe 5666/tcp #nrpe 然后 service xinetd restart

5.执行:netstat –at | grep nrpe

如果出现:tcp 0 0 *:nrpe *:* LISTEN 说明NRPE监听已经成功启动了

6.执行 /usr/local/nagios/libexec/check_nrpe –H localhost

出现 NRPE v 2.8.1 则安装成功。

7.确认本地防火墙允许远端服务器访问 NRPE daemon:

iptables -IRH-Firewall-1-INPUT -p tcp -m tcp –dport 5666 -j ACCEPT service iptables save 8.打开/usr/local/nagios/etc/commands.cfg,找到 check_load 服务,修改如下:

define command { command_name check_server_load command_line $USER1$/check_load -w 80% -c 95% } 9.打开 /usr/local/nagios/etc/nrpe.cfg 可以看到里面已经默认定义了一些检测服务,如:

/usr/local/nagios/libexec/check_nrpe -H localhost -c check_users /usr/local/nagios /libexec/check_nrpe -H localhost -c check_load /usr /local/nagios/libexec/check_nrpe -H localhost -c check_hda1 注释掉除 check_load 外的其它服务定义。


相关内容