Linux下Nagios網(wǎng)絡(luò)管理模塊-實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)器的監(jiān)控
運(yùn)用 Nagios 實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)上服務(wù)器的監(jiān)控
1.實(shí)現(xiàn)原理
處于網(wǎng)絡(luò)中的各種服務(wù)器需要管理和維護(hù),管理員不可能及時(shí)對(duì)每一臺(tái)的狀態(tài)都進(jìn)行監(jiān)控,這時(shí)候當(dāng)然需要借助軟件的功能來(lái)實(shí)現(xiàn)了。Nagios的功能是監(jiān)控服務(wù)和主機(jī),但是他自身并不包括這部分功能,所有的監(jiān)控、檢測(cè)功能都是通過(guò)各種插件來(lái)完成的。啟動(dòng) Nagios后,它會(huì)周期性的自動(dòng)調(diào)用插件去檢測(cè)服務(wù)器狀態(tài),同時(shí) Nagios 會(huì)維持一個(gè)隊(duì)列,所有插件返回來(lái)的狀態(tài)信息都進(jìn)入隊(duì)列,Nagios每次都從隊(duì)首開(kāi)始讀取信息,并進(jìn)行處理后,把狀態(tài)結(jié)果通過(guò) web 顯示出來(lái)。Nagios 提供了許多插件,利用這些插件可以方便的監(jiān)控很多服務(wù)狀態(tài)。安裝完成后,在nagios 主目錄下的/libexec 里放有 nagios 自帶的可以使用的所有插件,如,check_disk 是檢查磁盤(pán)空間的插件,check_load是檢查CPU負(fù)載的,等等。每一個(gè)插件可以通過(guò)運(yùn)行./check_xxx –h 來(lái)查看其使用方法和功能。Nagios 可以識(shí)別 4 種狀態(tài)返回信息,即 0(OK)表示狀態(tài)正常、1(WARNING)表示出現(xiàn)一定的異常、2(CRITICAL)表示出現(xiàn)非常眼中的錯(cuò)誤、3(UNKNOWN)表示被監(jiān)控的對(duì)象已經(jīng)停止了。Nagios 根據(jù)插件返回來(lái)的值,來(lái)判斷監(jiān)控對(duì)象的狀態(tài),并通過(guò) web 顯示出來(lái),以供管理員及時(shí)發(fā)現(xiàn)故障。
2.利用 Nagios 的 NRPE 插件實(shí)現(xiàn)網(wǎng)絡(luò)上服務(wù)器的監(jiān)控
知道 Nagios 是如何通過(guò)插件來(lái)管理服務(wù)器對(duì)象后,現(xiàn)在開(kāi)始研究它是如何管理遠(yuǎn)端服務(wù)器對(duì)象的。Nagios 系統(tǒng)提供了一個(gè)插件 NRPE。Nagios 通過(guò)周期性的運(yùn)行它來(lái)獲得遠(yuǎn)端服務(wù)器的各種狀態(tài)信息。它們之間的關(guān)系如下圖 所示:

Nagios 通過(guò) NRPE 來(lái)遠(yuǎn)端管理服務(wù)
1.Nagios 執(zhí)行安裝在它里面的 check_nrpe 插件,并告訴 check_nrpe 去檢測(cè)哪些服務(wù)。
2.通過(guò) SSL,check_nrpe 連接遠(yuǎn)端機(jī)子上的 NRPE daemon
3.NRPE 運(yùn)行本地的各種插件去檢測(cè)本地的服務(wù)和狀態(tài)(check_disk,..etc)
4.最后,NRPE 把檢測(cè)的結(jié)果傳給主機(jī)端的 check_nrpe,check_nrpe 再把結(jié)果送到 Nagios狀態(tài)隊(duì)列中。
5.Nagios 依次讀取隊(duì)列中的信息,再把結(jié)果顯示出來(lái)。
下面通過(guò)一個(gè)監(jiān)控遠(yuǎn)端服務(wù)器 CPU 負(fù)載情況的實(shí)例,研究如何實(shí)現(xiàn)通過(guò) NRPE 來(lái)管理遠(yuǎn)端服務(wù)器。假設(shè)有一臺(tái)遠(yuǎn)端服務(wù)器的 IP 是 10.20.0.110,Nagios 服務(wù)主機(jī) IP 是:10.20.10.1。它們都已經(jīng)安裝上了 nagios 系統(tǒng),主機(jī)通過(guò) NRPE 檢查運(yùn)行中的服務(wù)器 CPU 的負(fù)載量,當(dāng)負(fù)載量超過(guò)80%是發(fā)出警告(WARNING)報(bào)告,超過(guò)95%時(shí)發(fā)出緊急(CRITICAL)報(bào)告。在Nagios 的插件中存在 check_load -w $ARG1$ -c $ARG2$插件,通過(guò)查看其幫助,當(dāng) Nagios 調(diào)用它時(shí),就會(huì)去檢查對(duì)象主機(jī)的CPU負(fù)載,達(dá)到$ARG1$指定的數(shù)值時(shí)就會(huì)發(fā)出警告(WARNING),達(dá)到$ARG2$時(shí)發(fā)出緊急報(bào)告(CRITICAL)。
首先是在遠(yuǎn)端服務(wù)器上的修改:
1.讓 Nagios 用戶擁有對(duì)如下文件的所用權(quán):
- chown nagios.nagios /usr/local/nagios
 - chown –R nagios.nagios /usr/local/nagios/libexec
 
然后如果沒(méi)有安裝 xinetd,則先安裝 xinetd。
2.按照 Nagios 文檔安裝好 nrpe 插件。
3.修改文件/etc/xinetd.d/nrpe:
only_from = 127.0.0.1 10.20.10.1(這個(gè)是 Nagios 主機(jī)的 IP)
nrpe 允許以上 IP 的機(jī)器通過(guò) 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 說(shuō)明NRPE監(jiān)聽(tīng)已經(jīng)成功啟動(dòng)了
6.執(zhí)行 /usr/local/nagios/libexec/check_nrpe –H localhost
出現(xiàn) NRPE v 2.8.1 則安裝成功。
7.確認(rèn)本地防火墻允許遠(yuǎn)端服務(wù)器訪問(wèn) NRPE daemon:
- iptables -IRH-Firewall-1-INPUT -p tcp -m tcp –dport 5666 -j ACCEPT
 - service iptables save
 
8.打開(kāi)/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.打開(kāi) /usr/local/nagios/etc/nrpe.cfg 可以看到里面已經(jīng)默認(rèn)定義了一些檢測(cè)服務(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打開(kāi)/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再在對(duì)象定義的配置文件里(host.cfg 文件),修改 host 為要檢測(cè)的主機(jī)的 IP 地址,然后在服務(wù)中添加要檢測(cè)的命令:
- 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
 
如果沒(méi)有錯(cuò)就啟動(dòng) nagios:
- service nagios start(restart,stop)
 
5打開(kāi)瀏覽器:http://主機(jī) IP/nagios
可以看到所監(jiān)控的遠(yuǎn)端機(jī)器的這個(gè)信息了(check_server_load的返回結(jié)果),參看圖2.正常狀態(tài)用綠色表示,一旦遠(yuǎn)端服務(wù)器負(fù)載超過(guò) 80%,狀態(tài)信息就會(huì)變成紅色警告管理員。
上一節(jié):Linux下運(yùn)行 下一節(jié):評(píng)價(jià)
【編輯推薦】















 
 
 
 
 
 
 