nagios監(jiān)控?cái)?shù)據(jù)可視化
前言
nagios系統(tǒng)可以像zabbix、cacti類(lèi)軟件一樣,將收集到的各項(xiàng)監(jiān)控指標(biāo)性能數(shù)據(jù)以圖形的形式動(dòng)態(tài)展示出來(lái)。使監(jiān)控更加直觀化,可進(jìn)行各項(xiàng)靈活的定制,方便對(duì)性能數(shù)據(jù)進(jìn)行對(duì)比分析。nagios可以用于監(jiān)控?cái)?shù)據(jù)畫(huà)圖的插件有多種,這里以pnp4nagios軟件為例進(jìn)行說(shuō)明。
本文所用到系統(tǒng)環(huán)境OS:CentOS release 6.8 (Final) 2.6.32-642.el6.x86_64還有一個(gè)重要環(huán)境:互聯(lián)網(wǎng)(yum、百度、Google)。各軟件包:

1. 獲取pnp4nagios軟件
筆者是在pnp4nagios的官網(wǎng)上下載的,現(xiàn)將它和nagios其它軟件包一起放在此處百度網(wǎng)盤(pán)?密碼:ayhk
2. 安裝pnp4nagios
- 安裝前的準(zhǔn)備筆者使用的是pnp4nagios的0.6.25版本,根據(jù)官網(wǎng)說(shuō)明安裝它以前需要滿(mǎn)足以下條件:
其中perl、rrdtool都可以通過(guò)yum來(lái)進(jìn)行安裝,web server apache默認(rèn)即已包含mod_rewrite了。需要使用yum安裝的包大致包括以下幾個(gè):

- 安裝pnp4nagios先將軟件壓縮包解壓,然后configure,根據(jù)提示執(zhí)行相應(yīng)的make操作,完成安裝過(guò)程,相應(yīng)指令如下:
以上配置匯總信息很重要,后面修改nagios.cfg需要用到,以及pnp4nagios運(yùn)行環(huán)境測(cè)試也會(huì)用到。然后根據(jù)提示信息依次執(zhí)行:
這里對(duì)make fullinstall進(jìn)行一下說(shuō)明,這一指令其實(shí)包含有三個(gè)指令:
- make install-webconf復(fù)制一個(gè)名為pnp4nagios.conf的文件到/etc/httpd.conf.d/目錄下,主要用于從web可以訪問(wèn)pnp4nagios。
- make install-config?復(fù)制process_perfdata.pl和npcd的配置文件到/etc/pnp中,為可選項(xiàng)。
- make install-init?安裝npcd init腳本。
3. 測(cè)試pnp4nagios安裝結(jié)果
重啟web服務(wù),并驗(yàn)證pnp4nagios運(yùn)行環(huán)境是否已準(zhǔn)備就緒。

打開(kāi)瀏覽器輸入上面匯總信息的HTML URL即:http://localhost/pnp4nagios。正常情況下會(huì)得到如下頁(yè)面:

pnp4nagios運(yùn)行環(huán)境測(cè)試圖1

pnp4nagios運(yùn)行環(huán)境測(cè)試圖2
4. 了解pnp4nagios的工作模式
進(jìn)行pnp4nagios的配置之前,需要先確定要使用pnp4nagios的哪種工作模式,它支持的有sync mode(應(yīng)該是默認(rèn)模式)、bulk mode、bulk mode with npcd、bulk with npcd and npcdmod和gearman mode共5種運(yùn)行模式,按照官網(wǎng)的說(shuō)明,我這里選擇buld mode with npcd。以下為這種模式的官方說(shuō)明:
Viewing from Nagios this is the best way of processing because Nagios will not be blocked.
Nagios again uses a temporary file to store the data and executes a command after expiration of a certain time. Instead of immediate processing by process_perfdata.pl the file is moved to a spool directory. As moving a file inside the same filesystem nearly takes no time nagios is able to execute crucial work immediately.
The NPCD daemon (Nagios Performance C Daemon) will monitor the directory for new files and will pass the names to process_perfdata.pl. Processing of performance data is decoupled completely from nagios. NPCD itself is able to start multiple thread for processing the data.
簡(jiǎn)單來(lái)說(shuō)這種模式的好處就是它將收集到原始的性能統(tǒng)計(jì)數(shù)據(jù)工作和對(duì)這些數(shù)據(jù)進(jìn)行處理然后生成RRD和XML文件的工作分開(kāi)了,前者由nagios完成,后者則由專(zhuān)門(mén)的守護(hù)進(jìn)程N(yùn)PCD來(lái)完成,提高了nagios的工作效率。以下為這種模式的工作原理示圖:

