nagios監(jiān)控數(shù)據(jù)可視化
前言
nagios系統(tǒng)可以像zabbix、cacti類軟件一樣,將收集到的各項監(jiān)控指標性能數(shù)據(jù)以圖形的形式動態(tài)展示出來。使監(jiān)控更加直觀化,可進行各項靈活的定制,方便對性能數(shù)據(jù)進行對比分析。nagios可以用于監(jiān)控數(shù)據(jù)畫圖的插件有多種,這里以pnp4nagios軟件為例進行說明。
本文所用到系統(tǒng)環(huán)境OS:CentOS release 6.8 (Final) 2.6.32-642.el6.x86_64還有一個重要環(huán)境:互聯(lián)網(wǎng)(yum、百度、Google)。各軟件包:
1. 獲取pnp4nagios軟件
筆者是在pnp4nagios的官網(wǎng)上下載的,現(xiàn)將它和nagios其它軟件包一起放在此處百度網(wǎng)盤?密碼:ayhk
2. 安裝pnp4nagios
- 安裝前的準備筆者使用的是pnp4nagios的0.6.25版本,根據(jù)官網(wǎng)說明安裝它以前需要滿足以下條件:
其中perl、rrdtool都可以通過yum來進行安裝,web server apache默認即已包含mod_rewrite了。需要使用yum安裝的包大致包括以下幾個:
- 安裝pnp4nagios先將軟件壓縮包解壓,然后configure,根據(jù)提示執(zhí)行相應(yīng)的make操作,完成安裝過程,相應(yīng)指令如下:
以上配置匯總信息很重要,后面修改nagios.cfg需要用到,以及pnp4nagios運行環(huán)境測試也會用到。然后根據(jù)提示信息依次執(zhí)行:
這里對make fullinstall進行一下說明,這一指令其實包含有三個指令:
- make install-webconf復(fù)制一個名為pnp4nagios.conf的文件到/etc/httpd.conf.d/目錄下,主要用于從web可以訪問pnp4nagios。
- make install-config?復(fù)制process_perfdata.pl和npcd的配置文件到/etc/pnp中,為可選項。
- make install-init?安裝npcd init腳本。
3. 測試pnp4nagios安裝結(jié)果
重啟web服務(wù),并驗證pnp4nagios運行環(huán)境是否已準備就緒。
打開瀏覽器輸入上面匯總信息的HTML URL即:http://localhost/pnp4nagios。正常情況下會得到如下頁面:
pnp4nagios運行環(huán)境測試圖1
pnp4nagios運行環(huán)境測試圖2
4. 了解pnp4nagios的工作模式
進行pnp4nagios的配置之前,需要先確定要使用pnp4nagios的哪種工作模式,它支持的有sync mode(應(yīng)該是默認模式)、bulk mode、bulk mode with npcd、bulk with npcd and npcdmod和gearman mode共5種運行模式,按照官網(wǎng)的說明,我這里選擇buld mode with npcd。以下為這種模式的官方說明:
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.
簡單來說這種模式的好處就是它將收集到原始的性能統(tǒng)計數(shù)據(jù)工作和對這些數(shù)據(jù)進行處理然后生成RRD和XML文件的工作分開了,前者由nagios完成,后者則由專門的守護進程NPCD來完成,提高了nagios的工作效率。以下為這種模式的工作原理示圖:
pnp4nagios bulk mode with npcd
5. 配置pnp4nagios及nagios
要想pnp4nagios工作起來必須對pnp4nagios和nagios的配置文件進行修改,讓它們能夠聯(lián)動起來。按照以下步驟進行配置:
- 修改nagios主配置文件?(/usr/local/nagios/etc/nagios.cfg)
- 打開性能數(shù)據(jù)處理開關(guān)
- 修改性能數(shù)據(jù)文件位置
修改性能數(shù)據(jù)文件格式模板
設(shè)置性能數(shù)據(jù)文件寫入模式及處理間隔
配置處理這些性能數(shù)據(jù)文件的指令 這兩個指令非常關(guān)鍵,它需要在nagios的commands.cfg中定義好,且命令名稱跟此處完全一致。定義處理文件指令的詳細參數(shù)在nagios的commands.cfg中配置如下參數(shù):
配置nagios web上可以調(diào)用pnp4nagios要實現(xiàn)從nagios web頁面上直接打開pnp4nagios,從而查看其輸出的圖形,還需要配置很關(guān)鍵的一個參數(shù)?action_url,我選擇將它直接定義在host和service的模板中。在實際工作中有的監(jiān)控項目可能并不需要畫圖出來,可以在定義監(jiān)控時,在相應(yīng)的服務(wù)中設(shè)置process_perf_data ? ? ? ? ? ? ? 0,即不處理此服務(wù)的性能數(shù)據(jù)。默認在服務(wù)和主機模板中它是設(shè)置為1的。要想看到一個監(jiān)控項目輸出的圖形,必須將process_perf data設(shè)置為1,同時調(diào)用的有action_url。action_url的配置如下所示,我選擇將它們分別定義在templates.cfg的主機和服務(wù)模板中了:
- 檢查npcd配置文件查看/usr/local/pnp4nagios/etc/npcd.cfg的內(nèi)容,確認其中配置的有無錯誤的地方,比如使用的用戶是否和nagios的一致為nagios,調(diào)用的process_perfdata.pl是否是pnp4nagios libexec下的。一般情況下此文件保持默認參數(shù)即可。
- 設(shè)置npcd服務(wù)開機自啟并啟動
- 重載nagios當(dāng)naios的配置文件有過改動以后,需要檢查配置文件是否有明顯的語法及邏輯錯誤,檢測方式:/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg檢測無誤后,重載nagios服務(wù):service nagios reload
6. 觀察畫圖效果
nagios中添加了action_url以后,web 頁面相應(yīng)的主機和服務(wù)后會多一個小的圖標,如下:
pnp4nagios圖標
點擊其中一個圖標可以看到其動態(tài)輸出效果,如下所示:
pnp4nagios效果圖
7. pnp4nagios的官方文檔
pnp4nagios還支持很多高級功能,如在配置 文件中使用正則表達式,以實現(xiàn)更為復(fù)雜的匹配,支持自定義page,將想要放在一起的主機及服務(wù)呈現(xiàn)在一個頁面中,支持數(shù)據(jù)導(dǎo)出。這些在它的官方網(wǎng)站上都有介紹,文中的原理圖也來自pnp4nagios的官網(wǎng)。