如何在 Linux 中设置 Nagios 远程插件执行器 (NRPE)如何在 Linux 中设置 Nagios 远程插件执行器 (NRPE)如何在 Linux 中设置 Nagios 远程插件执行器 (NRPE)如何在 Linux 中设置 Nagios 远程插件执行器 (NRPE)
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 中设置 Nagios 远程插件执行器 (NRPE)

就网络管理而言,Nagios 是最强大的工具之一。 Nagios 可以监视远程主机的可达性以及在其上运行的服务的状态。但是,如果我们想要监控远程主机的网络服务以外的其他内容怎么办?例如,我们可能想要监控远程主机的磁盘利用率或 CPU 处理器负载。 Nagios Remote Plugin Executor (NRPE) 是一个可以帮助做到这一点的工具。 NRPE 允许执行安装在远程主机上的 Nagios 插件,并将它们与现有的 Nagios 服务器集成。

本教程将介绍如何在现有 Nagios 部署上设置 NRPE。本教程主要分为两部分:

  • 第 1 部分:配置远程主机。

  • 第 2 部分:配置 Nagios 监控服务器。

然后,我们将定义一些可与 NRPE 一起使用的自定义命令来结束。

为 NRPE 配置远程主机

第一步:安装 NRPE 服务

您需要在要使用 NRPE 监控的每台远程主机上安装 NRPE 服务。然后,每个远程主机上的 NRPE 服务守护进程将与 Nagios 监控服务器进行通信。

NRPE 服务所需的软件包可以使用 apt-get 或 yum 轻松安装,具体取决于平台。

对于 CentOS/RHEL,我们需要添加 Repoforge 存储库,因为 NRPE 在其存储库中不可用。之后,使用以下 yum 命令。在 Fedora 上,只需运行:


# yum install nagios-nrpe

在 Debian、Ubuntu 或 Linux Mint 上,运行:


# apt-get install nagios-nrpe-server

第二步:准备配置文件

对于基于 Debian 和基于 RedHat 的系统,配置文件 /etc/nagios/nrpe.cfg 类似。备份配置文件,然后更新如下。


# vim /etc/nagios/nrpe.cfg

## NRPE service port can be customized ##
server_port=5666

## the nagios monitoring server is permitted ##
## NOTE: There is no space after the comma ##
allowed_hosts=127.0.0.1,X.X.X.X-IP_v4_of_Nagios_server

## The following examples use hard-coded command arguments.
## These parameters can be modified as needed.

## NOTE: For CentOS 64 bit, use /usr/lib64 instead of /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

如果防火墙正在运行,则应打开 TCP 端口 5666,该端口由 NRPE 守护程序使用。


# 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

## the default command is overwritten ##
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 存储库是必要的。


# yum install nagios-plugins-nrpe

现在 NRPE 插件已安装,请按照其余步骤继续配置 Nagios 服务器。

第二步:为 NRPE 插件定义 Nagios 命令

首先,我们需要在 Nagios 中定义一个使用 NRPE 的命令。


# vim /etc/nagios/objects/commands.cfg

## NOTE: For CentOS 64 bit, use /usr/lib64 instead of /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

使用 NRPE 配置自定义命令

远程服务器上的设置

以下是可与 NRPE 一起使用的自定义命令的列表。这些命令在位于远程服务器的文件 /etc/nagios/nrpe.cfg 中定义。


## Warning status when load average exceeds 1, 2 and 1 for 1, 5, 15 minute interval, respectively.
## Critical status when load average exceeds 3, 5 and 3 for 1, 5, 15 minute interval, respectively.
command[check_load]=/usr/lib/nagios/plugins/check_load -w 1,2,1 -c 3,5,3

## Warning level 25% and critical level 10% for free space of /home.
## Could be customized to monitor any partition (e.g. /dev/sdb1, /, /var, /home)
command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 25% -c 10% -p /home

## Warn if number of instances for process_ABC exceeds 10. Critical for 20 ##
command[check_process_ABC]=/usr/lib/nagios/plugins/check_procs -w 1:10 -c 1:20 -C process_ABC

## Critical if the number of instances for process_XYZ drops below 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)


## example 1: check process 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
}

## example 2: check disk state ##
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,我们可以监控服务器负载、内存使用情况、运行进程、登录用户、磁盘状态和其他参数。

希望这可以帮助。

©2015-2025 艾丽卡 support@alaica.com