本教程将会介绍如何在一个已经部署好的 nagios 中配置 nrpe。本教程主要分为两部分:
配置远程主机。
配置 nagios 监控服务器。
之后我们会以定义一些可以被 nrpe 使用的自定义命令来结束本教程。
<a target="_blank"></a>
你需要在你想要使用 nrpe 监控的每一台远程主机上安装 nrpe 服务。每一台远程主机上的 nrpe 服务守护进程将会与一台 nagios 监控服务器进行通信。
对于 debian、ubuntu 或者 linux mint:
# apt-get install nagios-nrpe-server
对于 centos、fedora 或者 rhel:
# yum install nagios-nrpe
配置文件 /etc/nagios/nrpe.cfg 在基于 debian 或者 redhat 的系统中比较相近。让我们备份并修改配置文件:
# vim /etc/nagios/nrpe.cfg
## nrpe 服务端口是可以自定义的 ##
server_port=5666
## 允许 nagios 监控服务器访问 ##
## 注意:逗号后面没有空格 ##
allowed_hosts=127.0.0.1,x.x.x.x-ip_v4_of_nagios_server
## 下面的例子中我们硬编码了参数。
## 这些参数可以按需修改。
## 注意:对于 centos 64 位用户,请使用 /usr/lib64 替代 /usr/lib ##
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200
现在配置文件已经准备好了,nrpe 服务已经可以启动了。
对于基于 redhat 的系统,nrpe 服务需要被添加为启动服务。
对于 debian、ubuntu、linux mint:
# service nagios-nrpe-server restart
# service nrpe restart
# chkconfig nrpe on
nrpe 守护进程的状态信息可以在系统日志中找到。对于基于 debian 的系统,日志文件在 /var/log/syslog,而基于 redhat 的系统的日志文件则是 /var/log/messages。下面提供一段样例日志以供参考:
nrpe[19723]: starting up daemon
nrpe[19723]: listening for connections on port 5666
nrpe[19723]: allowing connections from: 127.0.0.1,x.x.x.x
如果使用了防火墙,被 nrpe 守护进程使用的 tcp 端口 5666 应该被开启。
# netstat -tpln | grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* listen 19885/nrpe
为 nrpe 配置已有的 nagios 监控服务器的第一步是在服务器上安装 nrpe 插件。
当 nagios 服务器运行在基于 debian 的系统(debian、ubuntu 或者 linux mint)上时,需要的软件包可以通过 apt-get 安装。
# apt-get install nagios-nrpe-plugin
插件安装完成后,对随插件安装的 check_nrpe 命令稍作修改。
# vim /etc/nagios-plugins/config/check_nrpe.cfg
## 默认命令会被覆盖 ##
define command{
command_name check_nrpe
command_line /usr/lib/nagios/plugins/check_nrpe -h '$hostaddress$' -c '$arg1$'
}
# yum install nagios-plugins-nrpe
现在 nrpe 插件已经安装完成,继续下面的步骤以配置一台 nagios 服务器。
我们需要首先在 nagios 中定义一个命令来使用 nrpe。
# vim /etc/nagios/objects/commands.cfg
接下来定义远程主机以及我们将要在它们上面运行的命令。
下面的例子为一台远程主机定义了一个可以在上面执行的命令。一般来说,你的配置需要按照你的需求来改变。配置文件的路径在基于 debian 和基于 redhat 的系统上略有不同,不过文件的内容是完全一样的。
# vim /etc/nagios3/conf.d/nrpe.cfg
# vim /etc/nagios/objects/nrpe.cfg
define host{
use linux-server
host_name server-1
alias server-1
address x.x.x.x-ipv4_address_of_remote_host
define service {
host_name server-1
service_description check load
check_command check_nrpe!check_load
check_interval 1
use generic-service
在重启 nagios 之前,可以通过测试来验证配置。
对于 ubuntu、debian 或者 linux mint:
# nagios3 -v /etc/nagios3/nagios.cfg
# nagios -v /etc/nagios/nagios.cfg
如果一切正常,我们就可以重启 nagios 服务了。
# service nagios restart
下面列出了一些可以用于 nrpe 的自定义命令。这些命令在远程服务器的 /etc/nagios/nrpe.cfg 文件中定义。
## 当 1、5、15 分钟的平均负载分别超过 1、2、1 时进入警告状态
## 当 1、5、15 分钟的平均负载分别超过 3、5、3 时进入严重警告状态
command[check_load]=/usr/lib/nagios/plugins/check_load -w 1,2,1 -c 3,5,3
## 对于 /home 目录的可用空间设置了警告级别为 25%,以及严重警告级别为 10%。
## 可以定制为监控任何分区(比如 /dev/sdb1、/、/var、/home)
command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 25% -c 10% -p /home
## 当 process_abc 的实例数量超过 10 时警告,超过 20 时严重警告 ##
command[check_process_abc]=/usr/lib/nagios/plugins/check_procs -w 1:10 -c 1:20 -c process_abc
## 当 process_abc 的实例数量跌到 1 以下时严重警告 ##
command[check_process_xyz]=/usr/lib/nagios/plugins/check_procs -w 1: -c 1: -c process_xyz
我们通过如下命令来修改 nagios 监控服务器里的服务定义来应用上面定义的自定义命令。服务定义可以写在所有服务被定义的地方(比如 /etc/nagios/objects/nrpe.cfg 或 /etc/nagios3/conf.d/nrpe.cfg)
## 示例 1:检查进程 xyz ##
service_description check process xyz
check_command check_nrpe!check_process_xyz
## 示例 2:检查磁盘状态 ##
check_command check_nrpe!check_disk
总而言之,nrpe 是 nagios 的一个强大的扩展,它提供了高度可定制的远程服务器监控方案。使用 nrpe,我们可以监控系统的负载、运行的进程、已登录的用户、磁盘状态,以及其它参数。
希望这些可以帮到你。
原文发布时间:2014-10-27
本文来自云栖合作伙伴“linux中国”