如何在 Linux 環境下配置 Nagios Remote Plugin Executor (NRPE)
就網路管理而言,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
相關文章
- 如何在Mac下配置Ruby環境Mac
- linux下配置java環境LinuxJava
- nginx下搭建nagios監控環境NginxiOS
- Linux 下配置 node + mongodb 環境LinuxMongoDB
- linux環境下ssh 互信配置Linux
- Linux環境下Swap配置方法Linux
- Linux環境下nginx安裝配置LinuxNginx
- oracle linux環境下hostonly模式配置OracleLinux模式
- 如何在win10下配置MySQL環境變數?Win10MySql變數
- 在linux環境下安裝JDK並配置環境變數LinuxJDK變數
- Linux環境配置Linux
- DM8 Linux環境下配置ODBCLinux
- Linux下Java環境變數的配置LinuxJava變數
- Nagios之批量修改nrpe配置檔案並自動重啟iOS
- Nginx下構建nagios監控平臺Nagios+nrpe+nagios-plugins+pnp安裝文件薦NginxiOSPlugin
- 如何在Eclipse中配置安卓環境Eclipse安卓
- 聊聊如何在docker環境中配置hostsDocker
- Linux系統下CUDA和cuDNN環境配置LinuxDNN
- Linux下jsp環境:apache,tomcat配置LinuxJSApacheTomcat
- Maven環境下MyBatisGenerator 配置MavenMyBatis
- Windows 下 Laravel 環境配置WindowsLaravel
- Mac環境下AS配置GitMacGit
- NVM,Windows下環境配置Windows
- ubuntu下golang環境配置UbuntuGolang
- windows下JDK環境配置WindowsJDK
- ubuntu下nagios配置UbuntuiOS
- How To Monitor Remote Windows Machine Using Nagios on LinuxREMWindowsMaciOSLinux
- Nagios各元件簡述及nrpe詳解iOS元件
- 如何在Google Web Toolkit環境下GetshellGoWeb
- jdk在linux下安裝、配置環境變數JDKLinux變數
- Linux環境下elasticsearch-6.2.2安裝以及配置LinuxElasticsearch
- Linux & Windows 環境下 RabbitMQ 安裝與基本配置LinuxWindowsMQ
- Linux & Windows 環境下 Redis 安裝與基本配置LinuxWindowsRedis
- Linux下的C/C++編譯環境配置LinuxC++編譯
- Redhat linux AS4 環境下iSCSI協議配置RedhatLinux協議
- Linux環境變數配置Linux變數
- linux上java環境配置LinuxJava
- Linux 下安裝配置 JDK7 配置環境(debian 7)LinuxJDK