就網絡管理而言,Nagios 是最強大的工具之一。Nagios 可以監控遠程主機的可訪問性,以及其中正在運行的服務的狀态。不過,如果我們想要監控遠程主機中網絡服務以外的東西呢?比方說,我們可能想要監控遠程主機上的磁盤利用率或者 CPU 處理器負載。Nagios Remote Plugin Executor(NRPE)便是一個可以幫助你完成這些操作的工具。NRPE 允許你執行在遠程主機上安裝的 Nagios 插件,并且将它們集成到一個已經存在的 Nagios 服務器裡。
本教程将會介紹如何在一個已經部署好的 Nagios 中配置 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 服務已經可以啟動了。
對于基于 RedHat 的系統,NRPE 服務需要被添加為啟動服務。
對于 Debian、Ubuntu、Linux Mint:
# service nagios-nrpe-server restart
對于 CentOS、Fedora 或者 RHEL:
# 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
來源: xmodulo
譯者: felixonmars
轉載本文請遵循原文要求
為 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$' }
如果 Nagios 服務器運行在基于 RedHat 的系統(CentOS、Fedora 或者 RHEL)上,你可以通過 yum 安裝 NRPE 插件。對于 CentOS,添加 Repoforge 倉庫是必要的。
# yum install nagios-plugins-nrpe
現在 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 的系統上略有不同,不過文件的内容是完全一樣的。
# 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 ## 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,我們可以監控系統的負載、運行的進程、已登錄的用戶、磁盤狀态,以及其它參數。
希望這些可以幫到你。
本文由 LCTT原創翻譯,Linux中國榮譽推出
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!