TranslateProject/published/201410/20140910 How to set up Nagios Remote Plugin Executor (NRPE) in Linux.md
2014-11-01 21:03:29 +08:00

237 lines
9.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

如何在 Linux 环境下配置 Nagios Remote Plugin Executor (NRPE)
================================================================================
就网络管理而言Nagios 是最强大的工具之一。Nagios 可以监控远程主机的可访问性,以及其中正在运行的服务的状态。不过,如果我们想要监控远程主机中网络服务以外的东西呢?比方说,我们可能想要监控远程主机上的磁盘利用率或者 [CPU 处理器负载][1]。Nagios Remote Plugin ExecutorNRPE便是一个可以帮助你完成这些操作的工具。NRPE 允许你执行在远程主机上安装的 Nagios 插件,并且将它们集成到一个[已经存在的 Nagios 服务器][2]里。
本教程将会介绍如何在一个已经部署好的 Nagios 中配置 NRPE。本教程主要分为两部分
- 配置远程主机。
- 配置 Nagios 监控服务器。
之后我们会以定义一些可以被 NRPE 使用的自定义命令来结束本教程。
### 为 NRPE 配置远程主机 ###
#### 第一步:安装 NRPE 服务 ####
你需要在你想要使用 NRPE 监控的每一台远程主机上安装 NRPE 服务。每一台远程主机上的 NRPE 服务守护进程将会与一台 Nagios 监控服务器进行通信。
NRPE 服务所需要的软件包可以很容易地用 apt-get 或者 yum 来安装,取决于所在的平台。对于 CentOS 来说,由于 NRPE 并不在 CentOS 的仓库中,我们需要[添加 Repoforge 仓库][3]。
**对于 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 服务已经可以启动了。
#### 第三步:初始化 NRPE 服务 ####
对于基于 RedHat 的系统NRPE 服务需要被添加为启动服务。
**对于 Debian、Ubuntu、Linux Mint**
# service nagios-nrpe-server restart
**对于 CentOS、Fedora 或者 RHEL**
# service nrpe restart
# chkconfig nrpe on
#### 第四步:验证 NRPE 服务状态 ####
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 监控服务器的第一步是在服务器上安装 NRPE 插件。
#### 第一步:安装 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$'
}
如果 Nagios 服务器运行在基于 RedHat 的系统CentOS、Fedora 或者 RHEL你可以通过 yum 安装 NRPE 插件。对于 CentOS[添加 Repoforge 仓库][4] 是必要的。
# yum install nagios-plugins-nrpe
现在 NRPE 插件已经安装完成,继续下面的步骤以配置一台 Nagios 服务器。
#### 第二步:为 NRPE 插件定义 Nagios 命令 ####
我们需要首先在 Nagios 中定义一个命令来使用 NRPE。
# vim /etc/nagios/objects/commands.cfg
----------
## 注意:对于 CentOS 64 位用户,请使用 /usr/lib64 替代 /usr/lib ##
define command{
command_name check_nrpe
command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTADDRESS$' -c '$ARG1$'
}
#### 第三步:添加主机与命令定义 ####
接下来定义远程主机以及我们将要在它们上面运行的命令。
下面的例子为一台远程主机定义了一个可以在上面执行的命令。一般来说,你的配置需要按照你的需求来改变。配置文件的路径在基于 Debian 和基于 RedHat 的系统上略有不同,不过文件的内容是完全一样的。
**对于 Debian、Ubuntu 或者 Linux Mint**
# vim /etc/nagios3/conf.d/nrpe.cfg
**对于 CentOS、Fedora 或者 RHEL**
# 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 服务 ####
在重启 Nagios 之前,可以通过测试来验证配置。
**对于 Ubuntu、Debian 或者 Linux Mint**
# nagios3 -v /etc/nagios3/nagios.cfg
**对于 CentOS、Fedora 或者 RHEL**
# nagios -v /etc/nagios/nagios.cfg
如果一切正常,我们就可以重启 Nagios 服务了。
# service nagios restart
![](https://farm8.staticflickr.com/7024/13330387845_0bde8b6db5_z.jpg)
### 为 NRPE 配置自定义命令 ###
#### 远程服务器上安装 ####
下面列出了一些可以用于 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 监控服务器上安装 ####
我们通过如下命令来修改 Nagios 监控服务器里的服务定义来应用上面定义的自定义命令。服务定义可以写在所有服务被定义的地方(比如 /etc/nagios/objects/nrpe.cfg 或 /etc/nagios3/conf.d/nrpe.cfg
## 示例 1检查进程 XYZ ##
define service {
host_name server-1
service_description Check Process XYZ
check_command check_nrpe!check_process_XYZ
check_interval 1
use generic-service
}
## 示例 2检查磁盘状态 ##
define service {
host_name server-1
service_description Check Process XYZ
check_command check_nrpe!check_disk
check_interval 1
use generic-service
}
总而言之NRPE 是 Nagios 的一个强大的扩展,它提供了高度可定制的远程服务器监控方案。使用 NRPE我们可以监控系统的负载、运行的进程、已登录的用户、磁盘状态以及其它参数。
希望这些可以帮到你。
--------------------------------------------------------------------------------
via: http://xmodulo.com/2014/03/nagios-remote-plugin-executor-nrpe-linux.html
作者:[Sarmed Rahman][a]
译者:[felixonmars](https://github.com/felixonmars)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/sarmed
[1]:http://xmodulo.com/2012/08/how-to-measure-average-cpu-utilization.html
[2]:http://linux.cn/article-2436-1.html
[3]:http://xmodulo.com/2013/01/how-to-set-up-rpmforge-repoforge-repository-on-centos.html
[4]:http://xmodulo.com/2013/01/how-to-set-up-rpmforge-repoforge-repository-on-centos.html