Nagios的性能分析圖表
Nagios監控的側重點在“此時”服務是否正常,是一個瞬時狀態。通過對這個狀態的監控和告警,管理員可以第一時間對主機或者服務的故障做處理。但是我 們往往也非常關心主機的性能以及服務的響應時間等情況,這些情況是一個持續的變化曲線,並非一個實時的值,如果通過查看日誌數據來分析的話,既繁瑣有抽 象,所以,我們希望Nagios可以幫我們做這份工作,然後將報表提交給我們,這樣就非常方便了。這就是我今天要介紹的Nagios的相關開源項目—— PNP(http://ederdrom.de/doku.php/nagios/pnp_en)。
PNP是一個小巧的開源軟件包,它是基於PHP和PERL,利用rrdtool將Nagios採集的數據繪製成圖表。如果你要安裝PNP,那麼準備工作有如下3項:
1、整合Apache和PHP(本文使用版本:Apache 2.2.3 PHP 5.1.6)
2、安裝rrdtools (本文使用版本:RRDTools 1.2.23)
3、安裝Perl (本文使用版本: Perl5 )
關於這3項工作的方法,網絡上有很多精彩的文章介紹,我就不多說了,下面介紹一下PNP的工作原理,順便將安裝配置的內容也描述如下。
要介紹PNP工作原理,首先要說明一下Nagios提供的數據接口,也就是PNP的數據來源。在前面的文章中,我提到過,在定義host或service 中都有一個定義項,名爲process_perf_data,其值可以定義爲0或1,其作用是是否啓用Nagios的數據輸出功能。如果你將此項賦值爲 1,那麼Nagios就會將收集的數據寫入到某個文件中,以備提取。所以,如果你想讓Nagios將數據輸出的話,首先要將Nagios的主配置文件 nagios.cfg中相關的配置修改:
Nagios監控的側重點在“此時”服務是否正常,是一個瞬時狀態。通過對這個狀態的監控和告警,管理員可以第一時間對主機或者服務的故障做處理。但是我 們往往也非常關心主機的性能以及服務的響應時間等情況,這些情況是一個持續的變化曲線,並非一個實時的值,如果通過查看日誌數據來分析的話,既繁瑣有抽 象,所以,我們希望Nagios可以幫我們做這份工作,然後將報表提交給我們,這樣就非常方便了。這就是我今天要介紹的Nagios的相關開源項目—— PNP(http://ederdrom.de/doku.php/nagios/pnp_en)。
PNP是一個小巧的開源軟件包,它是基於PHP和PERL,利用rrdtool將Nagios採集的數據繪製成圖表。如果你要安裝PNP,那麼準備工作有如下3項:
1、整合Apache和PHP(本文使用版本:Apache 2.2.3 PHP 5.1.6)
2、安裝rrdtools (本文使用版本:RRDTools 1.2.23)
3、安裝Perl (本文使用版本: Perl5 )
關於這3項工作的方法,網絡上有很多精彩的文章介紹,我就不多說了,下面介紹一下PNP的工作原理,順便將安裝配置的內容也描述如下。
要介紹PNP工作原理,首先要說明一下Nagios提供的數據接口,也就是PNP的數據來源。在前面的文章中,我提到過,在定義host或service 中都有一個定義項,名爲process_perf_data,其值可以定義爲0或1,其作用是是否啓用Nagios的數據輸出功能。如果你將此項賦值爲 1,那麼Nagios就會將收集的數據寫入到某個文件中,以備提取。所以,如果你想讓Nagios將數據輸出的話,首先要將Nagios的主配置文件 nagios.cfg中相關的配置修改:
代碼:
process_performance_data=1
service_perfdata_command=process-service-perfdata #默認此句被註釋掉了
service_perfdata_command=process-service-perfdata #默認此句被註釋掉了
如果想要對某個監控對象做數據圖表,則需在所對應的host或者service定義中(一般寫在hosts.cfg或者services.cfg文件中),包含如下的定義:
代碼:
process_perf_data 1
這 樣,Nagios就會調用相應的命令來輸出數據了。Nagios的command定義中默認有一項“process-service- perfdata”,該命令聲明瞭Nagios輸出哪些值到輸出的文件中。不過其定義相對簡單,PNP提供了一個perl腳本,更詳盡的定義了一個輸出數 據的方法。如果要使用PNP的話,我們需要在command的定義中,將“process-service-perfdata”命令對應的執行命令行的內 容替換成該腳本:
代碼:
define command{
command_name process-service-perfdata
command_line /usr/local/nagios/libexec/process_perfdata.pl
}
command_name process-service-perfdata
command_line /usr/local/nagios/libexec/process_perfdata.pl
}
這樣設置了之後,Nagios就會利用PNP提供的腳本進行相關的工作了。
細心的看管大概已經發現了,剛剛定義命令時用到的腳本“process_perfdata.pl”現在還不存在。我們現在就來安裝,也就PNP的軟件包 (本文用的版本是pnp-0.3.3.tar.gz)。安裝方法很簡單,過程也很順利(我的系統安裝時選擇了開發工具,謝天謝地!)
細心的看管大概已經發現了,剛剛定義命令時用到的腳本“process_perfdata.pl”現在還不存在。我們現在就來安裝,也就PNP的軟件包 (本文用的版本是pnp-0.3.3.tar.gz)。安裝方法很簡單,過程也很順利(我的系統安裝時選擇了開發工具,謝天謝地!)
代碼:
./configure --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-perfdata-dir=/usr/local/nagios/share/perfdata/
make all
make install
make all
make install
安裝結束之後,再去檢查一下Nagios的插件目錄(libexec),就會發現多了一個名爲“process_perfdata.pl”的腳本。
ok,現在執行一下Nagios配置檢查命令
ok,現在執行一下Nagios配置檢查命令
代碼:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如果沒有什麼錯誤,那麼我們重新啓動Nagios。
代碼:
/etc/init.d/nagios restart
驗收一下成果,在瀏覽器的地址欄中輸入:http://IP/nagios/pnp/