軟件需求:
為三都等地區(qū)用戶提供了全套網頁設計制作服務,及三都網站建設行業(yè)解決方案。主營業(yè)務為成都網站制作、成都網站建設、三都網站設計,以傳統(tǒng)方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!apache、perl>=5.x、rrdtool>=1.x、php>=4.3、zlib、gd、nagios>2.x、pnp-0.4.14
有關資料上說的cacti上的圖,好像都是用snmp協(xié)議獲取的數據畫出來的。因此,如果監(jiān)測不都是用snmp獲取數據,也不希望安裝cacti的話,倒是可以用pnp直接在nagios上顯示趨勢圖。個人認為pnp畫趨勢圖一點都不差。
http://bbs.chinaunix.net/thread-2311792-1-1.html
http://chenlinux.com/2010/08/13/intro-pnp4nagios/
參考資料:http://pkgs.repoforge.org/rrdtool/
# rpm -ivh libdbi-0.8.1-2.1.i386.rpm (32位操作系統(tǒng))
# rpm -ivh libdbi-0.8.1-2.1.x86_64.rpm (64位操作系統(tǒng))
或直接用yum:
#yum install libdbi
# rpm -ivh lua-5.1.4-2.el5.rf.x86_64.rpm (64位操作系統(tǒng))
# rpm -ivh lua-5.1.4-2.el5.rf.i386.rpm (32位操作系統(tǒng))
以上兩個為rrdtoo的依賴包。
以下三個包要一起安裝否則會報一些錯誤,如找不到perl(RRDp) 什么的:
# rpm -ivh rrdtool-1.4.7-1.el5.rf.x86_64.rpm rrdtool-devel-1.4.7-1.el5.rf.x86_64.rpm perl-rrdtool-1.4.7-1.el5.rf.x86_64.rpm (64位操作系統(tǒng))
# rpm -ivh perl-rrdtool-1.4.7-1.el5.rf.i386.rpm rrdtool-devel-1.4.7-1.el5.rf.i386.rpm rrdtool-1.4.7-1.el5.rf.i386.rpm (32位操作系統(tǒng))
http://docs.pnp4nagios.org/pnp-0.4/install 可以下載到pnp-0.4.14.tar.gz和pnp4nagios-0.6.21.tar.gz(安裝和配置略有不同)。這里,推薦使用pnp4nagios-0.6.21.tar.gz。
yum intall php-gd
或者
#rpm -ivh php-gd-5.1.6-32.el5.x86_64.rpm(如果依賴包沒有安裝,請根據提示到網上下載相應的依賴包進行安裝)
參考資料:http://smallfish01.blog.51cto.com/3565/455092
# tar zxvf pnp4nagios-0.6.7.tar.gz
# cd pnp4nagios0.6.7
# ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd
# make all
make install
make install-webconf
make install-config
make install-init
以下默認的sample例子配置文件,可能并不存在,而是已經有默認的配置文件了。這種情況可能會導致復制失敗。不過默認配置文件已經有了,就可以了。
# cd /usr/local/pnp4nagios/etc
cp misccommands.cfg-sample misccommands.cfg -p
cp nagios.cfg-sample nagios.cfg -p
cp npcd.cfg-sample npcd.cfg -p
cp process_perfdata.cfg-sample process_perfdata.cfg -p
cp rra.cfg-sample rra.cfg -p
cd pages
cp web_traffic.cfg-sample web_traffic.cfg -p
cd ../check_commands
cp check_all_local_disks.cfg-sample check_all_local_disks.cfg -p
cp check_nrpe.cfg-sample check_nrpe.cfg -p
cp check_nwstat.cfg-sample check_nwstat.cfg -p
# 啟動npcd服務
# service npcd start
#修改nagios.cfg
# cd /usr/local/nagios/etc
# vi nagios.cfg
#修改配置為:
process_performance_data=1
host_perfdata_command=process-host-perfdata
service_perfdata_command=process-service-perfdata
#修改 commands.cfg
# cd /usr/local/nagios/etc/objects
# vi commands.cfg
#添加
# 'process-host-perfdata' command definition
define command{
command_name process-host-perfdata
command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA
#后面的-d HOSTPERFDATA很重要!沒有的話就不能產生圖形文件了!
}
# 'process-service-perfdata' command definition
define command{
command_name process-service-perfdata
command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl
}
#修改nagios模板文件。
# templates.cfg
# 在最后添加
define host {
name host-pnp
action_url /pnp4nagios/graph?host=$HOSTNAME$ #顯示主機所有服務的圖
#action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=_HOST_ #顯示ping的狀態(tài)圖
process_perf_data 1
register 0
}
define service {
name srv-pnp
action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
process_perf_data 1
register 0
}
# 修改主機配置文件,例如windows.cfg
# cd /usr/local/nagios/etc/objects
# vi windows.cfg
#增加host-pnp,srv-pnp
define host{
use linux-server,host-pnp
host_name Windows Server
alias windows 2003 server
address 1.2.3.4
}
define service{
use generic-service,srv-pnp
host_name windows Server
service_description PING
check_command check_ping!100.0,20%!500.0,60%
其他相關的define host, define service都要修改。
#驗證配置文件,無誤后重啟nagios和httpd 服務
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
#配置文件驗證通過后,重啟服務
# service nagios restart
# service httpd restart
這里我要特別說明一下,我在配置這個趨勢圖時,并沒有創(chuàng)建host-pnp和srv-pnp,如果按照上面寫的,則所有的被監(jiān)測的cfg配置文件中,都要在host和service的use中,增加host-pnp或srv-pnp。這太麻煩了。由于所有的被監(jiān)測設備都是從linux-vod-sw模板和linux-vod-sw繼承的,而且,所有的service都是從generic-service繼承的,因此,我就直接改這個模板,將action_url和process_perf_data參數都加在模板中了,這樣就不需要修改每個監(jiān)測機器的配置文件了。
# 至此,安裝完成。登錄nagios控制臺,選擇host主機名旁邊(或者service名旁邊)的趨勢小圖標,即可看到趨勢圖。如果是第一次使用的話,就有一個頁面,告訴用戶配置是否全部符合要求,如果全部都正確的話,會要求用戶刪除instal.php,我是直接改名,改名后,再次點擊趨勢小圖標,就能顯示趨勢圖了。
# cd /usr/local/pnp4nagios/share
# rm install.php
# mv install.php install.php.bak 或者改名也行
在templates.cfg 模板文件中的,新添加的action_url后面還可以加上 class 和 rel 以支持鼠標移上去后就能顯示彈出的趨勢圖:
action_url /pnp4nagios/graph?host=$HOSTNAME$'class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=_HOST_
action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$'class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
注意這里的引號和空格。另外,服務器主機的彈出圖的腳本中最后加了&srv=_HOST_,表示只顯示主機的ping包。否則所有的圖顯示出來比較要命。因此,在配置了這個功能后,主機的趨勢圖配置中,最好是加上“&srv=_HOST_”,這兩項配置的截圖為:
Host配置:
Service配置:
要實現(xiàn)彈出的圖還需要拷貝status-header.ssi到/usr/local/nagios/share/ssi/目錄下面來。
#cp /root/new/pnp4nagios-0.6.21/contrib/ssi/status-header.ssi /usr/local/nagios/share/ssi
# chown -R nagios.nagios /usr/local/nagios/share/ssi
# ll /usr/local/nagios/share/ssi
-rw-r--r-- 1 nagios nagios 357 Sep 5 15:18 status-header.ssi
#
# service nagios restart
# service httpd restart
配置完成重啟nagios和httpd服務后,鼠標移到趨勢小圖標上面,就能顯示出彈出的圖形了。如果還不能顯示,有可能是ie的問題,請自行查證。或者將趨勢圖url中的graph改成popup,看看是否能顯示出圖形。如果可以顯示的話,應該是ie瀏覽器的問題。
以下問題是我在安裝pnp-0.4.14.tar.gz版本中出現(xiàn)的問題,記錄下解決方法。
如果是pnp4nagios-0.6.21.tar.gz版本的話,在第一次點擊趨勢圖小圖標時,顯示的頁面中會有驗證信息,比如有個rpm包沒有安裝等提示信息。只有所有的包驗證都通過,則一般情況下,趨勢圖就能出來。
重啟nagios和httpd后,如果不能畫出圖形,并報以下錯誤:
則使用yum intall php-gd安裝后重啟httpd服務。
如果問題還未解決,則使用如下命令查看:
# php -m|grep -i gd
該命令成功的返回字符為gd。我在安裝一個地方的監(jiān)測系統(tǒng)時,報了:
執(zhí)行# php -v也報錯,用ie打開 http://.../test.php也沒有顯示gd的一項。
后來發(fā)現(xiàn)gd.so文件不在/usr/lib/php/modules/下,而是在/usr/lib64/php/modules/中,將lib64下的文件復制到lib下就不會出現(xiàn)第二個錯誤了。對于第一個錯誤,將另外一地系統(tǒng)的dbase.so文件覆蓋掉這個文件后,問題解決。
這個問題可能是由于在安裝過程中,即安裝了32位的rpm包,又安裝了64位的rpm包引起。
這里提一下test.php文件,這個文件是測試php功能的,在安裝cacti的資料中都會提到這個測試來驗證是否支持json擴展。創(chuàng)建完這個文件后,需要重啟下httpd服務。文件內容為:
vi /var/www/html/test.php
<?php
phpinfo();
phpinfo(INFO_GENERAL);
phpinfo(1);
?>
如果又報了以下錯誤:
檢查下vi /usr/local/nagios/etc/nagios.cfg
process_performance_data=1參數值是否為1
host_perfdata_command=process-host-perfdata
service_perfdata_command=process-service-perfdata
是否打開。并且監(jiān)測腳本中是否增加了“process_perf_data 1”。
參考資料:
http://www.suiyiwen.com/question/4173
http://blog.chinaunix.net/uid-25266990-id-3437195.html
默認安裝的插件check_procs沒有輸出性能數據,可以通過修改源代碼的方式,解決了這個問題。
一具體實現(xiàn)方式:
1 修改nagios-plugins-1.4.15\plugins\check_procs.c文件
找到 main (int argc, char **argv) 函數,添加新的變量 pref:
char *perf;
perf = strdup("");
2 函數最后return result; 之前的 printf ("\n"); 修改為:
asprintf(&perf, "%s", perfdata ("processes", procs, "",
TRUE, wmax,
TRUE, cmax,
TRUE, 0,
FALSE, 0));
printf ("|%s\n",perf);
3 重新編譯源代碼,將新生成的check_procs替換掉老的文件
這樣,PHP終于可以出進程數process的圖了。
二實現(xiàn)原理
PNP出圖的數據來自腳本在系統(tǒng)打印出來的字符串,而Nagios源碼提供的check_procs腳本系統(tǒng)輸出字符串不符合數據格式規(guī)范(沒有包含性能數據),所以就無法出圖了。
在源碼中加上性能數據的輸出,這樣就可以出圖了。
三 nagios性能數據格式
例:cpu_user:OK-0% cpu_system:OK-0% cpu_idle:WARNING-99>70% | cpu_user=0%;120;90; cpu_system=0%;100;70; cpu_idle=99%;100;70;
其中性能數據為|后面的斜體部分,格式如下:
‘label’=value[UOM];[warn];[crit];[min];[max]
注意事項:
1.空格分割標簽/值對 例如cpu_user=0%;100;90; cpu_system=0%;100;70; cpu_idle=99%;100;70;
2.label可以包含任何字符
3.單引號可省略,如果label中使用空格、等號和單引號,則需要需要單引號把label括起來。例如’a ‘b’ = c’=0%;100;90;
4.標簽可以為任意長度,但最好少于19個字符并且唯一,(RRD有相關方面的限制),并且需要注意NRPE的返回值的限制(譯者:好像是4K限制)
5.兩個單引號為指定的轉義字符?
6.warn, crit, min or max 可以為空(比如,如果沒有定義閥值,大最小值則不適用)并且最后的分號可以省略
7.如果UOM為%,則不需要大最小值
8.value, min and max只能為負號“-” “0到9” 和小數點“.” 并且單位必須統(tǒng)一 例如:cpu_user=0.5%;99.9;-9;
9.warn and crit必須在某個區(qū)間格式,參見2.5章。單位也必須統(tǒng)一
10.UOM必須為以下其中之一
1.如果未指定,默認為數字(整數和浮點數)(比如用戶數,進程數,負載等)
2. s – 秒 (可以為納秒us或毫秒ms) cpu_user=0s;100;90; cpu_system=0us;100;70; cpu_idle=0ms;100;70;
3. % – 百分號 cpu_user=0%;100;90; cpu_system=0%;100;70; cpu_idle=99%;100;70;
4. B – 字節(jié)(可可以是KB ,MB TB)cpu_user=0KB;100;90; cpu_system=0MB;100;70; cpu_idle=0B;100;70;
5. c – 一個計數器 (比如網卡的流量)cpu_user=10c;100;90;
Nagios監(jiān)測windows的那個默認的cfg中的幾項中,繪制的Pnp不太符合要求,比如內存監(jiān)測的數據為虛擬內存。其他自定義的服務、進程等由于輸出的信息,不符合Pnp制圖要求,因此,都不能繪制趨勢圖。
對NSClient++提供的nrpe協(xié)議進行測試,發(fā)現(xiàn)大多數輸入的信息符合Pnp制圖要求,因此,可通過nrpe的監(jiān)測項來進行繪圖。
要使NSClient++支持nrpe協(xié)議,需要對配置文件進行些修改。配置文件為C:\Program Files\NSClient++\nsclient.ini,該文件需要增加以下幾項,以支持nrpe的監(jiān)測:
; Section for NRPE (NRPEListener.dll) (check_nrpe) protocol options.
[/settings/NRPE/server]
command_timeout=60
allow nasty characters = true
use ssl=1
socket timeout=30
performance data=1
allow arguments=true
; Section for NSCA passive check module.
[/settings/NSCA/client]
; Target definition for: default
[/settings/NSCA/client/targets/default]
; Section for NSClient (NSClientServer.dll) (check_nt) protocol options.
[/settings/NSClient/server]
; Section for system checks and system settings
[/settings/check/system/windows]
; Confiure which services has to be in which state
[/settings/check/system/windows/service mapping]
; Configure crash handling properties.
[/settings/crash]
; Section for the EventLog Checker (CheckEventLog.dll).
[/settings/eventlog]
; A set of options to configure the real time checks
[/settings/eventlog/real-time]
; A set of filters to use in real-time mode
[/settings/eventlog/real-time/filters]
; Section for external scripts configuration options (CheckExternalScripts).
[/settings/external scripts]
; A list of aliases available. An alias is an internal command that has been "wrapped" (to add arguments). Be careful so you don't create loops (ie check_loop=check_a, check_a=check_loop)
[/settings/external scripts/alias]
; A list of scripts available to run from the CheckExternalScripts module. Syntax is: <command>=<script> <arguments>
[/settings/external scripts/scripts]
allow arguments=true
check_proc=scripts\\check_winprocess.exe
check_ping=scripts\\check_ping.bat 192.168.0.53
check_cmd=scripts\\check_winprocess.exe --filter "p_w_picpathname eq CMD.EXE" --compare ne --warn 1 --critical 1
check_winprocess=scripts\\check_winprocess.exe --warn 100 --critical 300
需要check_winprocess.exe程序支持,可到其官網下載并解壓到C:\Program Files\NSClient++\scripts下。但這個程序似乎也有問題,不太好用。
使用NSClient自帶的一些監(jiān)測項,具體使用方法參考:
http://www.nsclient.org/nscp/wiki/NRPEClient
http://www.nsclient.org/nscp/
以下列舉一二:
首先執(zhí)行:
# ./check_nrpe -H 192.168.0.53
I (0,4,1,101 2013-05-18) seem to be doing fine...
如果有以上輸出信息,則說明nrpe可正常使用。
本人原先安裝的是NSCP-0.4.1.101-Win32.msi ,以上顯示的輸出信息正常。而如果安裝最新版本NSCP-0.4.2.17-Win32.msi,則顯示的信息不正常,以下的所有的監(jiān)測都無法正常??赡茏钚掳姹居衎ug。重新安裝老版本就沒問題。
# ./check_nrpe -H 192.168.0.53
CHECK_NRPE: No output returned from daemon. //這里顯示的信息不正常
#/check_nrpe -H 192.168.0.53 -c CheckProcState -a ShowAll explorer.exe=started winzip.exe=stopped
CHECK_NRPE: No output returned from daemon.
http://www.nsclient.org/nscp/wiki/CheckSystem/checkMem
check_nrpe -H IP -p 5666 -c CheckMEM -a MaxWarn=80% MaxCrit=90% ShowAll type=physical type=page type=pagedtype=virtual
type有三項,可在一條語句中一起監(jiān)測,或者分開監(jiān)測,如:
#./check_nrpe -H 192.168.0.53 -c CheckMEM -a MaxWarn=80% MaxCrit=90% ShowAll type=physical type=page type=virtual
http://www.nsclient.org/nscp/wiki/CheckSystem/checkCPU
#./check_nrpe -H 192.168.0.53 -c CheckCPU -a warn=80 crit=90 time=20m time=10s time=4
http://www.nsclient.org/nscp/wiki/CheckSystem/checkUpTime
#./check_nrpe -H 192.168.0.53 -c CheckUpTime -a MinWarn=1d MinCrit=12h
http://www.nsclient.org/nscp/wiki/CheckSystem/checkProcState
#./check_nrpe -H 192.168.0.53 -c CheckProcState -a ShowAll explorer.exe=started winzip.exe=stopped
http://www.nsclient.org/nscp/wiki/CheckSystem/checkServiceState
#./check_nrpe -H 192.168.0.53 -c CheckServiceState -a ShowAll nscp=started WebClient=stopped
不過,服務監(jiān)測的輸出數據不符合Pnp制圖要求。
http://www.nsclient.org/nscp/wiki/CheckSystem/checkCounter
#./check_nrpe -H 192.168.0.53 -c CheckCounter -a "Counter:mutex=\\Objects\\Mutexes" ShowAll MaxWarn=500 MaxCrit=1000
#./check_nrpe -H 192.168.0.53 -c CheckCounter -a "Counter:proc=\\Processor(_total)\\% Processor Time" ShowAll MaxWarn=50 MaxCrit=80
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文名稱:3nagios使用php繪制趨勢圖-創(chuàng)新互聯(lián)
URL標題:http://jinyejixie.com/article44/coipee.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網站、服務器托管、企業(yè)網站制作、外貿建站、網站制作、建站公司
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容