如何在 Linux 環境下配置 Nagios Remote Plugin Executor (NRPE)

Sarmed Rahman發表於2014-10-27

就網路管理而言,Nagios 是最強大的工具之一。Nagios 可以監控遠端主機的可訪問性,以及其中正在執行的服務的狀態。不過,如果我們想要監控遠端主機中網路服務以外的東西呢?比方說,我們可能想要監控遠端主機上的磁碟利用率或者 CPU 處理器負載。Nagios Remote Plugin Executor(NRPE)便是一個可以幫助你完成這些操作的工具。NRPE 允許你執行在遠端主機上安裝的 Nagios 外掛,並且將它們整合到一個已經存在的 Nagios 伺服器裡。

本教程將會介紹如何在一個已經部署好的 Nagios 中配置 NRPE。本教程主要分為兩部分:

  • 配置遠端主機。
  • 配置 Nagios 監控伺服器。

之後我們會以定義一些可以被 NRPE 使用的自定義命令來結束本教程。

為 NRPE 配置遠端主機

第一步:安裝 NRPE 服務

你需要在你想要使用 NRPE 監控的每一臺遠端主機上安裝 NRPE 服務。每一臺遠端主機上的 NRPE 服務守護程式將會與一臺 Nagios 監控伺服器進行通訊。

NRPE 服務所需要的軟體包可以很容易地用 apt-get 或者 yum 來安裝,取決於所在的平臺。對於 CentOS 來說,由於 NRPE 並不在 CentOS 的倉庫中,我們需要新增 Repoforge 倉庫

對於 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 倉庫 是必要的。

# 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

為 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 譯者:felixonmars 校對:Caroline

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

相關文章