圖 3  Nagios 通過 NRPE 來遠(yuǎn)端管理服務(wù)

1.Nagios 執(zhí)行安裝在它里面的 check_nrpe 插件,并告訴 check_nrpe 去檢測哪些服務(wù)。

2.通過 SSL,check_nrpe 連接遠(yuǎn)端機(jī)子上的 NRPE daemon

3.NRPE 運(yùn)行本地的各種插件去檢測本地的服務(wù)和狀態(tài)(check_disk,..etc)

4.最后,NRPE 把檢測的結(jié)果傳給主機(jī)端的 check_nrpe,check_nrpe 再把結(jié)果送到 Nagios狀態(tài)隊(duì)列中。

5.Nagios 依次讀取隊(duì)列中的信息,再把結(jié)果顯示出來。

下面通過一個監(jiān)控遠(yuǎn)端服務(wù)器 CPU 負(fù)載情況的實(shí)例,研究如何實(shí)現(xiàn)通過 NRPE 來管理遠(yuǎn)端服務(wù)器。假設(shè)有一臺遠(yuǎn)端服務(wù)器的 IP 是 10.20.0.110,Nagios 服務(wù)主機(jī) IP 是:10.20.10.1。它們都已經(jīng)安裝上了 nagios 系統(tǒng),主機(jī)通過 NRPE 檢查運(yùn)行中的服務(wù)器 CPU 的負(fù)載量,當(dāng)負(fù)載量超過80%是發(fā)出警告(WARNING)報告,超過95%時發(fā)出緊急(CRITICAL)報告。在Nagios 的插件中存在 check_load -w $ARG1$ -c $ARG2$插件,通過查看其幫助,當(dāng) Nagios 調(diào)用它時,就會去檢查對象主機(jī)的CPU負(fù)載,達(dá)到$ARG1$指定的數(shù)值時就會發(fā)出警告(WARNING),達(dá)到$ARG2$時發(fā)出緊急報告(CRITICAL)。

首先是在遠(yuǎn)端服務(wù)器上的修改:

1.讓 Nagios 用戶擁有對如下文件的所用權(quán):

chown nagios.nagios /usr/local/nagios

chown –R nagios.nagios /usr/local/nagios/libexec


然后如果沒有安裝 xinetd,則先安裝 xinetd。

2.按照 Nagios 文檔安裝好 nrpe 插件。

3.修改文件/etc/xinetd.d/nrpe:

only_from  = 127.0.0.1 10.20.10.1(這個是 Nagios 主機(jī)的 IP) 

nrpe 允許以上 IP 的機(jī)器通過 nrpe 查詢服務(wù)

4.在/etc/service 文件里添加:

nrpe  5666/tcp  #nrpe

然后 service xinetd restart

5.執(zhí)行:netstat –at | grep nrpe

如果出現(xiàn):tcp   0      0 *:nrpe   *:*    LISTEN 說明NRPE監(jiān)聽已經(jīng)成功啟動了

6.執(zhí)行  /usr/local/nagios/libexec/check_nrpe –H localhost

出現(xiàn) NRPE  v 2.8.1 則安裝成功。

7.確認(rèn)本地防火墻允許遠(yuǎn)端服務(wù)器訪問 NRPE daemon:

iptables -IRH-Firewall-1-INPUT -p tcp -m tcp –dport 5666 -j ACCEPT

service iptables save


8.打開/usr/local/nagios/etc/commands.cfg,找到 check_load 服務(wù),修改如下:

define command{

command_name check_server_load

command_line $USER1$/check_load -w 80% -c 95%

}

9.打開 /usr/local/nagios/etc/nrpe.cfg 可以看到里面已經(jīng)默認(rèn)定義了一些檢測服務(wù),如:

/usr/local/nagios/libexec/check_nrpe -H localhost -c check_users /usr/local/nagios
/libexec/check_nrpe -H localhost -c check_load /usr
/local/nagios/libexec/check_nrpe -H localhost -c check_hda1

注釋掉除 check_load 外的其它服務(wù)定義。

最后是 Nagios 主機(jī)上的修改:

1在 Nagios 主機(jī)上安裝 nrpe 插件。

2打開/usr/local/nagios/etc/command.cfg添加如下行:

define command{

command_name check_nrpe

command_line $USER1$/check_nrpe –H 10.20.0.110 -c $ARG1$

3再在對象定義的配置文件里(host.cfg 文件),修改 host 為要檢測的主機(jī)的 IP 地址,然后在服務(wù)中添加要檢測的命令:

define service{

use linux-service

service_description remote_CPU_Load

check_command check_nrpe!check_load

}


4在 nagios.cfg 主配置文件中,cfg_file 值為 host.cfg,運(yùn)行

/usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg

如果沒有錯就啟動 nagios:

service nagios start(restart,stop)


5打開瀏覽器:http://主機(jī) IP/nagios 

可以看到所監(jiān)控的遠(yuǎn)端機(jī)器的這個信息了(check_server_load的返回結(jié)果),參看圖2.正常狀態(tài)用綠色表示,一旦遠(yuǎn)端服務(wù)器負(fù)載超過 80%,狀態(tài)信息就會變成紅色警告管理員。

4.  對 Nagios 系統(tǒng)的評價和建議

本文是對 Nagios 的遠(yuǎn)端監(jiān)控功能的應(yīng)用和研究,要想得到更加復(fù)雜的服務(wù),還需要進(jìn)一步的研究它的文檔,并且不斷的去嘗試。和所有的網(wǎng)絡(luò)管理工具一樣,要想進(jìn)行充分利用Nagios進(jìn)行全面的監(jiān)控服務(wù),需要進(jìn)行相當(dāng)復(fù)雜的設(shè)置,并且需要在運(yùn)行時進(jìn)行調(diào)整,以確保所提供的信息是正確的,這些都會隨著對 Nagios 的進(jìn)一步了解而慢慢容易起來。雖然Nagios 配置復(fù)雜,但是一旦配置成功后它的操作很簡單,大部分是基于 web 的操作,而且易于擴(kuò)展,這是它的兩大特點(diǎn)。它還可以很輕松的與其他的工具進(jìn)行整合和擴(kuò)展,可以從其他的應(yīng)用軟件中接收數(shù)據(jù),或者向一些報告引擎或者工具中發(fā)送數(shù)據(jù)等,例如,它可以借助 mrtg 軟件來義圖表的形式顯示監(jiān)控的服務(wù)狀態(tài),限于篇幅在此就不細(xì)說了。Nagios 是一個非常強(qiáng)大的工具,在它運(yùn)行后,它能夠讓你的 IT 工作變得更加容易。而相比商業(yè)版的類似軟件,它也具有低成本的優(yōu)勢。自然,最好的特點(diǎn)是由于它是開放源代碼的軟件,因此我們隨時可以從整個 Nagios 社區(qū)中獲得幫助,能夠共享社區(qū)中的各種插件和經(jīng)驗(yàn)。最后對使用 Nagios 系統(tǒng)提出一點(diǎn)建議。在使用 Nagios 之前,開始考慮需要監(jiān)控哪些服務(wù)和主機(jī),對它們進(jìn)行統(tǒng)一的規(guī)劃,首先對重要資源服務(wù)進(jìn)行管理,接著再去實(shí)現(xiàn)對其它服務(wù)進(jìn)行管理;在配置完 Nagios 后,保存其配置文檔,做好必要的注釋,這將會使所監(jiān)控管理的資源和所運(yùn)行的插件更加清晰,也方便其他人以后能夠在已有 Nagios 上繼續(xù)工作。

分享到

yajing

相關(guān)推薦