pnp4nagios bulk mode with npcd
5. 配置pnp4nagios及nagios
要想pnp4nagios工作起來(lái)必須對(duì)pnp4nagios和nagios的配置文件進(jìn)行修改,讓它們能夠聯(lián)動(dòng)起來(lái)。按照以下步驟進(jìn)行配置:
- 修改nagios主配置文件?(/usr/local/nagios/etc/nagios.cfg)
- 打開(kāi)性能數(shù)據(jù)處理開(kāi)關(guān)
- 修改性能數(shù)據(jù)文件位置
修改性能數(shù)據(jù)文件格式模板
設(shè)置性能數(shù)據(jù)文件寫(xiě)入模式及處理間隔
配置處理這些性能數(shù)據(jù)文件的指令
這兩個(gè)指令非常關(guān)鍵,它需要在nagios的commands.cfg中定義好,且命令名稱(chēng)跟此處完全一致。
定義處理文件指令的詳細(xì)參數(shù)在nagios的commands.cfg中配置如下參數(shù):
配置nagios web上可以調(diào)用pnp4nagios要實(shí)現(xiàn)從nagios web頁(yè)面上直接打開(kāi)pnp4nagios,從而查看其輸出的圖形,還需要配置很關(guān)鍵的一個(gè)參數(shù)?action_url,我選擇將它直接定義在host和service的模板中。在實(shí)際工作中有的監(jiān)控項(xiàng)目可能并不需要畫(huà)圖出來(lái),可以在定義監(jiān)控時(shí),在相應(yīng)的服務(wù)中設(shè)置process_perf_data ? ? ? ? ? ? ? 0,即不處理此服務(wù)的性能數(shù)據(jù)。默認(rèn)在服務(wù)和主機(jī)模板中它是設(shè)置為1的。要想看到一個(gè)監(jiān)控項(xiàng)目輸出的圖形,必須將process_perf data設(shè)置為1,同時(shí)調(diào)用的有action_url。action_url的配置如下所示,我選擇將它們分別定義在templates.cfg的主機(jī)和服務(wù)模板中了:
- 打開(kāi)性能數(shù)據(jù)處理開(kāi)關(guān)
- 檢查npcd配置文件查看/usr/local/pnp4nagios/etc/npcd.cfg的內(nèi)容,確認(rèn)其中配置的有無(wú)錯(cuò)誤的地方,比如使用的用戶(hù)是否和nagios的一致為nagios,調(diào)用的process_perfdata.pl是否是pnp4nagios libexec下的。一般情況下此文件保持默認(rèn)參數(shù)即可。
- 設(shè)置npcd服務(wù)開(kāi)機(jī)自啟并啟動(dòng)
- 重載nagios當(dāng)naios的配置文件有過(guò)改動(dòng)以后,需要檢查配置文件是否有明顯的語(yǔ)法及邏輯錯(cuò)誤,檢測(cè)方式:/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg檢測(cè)無(wú)誤后,重載nagios服務(wù):service nagios reload
6. 觀察畫(huà)圖效果
nagios中添加了action_url以后,web 頁(yè)面相應(yīng)的主機(jī)和服務(wù)后會(huì)多一個(gè)小的圖標(biāo),如下:

pnp4nagios圖標(biāo)
點(diǎn)擊其中一個(gè)圖標(biāo)可以看到其動(dòng)態(tài)輸出效果,如下所示:

pnp4nagios效果圖
7. pnp4nagios的官方文檔
pnp4nagios還支持很多高級(jí)功能,如在配置 文件中使用正則表達(dá)式,以實(shí)現(xiàn)更為復(fù)雜的匹配,支持自定義page,將想要放在一起的主機(jī)及服務(wù)呈現(xiàn)在一個(gè)頁(yè)面中,支持?jǐn)?shù)據(jù)導(dǎo)出。這些在它的官方網(wǎng)站上都有介紹,文中的原理圖也來(lái)自pnp4nagios的官網(wǎng)。