本教程将會介紹如何在一個已經部署好的 nagios 中配置 nrpe。本教程主要分為兩部分:
配置遠端主機。
配置 nagios 監控伺服器。
之後我們會以定義一些可以被 nrpe 使用的自定義指令來結束本教程。
<a target="_blank"></a>
你需要在你想要使用 nrpe 監控的每一台遠端主機上安裝 nrpe 服務。每一台遠端主機上的 nrpe 服務守護程序将會與一台 nagios 監控伺服器進行通信。
對于 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
# 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
為 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$'
}
# yum install nagios-plugins-nrpe
現在 nrpe 插件已經安裝完成,繼續下面的步驟以配置一台 nagios 伺服器。
我們需要首先在 nagios 中定義一個指令來使用 nrpe。
# vim /etc/nagios/objects/commands.cfg
接下來定義遠端主機以及我們将要在它們上面運作的指令。
下面的例子為一台遠端主機定義了一個可以在上面執行的指令。一般來說,你的配置需要按照你的需求來改變。配置檔案的路徑在基于 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 ##
service_description check process xyz
check_command check_nrpe!check_process_xyz
## 示例 2:檢查磁盤狀态 ##
check_command check_nrpe!check_disk
總而言之,nrpe 是 nagios 的一個強大的擴充,它提供了高度可定制的遠端伺服器監控方案。使用 nrpe,我們可以監控系統的負載、運作的程序、已登入的使用者、磁盤狀态,以及其它參數。
希望這些可以幫到你。
原文釋出時間:2014-10-27
本文來自雲栖合作夥伴“linux中國”