Nagios性能分析圖表的作用
Nagios對服務或主機監控的是一個瞬時狀態,有時候系統管理員需要了解主機在一段時間內的性能及服務的響應狀態,並且形成圖表,這就需要通過查看日志數據來分析。但是這種方式不但煩瑣,而且抽象。為了能更直觀的查看主機運行狀態,我們可以利用PNP來幫助我們完成這個工作。
PNP的概念、安裝環境及安裝過程
PNP是一個小巧的開源軟件包,它是基於PHP和Perl的。PNP可以利用rrdtool工具將Nagios采集的數據繪制成圖表,然後顯示主機或者服務在一段時間內運行的狀況。
PNP環境要求如下:
a、安裝了GD、zlib、jpeg且整合後的Apache和PHP環境。
b 、安裝RDDtool工具
安裝PNP
RRDtool是一個圖表生成工具,可以從http://www.mrtg.org/rrdtool下載。
安裝還是老方法:
[root@Nagios ]#tar zxvf rrdtool-1.4.7.tar.gz
[root@Nagios ]#cd rrdtool-1.4.7
[root@Nagios rrdtool-1.4.7]#./configure --prefix=/usr/local/rrdtool
[root@Nagios rrdtool-1.4.7]#make
[root@Nagios rrdtool-1.4.7]#make install
接著下載PNP,我用的是pnp-0.4.13.tar.gz。
在安裝之前,檢查模塊是否存在:
不存在,做一個軟鏈接繼續檢查,如下圖示:
繼續,接著鏈接,接著檢查,如下圖所示:
如果不做上面的一系列動作,在編譯PNP的時候會出現如下的錯誤報告:
WARNING: The RRDs Perl Modules are not found on your system
Using RRDs will speedup things in larger installations.
接著進行編譯安裝PNP,注意下圖紅色箭頭所注的安裝選項:
[root@Nagios pnp-0.4.13]# make all
[root@Nagios pnp-0.4.13]# make install
[root@Nagios pnp-0.4.13]# make install-config
[root@Nagios pnp-0.4.13]# make install-init
安裝完成。PNP默認文件的放置情況如下圖所示:
如果沒有上面截圖所示的動作,下圖紅框部分將出現RRDs Perl Modules: ***NOT FOUND***
配置PNP
1、創建默認配置文件
在PNP安裝完成後,默認安裝目錄下自帶了模板配置文件,因此,只需將模板文件復制一份作為PNP配置文件即可。操作如下圖所示:
2、修改process_perfdata.cfg文件
打開Nagios下的process_perfdata.cfg文件,修改相關內容。操作如下圖示:
修改nagios配置文件
1、增加小太陽圖標
修改templates.cfg,增加一個定義PNP的host和service。修改後的內容如下圖所示:
2、修改nagios.cfg
如果想讓nagios將數據輸出,首先要修改nagios的主配置文件nagios.cfg,找到如下幾項,如有注釋的將其去掉。修改後的信息如下:
process_performance_data=1
host_perfdata_command=process-host-perfdata
service_perfdata_command=process-service-perfdata
3、修改commands.cfg
process-host-perfdata和process-service-perfdata指令聲明了nagios輸出哪些值到輸出文件中。不過這些定義相對簡單,而PNP提供了一個Perl腳本,非常詳細地定義了一個輸出數據的方法,process_perfdata.pl就是PNP自帶的一個腳本,這個腳本在PNP安裝完成後會自動生成。因此,可以將process-host-perfdata和process-service-perfdata指令中對應的執行命令的內容替換成此腳本。修改後的內容如下圖所示:
4、修改hosts.cfg文件和services.cfg文件
將hosts-pnp和services-pnp引用到hosts.cfg和services.cfg中,修改後的hosts.cfg內容如下圖示:
修改後的services.cfg內容如下圖示:
以上是監控linux的范例。
下面是監控windows主機的
1、下載windows端軟件包NSClient++-0.3.8-Win32.msi
2、雙擊安裝即可,指定nagios的IP地址,密碼就不用填了,然後一直下一步即可。如下圖示:
在防火牆中添加12489的例外端口,如下圖示:
在nagios服務器端執行命令測試,如果返回數據,表示NSClient++安裝正常,如下圖示:
3、在監控端配置對windows主機的各種系統資源的監控配置:
a)首先在nagios.cfg中配置相關的配置文件的位置,找到
cfg_
file=/usr/local/nagios/etc/objects/windows.cfg #將此段路徑前面的注釋去掉
b)配置上面定義的windows.cfg文件,定義要監控的host和service,這裡分別配置了AC.Green和ysadsrv02.ks-pcba.com如下圖示:
c)配置完成後使用命令檢查配置文件是否有錯:
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
d)沒有錯誤報告的話,重啟nagios服務:
#/etc/init.d/nagios restart
4、使用http://ip/nagios進行訪問或者http://ip/nagios/pnp,查看配置的結果,如下圖示:
點擊旁邊的小太陽,我以AC.GREEN為例如下圖示:
至此,PNP配置結束了。
在配置或者點擊小太陽的過程中,可能會遇到各種錯誤,下面分別一一列出,以供以後參考:
a)時區問題:
報錯
Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /usr/local/nagios/share/pnp/include/function.inc.php on line 565
這是因為PHP所取的時間是格林威治標准時間,和我們當地時間會有出入。
#/usr/local/nagios/share/pnp/include/function.inc.php
加入如下圖所示的一行:
Depre
cated: Function eregi() is deprecated in /usr/local/nagios/share/pnp/include/function.inc.php on line 1502
問題的根源是php中有兩種正則表示法,一個是posix,一個是perl,php6打算廢除posix的正則表示法,所以後來就加了個preg_match。此問題解決辦法可以在ereg前面加過濾符,將ereg()變成@ereg()。但是這種問題還是沒有從根源上解決,php5.2版本之前ereg使用正常,在5.3之後,就要用preg_match來代替ereg。注意,posix和perl的很明顯的區別就是是否加斜槓,後者不能少了“/”。所以改法為:
[root@nagios ~]#vim /usr/local/nagios/share/pnp/include/function.inc.php
1502 if($level == 2 && $type == "complete" && eregi("^NAGIOS_",$tag)){
改為
1502 if($level == 2 && $type == "complete" && preg_match("/^NAGIOS_/",$tag)){
Deprecated: Assigning the return value of new by reference is deprecated in /usr/local/nagios/share/pnp/include/function.inc.php on line 1026
刪除上圖標記中的&.
還有下圖中的錯誤:
出現上圖中的提示,需要手動在/usr/local/nagios/share/perfdata下手動建立redhat文件夾,並使用命令將擁有者權限修改一下:
chown nagios:nagcmd redhat.類似情況作類似的動作即可!
出現上圖中的情況,一者檢查一下配置是否有問題,二來耐心等待一下,一般出圖沒有那麼快。多數情況下是需要等待!
另外在配置NSCliet++ 的時候,查看網上有好多要修改安裝路徑下NSClient++下面的NSC.ini文件,然後再修改window的一些服務等等。我裝完了沒有作這些動作,如果有需要可以自行到網上查閱!