如何在 Linux 環(huán)境下配置 Nagios Remote Plugin Executor (NRPE)
就網(wǎng)絡(luò)管理而言,Nagios 是***大的工具之一。Nagios 可以監(jiān)控遠程主機的可訪問性,以及其中正在運行的服務(wù)的狀態(tài)。不過,如果我們想要監(jiān)控遠程主機中網(wǎng)絡(luò)服務(wù)以外的東西呢?比方說,我們可能想要監(jiān)控遠程主機上的磁盤利用率或者 CPU 處理器負載。Nagios Remote Plugin Executor(NRPE)便是一個可以幫助你完成這些操作的工具。NRPE 允許你執(zhí)行在遠程主機上安裝的 Nagios 插件,并且將它們集成到一個已經(jīng)存在的 Nagios 服務(wù)器里。
本教程將會介紹如何在一個已經(jīng)部署好的 Nagios 中配置 NRPE。本教程主要分為兩部分:
- 配置遠程主機。
- 配置 Nagios 監(jiān)控服務(wù)器。
之后我們會以定義一些可以被 NRPE 使用的自定義命令來結(jié)束本教程。
為 NRPE 配置遠程主機
***步:安裝 NRPE 服務(wù)
你需要在你想要使用 NRPE 監(jiān)控的每一臺遠程主機上安裝 NRPE 服務(wù)。每一臺遠程主機上的 NRPE 服務(wù)守護進程將會與一臺 Nagios 監(jiān)控服務(wù)器進行通信。
NRPE 服務(wù)所需要的軟件包可以很容易地用 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 的系統(tǒng)中比較相近。讓我們備份并修改配置文件:
- # vim /etc/nagios/nrpe.cfg
- ## NRPE 服務(wù)端口是可以自定義的 ##
- server_port=5666
- ## 允許 Nagios 監(jiān)控服務(wù)器訪問 ##
- ## 注意:逗號后面沒有空格 ##
- allowed_hosts=127.0.0.1,X.X.X.X-IP_v4_of_Nagios_server
- ## 下面的例子中我們硬編碼了參數(shù)。
- ## 這些參數(shù)可以按需修改。
- ## 注意:對于 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
現(xiàn)在配置文件已經(jīng)準備好了,NRPE 服務(wù)已經(jīng)可以啟動了。
第三步:初始化 NRPE 服務(wù)
對于基于 RedHat 的系統(tǒng),NRPE 服務(wù)需要被添加為啟動服務(wù)。
對于 Debian、Ubuntu、Linux Mint:
- # service nagios-nrpe-server restart
對于 CentOS、Fedora 或者 RHEL:
- # service nrpe restart
- # chkconfig nrpe on
第四步:驗證 NRPE 服務(wù)狀態(tài)
NRPE 守護進程的狀態(tài)信息可以在系統(tǒng)日志中找到。對于基于 Debian 的系統(tǒng),日志文件在 /var/log/syslog,而基于 RedHat 的系統(tǒng)的日志文件則是 /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 應(yīng)該被開啟。
- # netstat -tpln | grep 5666
- tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 19885/nrpe
#p#
為 NRPE 配置 Nagios 監(jiān)控服務(wù)器
為 NRPE 配置已有的 Nagios 監(jiān)控服務(wù)器的***步是在服務(wù)器上安裝 NRPE 插件。
***步:安裝 NRPE 插件
當 Nagios 服務(wù)器運行在基于 Debian 的系統(tǒng)(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 服務(wù)器運行在基于 RedHat 的系統(tǒng)(CentOS、Fedora 或者 RHEL)上,你可以通過 yum 安裝 NRPE 插件。對于 CentOS,添加 Repoforge 倉庫 是必要的。
- # yum install nagios-plugins-nrpe
現(xiàn)在 NRPE 插件已經(jīng)安裝完成,繼續(xù)下面的步驟以配置一臺 Nagios 服務(wù)器。
第二步:為 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$'
- }
第三步:添加主機與命令定義
接下來定義遠程主機以及我們將要在它們上面運行的命令。
下面的例子為一臺遠程主機定義了一個可以在上面執(zhí)行的命令。一般來說,你的配置需要按照你的需求來改變。配置文件的路徑在基于 Debian 和基于 RedHat 的系統(tǒng)上略有不同,不過文件的內(nèi)容是完全一樣的。
對于 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 服務(wù)
在重啟 Nagios 之前,可以通過測試來驗證配置。
對于 Ubuntu、Debian 或者 Linux Mint:
- # nagios3 -v /etc/nagios3/nagios.cfg
對于 CentOS、Fedora 或者 RHEL:
- # nagios -v /etc/nagios/nagios.cfg
如果一切正常,我們就可以重啟 Nagios 服務(wù)了。
- # service nagios restart
#p#
為 NRPE 配置自定義命令
遠程服務(wù)器上安裝
下面列出了一些可以用于 NRPE 的自定義命令。這些命令在遠程服務(wù)器的 /etc/nagios/nrpe.cfg 文件中定義。
- ## 當 1、5、15 分鐘的平均負載分別超過 1、2、1 時進入警告狀態(tài)
- ## 當 1、5、15 分鐘的平均負載分別超過 3、5、3 時進入嚴重警告狀態(tài)
- command[check_load]=/usr/lib/nagios/plugins/check_load -w 1,2,1 -c 3,5,3
- ## 對于 /home 目錄的可用空間設(shè)置了警告級別為 25%,以及嚴重警告級別為 10%。
- ## 可以定制為監(jiān)控任何分區(qū)(比如 /dev/sdb1、/、/var、/home)
- command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 25% -c 10% -p /home
- ## 當 process_ABC 的實例數(shù)量超過 10 時警告,超過 20 時嚴重警告 ##
- command[check_process_ABC]=/usr/lib/nagios/plugins/check_procs -w 1:10 -c 1:20 -C process_ABC
- ## 當 process_ABC 的實例數(shù)量跌到 1 以下時嚴重警告 ##
- command[check_process_XYZ]=/usr/lib/nagios/plugins/check_procs -w 1: -c 1: -C process_XYZ
Nagios 監(jiān)控服務(wù)器上安裝
我們通過如下命令來修改 Nagios 監(jiān)控服務(wù)器里的服務(wù)定義來應(yīng)用上面定義的自定義命令。服務(wù)定義可以寫在所有服務(wù)被定義的地方(比如 /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:檢查磁盤狀態(tài) ##
- 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 的一個強大的擴展,它提供了高度可定制的遠程服務(wù)器監(jiān)控方案。使用 NRPE,我們可以監(jiān)控系統(tǒng)的負載、運行的進程、已登錄的用戶、磁盤狀態(tài),以及其它參數(shù)。
希望這些可以幫到你。
via: http://xmodulo.com/2014/03/nagios-remote-plugin-executor-nrpe-linux.html
作者:Sarmed Rahman 譯者:felixonmars 校對:Caroline