溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Nagios+pnp4nagios+rrdtool 安裝配置nagios(一)

發(fā)布時(shí)間:2020-06-17 09:59:36 來(lái)源:網(wǎng)絡(luò) 閱讀:501 作者:daspr 欄目:移動(dòng)開(kāi)發(fā)

基于的軟件版本

Apache-2.0.63php-5.3.2nagios-3.2.3nagios-plugins-1.4.15rrdtool-1.4.5nrpe-2.12

pnp4nagios-0.4.13check_mysql_health

服務(wù)器

1、安裝前準(zhǔn)備

1)創(chuàng)建nagios用戶(hù)和用戶(hù)組
[root@localhost~]#useradd-s/sbin/nologinnagios

[root@localhost~]#mkdir/usr/local/nagios

[root@localhost~]#chown–Rnagios.nagios/usr/local/nagios

2)開(kāi)啟系統(tǒng)sendmail服務(wù)(自行選擇)
nagios監(jiān)控服務(wù)器上開(kāi)啟sendmail服務(wù)的主要作用是讓nagios在檢測(cè)到故障時(shí)可以發(fā)送報(bào)警郵件,目前幾乎所有的linux發(fā)行版本都默認(rèn)自帶了sendmail服務(wù),所以,在安裝系統(tǒng)時(shí)只需開(kāi)啟sendmail服務(wù)即可,并且不需要在sendmail上做任何配置。

2、編譯安裝Nagios
[root@localhost~]#tar-zxvfnagios-3.2.3.tar.gz
[root@localhost~]#cdnagios-3.2.3
[root@localhostnagios-3.2.3]#./configure--prefix=/usr/local/nagios


#
指定nagios的安裝目錄,這里指定nagios安裝到/usr/local/nagios目錄
[root@localhostnagios-3.2.3]#makeall
[root@localhostnagios-3.2.3]#makeinstall


#makeinstall
用來(lái)安裝nagios的主程序,CGIHTML文件
[root@localhostnagios-3.2.3]#makeinstall-init
#
通過(guò)makeinstall-init命令可以在/etc/rc.d/init.d目錄下創(chuàng)建nagios啟動(dòng)腳本
[root@localhostnagios-3.2.3]#makeinstall-commandmode
#
通過(guò)makeinstall-commandmode命令來(lái)配置目錄權(quán)限
[root@localhostnagios-3.2.3]#makeinstall-config
#makeinstall-cofig
命令用來(lái)安裝nagios示例配置文件,這里安裝的路徑是/usr/local/nagios/etc

3Nagios目錄介紹

目錄對(duì)應(yīng)的功能說(shuō)明如下:

bin:可執(zhí)行程序所在目錄

etc:配置文件所在目錄

sbin:cgi文件所在目錄,也就是執(zhí)行外部命令所需文件所在目錄

share:網(wǎng)頁(yè)文件所在目錄

libexec:外部插件所在目錄

var:日志文件,lock等文件所在目錄

var/archives:日志自動(dòng)歸檔目錄

var/rw:用來(lái)存放外部命令文件的目錄

4、安裝Nagios插件


這里下載的版本是nagios-plugins-1.4.15
注意:插件版本與nagios版本的關(guān)聯(lián)并不大。
[root@localhostnagios]#tar–zxvfnagios-plugins-1.4.15.tar.gz
[root@localhostnagios]#cdnagios-plugins-1.4.15
[root@localhostnagios-plugins-1.4.15]#./configure--prefix=/usr/local/nagios
[root@localhostnagios-plugins-1.4.15]#make
[root@localhostnagios-plugins-1.4.15]#makeinstall
安裝完成,在/usr/local/nagios下的libexec目錄下,生成很多可執(zhí)行文件,這些正是nagios所需要的插件。

5、安裝與配置apachephp
apache
php不是安裝nagios所必須的,但是nagios提供了web監(jiān)控界面,通過(guò)web監(jiān)控界面可以清晰的看到被監(jiān)控主機(jī)、資源的運(yùn)行狀態(tài),因此,安裝一個(gè)web服務(wù)是很必要的。
需要注意的是,nagiosnagios3.1.x版本以后,配置web監(jiān)控界面時(shí)需要php的支持。這里我們下載的nagios版本為nagios-3.2.3,因此在編譯安裝完成apache后,還需要編譯php模塊,這里選取的php版本為php5.3.2
1)安裝apachephp
首先安裝apache,步驟如下:
[root@nagiosserver~]#tarzxvfhttpd-2.0.63.tar.gz
[root@nagiosserver~]#cdhttpd-2.0.63

注意:在64位機(jī)器上安裝需要加參數(shù)--witn-expat=bulitin,否則make時(shí)會(huì)報(bào)錯(cuò)/usr/lib/libexpat.so:couldnotreadsymbols:Fileinwrongformatcollect2:ldreturned1exitstatus。在32位機(jī)器上直接./configure--prefix=/usr/local/apache2就可以

[root@nagiosserver~]#./configure--prefix=/usr/local/apache2--enable-modules=so--enable-rewrite--with-expat=builtin

[root@nagiosserver~]#make
[root@nagiosserver~]#makeinstall
接著安裝php,步驟如下:
[root@nagiosserver~]#tarzxvfphp-5.3.2.tar.gz
[root@nagiosserver~]#cdphp-5.3.2

注意php的編譯參數(shù),如果需要pnp圖表顯示,請(qǐng)看pnp安裝時(shí)的注意事項(xiàng),編譯參數(shù)不能用下面的;如果不用pnp圖表直接用下面的就可以

(./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache2/bin/apxs--with-zlib-dir=/usr/include/zlib.h--with-gd)
[root@nagiosserver~]#./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache2/bin/apxs

64位系統(tǒng)上編譯php如果如果出現(xiàn)如下錯(cuò)誤

configure:error:libjpeg.(a|so)notfound

解決方法:

來(lái)源https://bugs.php.net/bug.php?id=33685

解決方式:

#ln-s/usr/lib64/libjpeg.so/usr/lib/

#ln-s/usr/lib64/libpng.so/usr/lib/

然后繼續(xù)編繹安裝即可!
[root@nagiosserver~]#make
[root@nagiosserver~]#makeinstall
從安裝步驟可知,apache安裝路徑為/usr/local/apache2,而php安裝路徑為/usr/local/php。

(2)配置apache(apache版本不同,修改可能會(huì)不同)
找到apache配置文件/usr/local/apache2/conf/httpd.conf
找到:
Usernobody
Group#-1
修改為
Usernagios
Groupnagios
然后找到
DirectoryIndexindex.htmlindex.html.var
修改為
DirectoryIndexindex.htmlindex.php
接著增加如下內(nèi)容:注意下面的.php,前面有空格
AddTypeapplication/x-httpd-php.php

為了安全其間,一般情況下要讓nagios的web監(jiān)控界面必須經(jīng)過(guò)授權(quán)才能訪(fǎng)問(wèn),這需要增加驗(yàn)證配置,即在httpd.conf文件最后添加如下信息:

#settingfornagios
ScriptAlias/nagios/cgi-bin"/usr/local/nagios/sbin"
<Directory"/usr/local/nagios/sbin">
AuthTypeBasic
OptionsExecCGI
AllowOverrideNone
Orderallow,deny
Allowfromall
AuthName"NagiosAccess"
AuthUserFile/usr/local/nagios/etc/htpasswd
Requirevalid-user
</Directory>

Alias/nagios"/usr/local/nagios/share"
<Directory"/usr/local/nagios/share">
AuthTypeBasic
OptionsNone
AllowOverrideNone
Orderallow,deny
Allowfromall
AuthName"nagiosAccess"
AuthUserFile/usr/local/nagios/etc/htpasswd
Requirevalid-user
</Directory>

(3)創(chuàng)建apache目錄驗(yàn)證文件
在上面的配置中,指定了目錄驗(yàn)證文件htpasswd,下面要?jiǎng)?chuàng)建這個(gè)文件:
[root@localhostnagios]#/usr/local/apache2/bin/htpasswd-c/usr/local/nagios/etc/htpasswdnagios
Newpassword:(輸入密碼)
Re-typenewpassword:(再輸入一次密碼)
Addingpasswordforuserixdba
這樣就在/usr/local/nagios/etc目錄下創(chuàng)建了一個(gè)htpasswd驗(yàn)證文件,當(dāng)通過(guò)http://ip/nagios/訪(fǎng)問(wèn)時(shí)就需要輸入用戶(hù)名和密碼了。
最后,啟動(dòng)服務(wù):
[root@nagiosserver~]#/usr/local/apache2/bin/apachectlstart

啟動(dòng)服務(wù)可能會(huì)出現(xiàn)如下錯(cuò)誤:

httpd:Couldnotdeterminetheserver'sfullyqualifieddomainname,using127.0.0.1forServerName

解決很簡(jiǎn)單在httpd.conf里有一段#ServerNamewww.example.com:80去掉#號(hào)就可以

一、nagios配置過(guò)程詳解
1
、nagios默認(rèn)配置文件介紹
nagios
安裝完畢后,默認(rèn)的配置文件在/usr/local/nagios/etc目錄下

2、配置文件之間的關(guān)系

nagios的配置過(guò)程中涉及到的幾個(gè)定義有:主機(jī)、主機(jī)組,服務(wù)、服務(wù)組,聯(lián)系人、聯(lián)系人組,監(jiān)控時(shí)間,監(jiān)控命令等,從這些定義可以看出,nagios各個(gè)配置文件之間是互為關(guān)聯(lián),彼此引用的。
成功配置出一臺(tái)nagios監(jiān)控系統(tǒng),必須要弄清楚每個(gè)配置文件之間依賴(lài)與被依賴(lài)的關(guān)系,最重要的有四點(diǎn):
第一:定義監(jiān)控哪些主機(jī)、主機(jī)組、服務(wù)和服務(wù)組
第二:定義這個(gè)監(jiān)控要用什么命令實(shí)現(xiàn),
第三:定義監(jiān)控的時(shí)間段,
第四:定義主機(jī)或服務(wù)出現(xiàn)問(wèn)題時(shí)要通知的聯(lián)系人和聯(lián)系人組。

3、開(kāi)始配置nagios
為了能更清楚的說(shuō)明問(wèn)題,同時(shí)也為了維護(hù)方便,建議將nagios各個(gè)定義對(duì)象創(chuàng)建獨(dú)立的配置文件:
即為:
創(chuàng)建hosts.cfg文件來(lái)定義主機(jī)和主機(jī)組
創(chuàng)建services.cfg文件來(lái)定義服務(wù)
用默認(rèn)的contacts.cfg文件來(lái)定義聯(lián)系人和聯(lián)系人組
用默認(rèn)的commands.cfg文件來(lái)定義命令
用默認(rèn)的timeperiods.cfg來(lái)定義監(jiān)控時(shí)間段
用默認(rèn)的templates.cfg文件作為資源引用文件

1templates.cfg文件

nagios
主要用于監(jiān)控主機(jī)資源以及服務(wù),在nagios配置中稱(chēng)為對(duì)象,為了不必重復(fù)定義一些監(jiān)控對(duì)象,Nagios引入了一個(gè)模板配置文件,將一些共性的屬性定義成模板,以便于多次引用。這就是templates.cfg的作用。
下面詳細(xì)介紹下templates.cfg文件中每個(gè)參數(shù)的含義:

  1. definecontact{

  2. namegeneric-contact#聯(lián)系人名稱(chēng),

  3. service_notification_period24x7#當(dāng)服務(wù)出現(xiàn)異常時(shí),發(fā)送通知的時(shí)間段,這個(gè)時(shí)間段“7x24"在timeperiods.cfg文件中定義

  4. host_notification_period24x7#當(dāng)主機(jī)出現(xiàn)異常時(shí),發(fā)送通知的時(shí)間段,這個(gè)時(shí)間段“7x24"在timeperiods.cfg文件中定義

  5. service_notification_optionsw,u,c,r#這個(gè)定義的是“通知可以被發(fā)出的情況”。w即warn,表示警告狀態(tài),u即unknown,表示不明狀態(tài),c即criticle,表示緊急狀態(tài),r即recover,表示恢復(fù)狀態(tài)。也就是在服務(wù)出現(xiàn)警告狀態(tài)、未知狀態(tài)、緊急狀態(tài)和重新恢復(fù)狀態(tài)時(shí)都發(fā)送通知給使用者。

  6. host_notification_optionsd,u,r#定義主機(jī)在什么狀態(tài)下需要發(fā)送通知給使用者,d即down,表示宕機(jī)狀態(tài),u即unreachable,表示不可到達(dá)狀態(tài),r即recovery,表示重新恢復(fù)狀態(tài)。

  7. service_notification_commandsnotify-service-by-email#服務(wù)故障時(shí),發(fā)送通知的方式,可以是郵件和短信,這里發(fā)送的方式是郵件,其中“notify-service-by-email”在commands.cfg文件中定義。

  8. host_notification_commandsnotify-host-by-email#主機(jī)故障時(shí),發(fā)送通知的方式,可以是郵件和短信,這里發(fā)送的方式是郵件,其中“notify-host-by-email”在commands.cfg文件中定義。

  9. register0

  10. }

  11. definehost{

  12. namegeneric-host#主機(jī)名稱(chēng),這里的主機(jī)名,并不是直接對(duì)應(yīng)到真正機(jī)器的主機(jī)名,乃是對(duì)應(yīng)到在主機(jī)配置文件里所設(shè)定的主機(jī)名。

  13. notifications_enabled1

  14. event_handler_enabled1

  15. flap_detection_enabled1

  16. failure_prediction_enabled1

  17. process_perf_data1

  18. retain_status_information1

  19. retain_nonstatus_information1

  20. notification_period24x7#指定“發(fā)送通知”的時(shí)間段,也就是可以在什么時(shí)候發(fā)送通知給使用者。

  21. register0

  22. }

  23. 主機(jī)各參數(shù)意義

  24. definehost{

  25. namelinux-server#主機(jī)名稱(chēng)

  26. usegeneric-host#use表示引用,也就是將主機(jī)generic-host的所有屬性引用到linux-server中來(lái),在nagios配置中,很多情況下會(huì)用到引用。

  27. check_period24x7#這里的check_period告訴nagios檢查主機(jī)的時(shí)間段

  28. check_interval5#nagios對(duì)主機(jī)的檢查時(shí)間間隔,這里是5分鐘。

  29. retry_interval1#重試檢查時(shí)間間隔,單位是分鐘。

  30. max_check_attempts10#nagios對(duì)主機(jī)的最大檢查次數(shù),也就是nagios在檢查發(fā)現(xiàn)某主機(jī)異常時(shí),并不馬上判斷為異常狀況,而是多試幾次,因?yàn)橛锌赡苤皇且粫r(shí)網(wǎng)絡(luò)太擁擠,或是一些其他原因,讓主機(jī)受到了一點(diǎn)影響,這里的10就是至少試10次的意思。

  31. check_commandcheck-host-alive#指定檢查主機(jī)狀態(tài)的命令,其中“check-host-alive”在commands.cfg文件中定義。

  32. notification_periodworkhours#主機(jī)故障時(shí),發(fā)送通知的時(shí)間范圍,其中“workhours”在timeperiods.cfg中進(jìn)行了定義,下面會(huì)陸續(xù)講到。

  33. notification_interval120#在主機(jī)出現(xiàn)異常后,故障一直沒(méi)有解決,nagios再次對(duì)使用者發(fā)出通知的時(shí)間。單位是分鐘。如果你覺(jué)得,所有的事件只需要一次通知就夠了,可以把這里的選項(xiàng)設(shè)為0

  34. notification_optionsd,u,r#定義主機(jī)在什么狀態(tài)下可以發(fā)送通知給使用者,d即down,表示宕機(jī)狀態(tài),u即unreachable,表示不可到達(dá)狀態(tài),r即recovery,表示重新恢復(fù)狀態(tài)。

  35. contact_groupsadmins#指定聯(lián)系人組,這個(gè)“admins”在contacts.cfg文件中定義。

  36. register0

  37. }

  38. 定義服務(wù)各參數(shù)意義

  39. defineservice{

  40. namegeneric-service#定義一個(gè)服務(wù)名稱(chēng)

  41. active_checks_enabled1

  42. passive_checks_enabled1

  43. parallelize_check1

  44. obsess_over_service1

  45. check_freshness0

  46. notifications_enabled1

  47. event_handler_enabled1

  48. flap_detection_enabled1

  49. failure_prediction_enabled1

  50. process_perf_data1

  51. retain_status_information1

  52. retain_nonstatus_information1

  53. is_volatile0

  54. check_period24x7#這里的check_period告訴nagios檢查服務(wù)的時(shí)間段。

  55. max_check_attempts3#nagios對(duì)服務(wù)的最大檢查次數(shù)。

  56. normal_check_interval10#此選項(xiàng)是用來(lái)設(shè)置服務(wù)檢查時(shí)間間隔,也就是說(shuō),nagios這一次檢查和下一次檢查之間所隔的時(shí)間,這里是10分鐘。

  57. retry_check_interval2#重試檢查時(shí)間間隔,單位是分鐘。

  58. contact_groupsadmins#指定聯(lián)系人組,同上。

  59. notification_optionsw,u,c,r#這個(gè)定義的是“通知可以被發(fā)出的情況”。w即warn,表示警告狀態(tài),u即unknown,表示不明狀態(tài),c即criticle,表示緊急狀態(tài),r即recover,表示恢復(fù)狀態(tài)。也就是在服務(wù)出現(xiàn)警告狀態(tài)、未知狀態(tài)、緊急狀態(tài)和重新恢復(fù)后都發(fā)送通知給使用者。

  60. notification_interval60#在服務(wù)出現(xiàn)異常后,故障一直沒(méi)有解決,nagios再次對(duì)使用者發(fā)出通知的時(shí)間。單位是分鐘。如果你認(rèn)為,所有的事件只需要一次通知就夠了,可以把這里的選項(xiàng)設(shè)為0。

  61. notification_period24x7#指定“發(fā)送通知”的時(shí)間段,也就是可以在什么時(shí)候發(fā)送通知給使用者。

  62. register0

  63. }


(2)resource.cfg文件

resource.cfg是nagios的變量定義文件,文件內(nèi)容只有一行:

  1. $USER1$=/usr/local/nagios/libexec


其中,變量$USER1$指定了安裝nagios插件的路徑,如果把插件安裝在了其它路徑,只需在這里進(jìn)行修改即可。需要注意的是,變量必須先定義,然后才能在其它配置文件中進(jìn)行引用。

(3)理解Nagios宏及其工作機(jī)制

Nagios配置非常靈活,繼承和引用是一大特征,另一個(gè)重要特征就是可以在命令行的定義里使用宏,通過(guò)定義宏,nagios可以靈活的獲取主機(jī)、服務(wù)和其它對(duì)象的信息。
宏的工作機(jī)制
在執(zhí)行命令之前,nagios將對(duì)命令里的每個(gè)宏替換成它們應(yīng)當(dāng)取得的值。這種宏替換發(fā)生在Nagios執(zhí)行各種類(lèi)型的宏時(shí)候。例如主機(jī)和服務(wù)的檢測(cè)、通知、事件處理等。

宏的分類(lèi):
默認(rèn)宏、按需而成的宏、用戶(hù)自定制宏等。

默認(rèn)宏
主機(jī)IP地址宏
當(dāng)在命令定義中使用主機(jī)或服務(wù)宏時(shí),宏將要執(zhí)行所用的值指向主機(jī)或服務(wù)所帶有值??聪旅孢@個(gè)例子,假定在check_ping命令定義里使用了一個(gè)主機(jī)對(duì)象,例如這樣:

  1. definehost{

  2. host_nameixdba

  3. address192.168.12.246

  4. check_commandcheck_ping

  5. ...

  6. }

  7. definecommand{

  8. command_namecheck_ping

  9. command_line/usr/local/nagios/libexec/check_ping-H$HOSTADDRESS$-w100.0,90%-c200.0,60%

  10. }


那么執(zhí)行這個(gè)主機(jī)檢測(cè)命令時(shí)展開(kāi)并最終執(zhí)行的將是這樣的:

  1. /usr/local/nagios/libexec/check_ping-H192.168.12.246-w100.0,90%-c200.0,60%


命令參數(shù)宏
同樣你可以向命令傳遞參數(shù),這樣可以保證命令定義更具通用性。參數(shù)指定在對(duì)象(象主機(jī)或服務(wù))中定義,用一個(gè)“!”來(lái)分隔,例如這樣:

  1. defineservice{

  2. host_namelinuxbox

  3. service_descriptionPING

  4. check_commandcheck_ping!200.0,80%!400.0,40%

  5. ...

  6. }


在上例中,服務(wù)的檢測(cè)命令中含有兩個(gè)參數(shù)(請(qǐng)參考$ARGn$宏),而$ARG1$宏將是"200.0,80%",同時(shí)$ARG2$將是"400.0,40%"(都不帶引號(hào))。假定使用之前的主機(jī)定義并這樣來(lái)定義你的check_ping命令:

  1. definecommand{

  2. command_namecheck_ping

  3. command_line/usr/local/nagios/libexec/check_ping-H$HOSTADDRESS$-w$ARG1$-c$ARG2$

  4. }


那么對(duì)于服務(wù)的檢測(cè)命令最終將是這樣子的:

  1. /usr/local/nagios/libexec/check_ping-H192.168.12.246-w200.0,80%-c400.0,40%

Nagios可用的全部的宏

主機(jī)宏
$HOSTNAME$主機(jī)簡(jiǎn)稱(chēng)(如"web"),取自于主機(jī)定義里的host_name域
$HOSTADDRESS$主機(jī)地址。取自于主機(jī)定義里的address域
服務(wù)宏
$SERVICESTATE$服務(wù)狀態(tài)描述,有w,u,c
$SERVICEDESC$對(duì)當(dāng)前服務(wù)的描述
聯(lián)系人宏
$CONTACTNAME$表示聯(lián)系人,在聯(lián)系人文件中定義
通知宏
$NOTIFICATIONTYPE$返回下面信息:("PROBLEM","RECOVERY","ACKNOWLEDGEMENT","FLAPPINGSTART","FLAPPINGSTOP","FLAPPINGDISABLED","DOWNTIMESTART","DOWNTIMEEND",or"DOWNTIMECANCELLED").
日期/時(shí)間宏
$LONGDATETIME$當(dāng)前的日期/時(shí)間戳
文件宏
$LOGFILE$日志文件的保存位置。
$MAINCONFIGFILE$主配置文件的保存位置。
其他宏
$ADMINEMAIL$全局的管理員EMail地址
$ARGn$指向第n個(gè)命令傳遞參數(shù)(通知、事件處理、服務(wù)檢測(cè)等)。Nagios支持最多32個(gè)參數(shù)宏

(4)commands.cfg文件
此文件默認(rèn)是存在的,無(wú)需修改即可使用,當(dāng)然如果有新的命令需要加入時(shí),在此文件進(jìn)行添加即可。這里并未列出文件的所有內(nèi)容,僅僅介紹了配置中用到的一些命令。

  1. #下面是notify-host-by-email命令的定義

  2. definecommand{

  3. command_namenotify-host-by-email#命令名稱(chēng),即定義了一個(gè)主機(jī)異常時(shí)發(fā)送郵件的命令。

  4. command_line/usr/bin/printf"%b""*****Nagios*****nnNotificationType:$NOTIFICATIONTYPE$nHost:$HOSTNAME$nState:$HOSTSTATE$nAddress:$HOSTADDRESS$nInfo:$HOSTOUTPUT$nnDate/Time:$LONGDATETIME$n"|/bin/mail-s"**$NOTIFICATIONTYPE$HostAlert:$HOSTNAME$is$HOSTSTATE$**"$CONTACTEMAIL$#命令具體的執(zhí)行方式,“-H$HOSTADDRESS$”是定義目標(biāo)主機(jī)的地址,這個(gè)地址在hosts.cfg文件中定義了。

  5. }

  6. #下面是notify-host-by-email命令的定義

  7. definecommand{

  8. command_namenotify-service-by-email#命令名稱(chēng),即定義了一個(gè)服務(wù)異常時(shí)發(fā)送郵件的命令

  9. command_line/usr/bin/printf"%b""*****Nagios*****nnNotificationType:$NOTIFICATIONTYPE$nnService:$SERVICEDESC$nHost:$HOSTALIAS$nAddress:$HOSTADDRESS$nState:$SERVICESTATE$nnDate/Time:$LONGDATETIME$nnAdditionalInfo:nn$SERVICEOUTPUT$"|/bin/mail-s"**$NOTIFICATIONTYPE$ServiceAlert:$HOSTALIAS$/$SERVICEDESC$is$SERVICESTATE$**"$CONTACTEMAIL$

  10. }

  11. #下面是notify-host-by-email命令的定義

  12. definecommand{

  13. command_namecheck-host-alive

  14. #命令名稱(chēng),用來(lái)檢測(cè)主機(jī)狀態(tài)。

  15. command_line$USER1$/check_ping-H$HOSTADDRESS$-w3000.0,80%-c5000.0,100%-p5

  16. #這里的變量$USER1$在resource.cfg文件中進(jìn)行定義,即$USER1$=/usr/local/nagios/libexec

  17. ,那么check_ping的完整路徑為/usr/local/nagios/libexec/check_ping?!?w3000.0,80%”中“-w”說(shuō)明后面的一對(duì)值對(duì)應(yīng)的是“WARNING”狀態(tài),“80%”是其臨界值。“-c5000.0,100%”中“-c”說(shuō)明后面的一對(duì)值對(duì)應(yīng)的是“CRITICAL”,“100%”是其臨界值。“-p1”說(shuō)明每次探測(cè)發(fā)送一個(gè)包。

  18. }

  19. #下面是notify-host-by-email命令的定義

  20. definecommand{

  21. command_namecheck_ftp

  22. command_line$USER1$/check_ftp-H$HOSTADDRESS$$ARG1$#$ARG1$是指在調(diào)用這個(gè)命令的時(shí)候,命令后面的第一個(gè)參數(shù)。

  23. }

  24. #下面是check_http命令的定義

  25. definecommand{

  26. command_namecheck_http

  27. command_line$USER1$/check_http-I$HOSTADDRESS$$ARG1$

  28. }

  29. #下面是check_ssh命令的定義

  30. definecommand{

  31. command_namecheck_ssh

  32. command_line$USER1$/check_ssh$ARG1$$HOSTADDRESS$

  33. }
    (5)hosts.cfg文件
    此文件默認(rèn)不存在,需要手動(dòng)創(chuàng)建,hosts.cfg主要用來(lái)指定被監(jiān)控的主機(jī)地址以及相關(guān)屬性信息,一個(gè)配置好的實(shí)例如下:

  1. definehost{

  2. uselinux-server#引用主機(jī)linux-server的屬性信息,linux-server主機(jī)在templates.cfg文件中進(jìn)行了定義。

  3. host_nameweb#主機(jī)名

  4. aliasixdba-web#主機(jī)別名

  5. address192.168.12.251#被監(jiān)控的主機(jī)地址,這個(gè)地址可以是ip,也可以是域名。

  6. }

  7. definehost{

  8. uselinux-server

  9. host_namemysql

  10. aliasixdba-mysql

  11. address192.168.12.237

  12. }

  13. definehostgroup{#定義一個(gè)主機(jī)組

  14. hostgroup_namesa-servers#主機(jī)組名稱(chēng),可以隨意指定。

  15. aliassaservers#主機(jī)組別名

  16. membersweb,mysql#主機(jī)組成員,其中“web”、“mysql”就是上面定義的兩個(gè)主機(jī)。

  17. }


(6)services.cfg文件
此文件默認(rèn)也不存在,需要手動(dòng)創(chuàng)建,services.cfg文件主要用于定義監(jiān)控的服務(wù)和主機(jī)資源,例如監(jiān)控http服務(wù)、ftp服務(wù)、主機(jī)磁盤(pán)空間、主機(jī)系統(tǒng)負(fù)載等等。

  1. #################web#####################

  2. defineservice{

  3. uselocal-service#引用local-service服務(wù)的屬性值,local-service在templates.cfg文件中進(jìn)行了定義。

  4. host_nameweb#指定要監(jiān)控哪個(gè)主機(jī)上的服務(wù),“web”在hosts.cfg文件中進(jìn)行了定義。

  5. service_descriptionPING#對(duì)監(jiān)控服務(wù)內(nèi)容的描述,以供維護(hù)人員參考。

  6. check_commandcheck_ping!100.0,20%!500.0,60%#指定檢查的命令,check_ping命令在commands.cfg中定義,后跟兩個(gè)參數(shù),命令與參數(shù)間用!分割。

  7. }

  8. defineservice{

  9. uselocal-service

  10. host_nameweb

  11. service_descriptionSSH

  12. check_commandcheck_ssh

  13. #check_ssh命令也在commands.cfg中定義。

  14. }

  15. defineservice{

  16. uselocal-service

  17. host_nameweb

  18. service_descriptionSSHD

  19. check_commandcheck_tcp!22

  20. }


(7)contacts.cfg文件
contacts.cfg是一個(gè)定義聯(lián)系人和聯(lián)系人組的配置文件,當(dāng)監(jiān)控的主機(jī)或者服務(wù)出現(xiàn)故障,nagios會(huì)通過(guò)指定的通知方式(郵件或者短信)將信息發(fā)給這里指定的聯(lián)系人或者使用者。

  1. definecontact{

  2. contact_namesasystem#聯(lián)系人名稱(chēng)

  3. usegeneric-contact#引用generic-contact的屬性信息,其中“generic-contact”在templates.cfg文件中進(jìn)行定義

  4. aliassa-system#聯(lián)系人別名

  5. emailixdba@126.com#聯(lián)系人的郵件地址

  6. }

  7. definecontactgroup{

  8. contactgroup_nameadmins#聯(lián)系人組名稱(chēng)

  9. aliassystemadministratorgroup#聯(lián)系人組描述

  10. memberssasystem#聯(lián)系人組成員,其中“sasystem”就是上面定義的聯(lián)系人

  11. }


(8)timeperiods.cfg文件
此文件只要用于定義監(jiān)控的時(shí)間段,下面是一個(gè)配置好的實(shí)例:

  1. #下面是定義一個(gè)名為24x7的時(shí)間段,即監(jiān)控所有時(shí)間段

  2. definetimeperiod{

  3. timeperiod_name24x7

  4. alias24HoursADay,7DaysAWeek

  5. sunday00:00-24:00

  6. monday00:00-24:00

  7. tuesday00:00-24:00

  8. wednesday00:00-24:00

  9. thursday00:00-24:00

  10. friday00:00-24:00

  11. saturday00:00-24:00

  12. }

  13. #下面是定義一個(gè)名為workhours的時(shí)間段,即工作時(shí)間段。

  14. definetimeperiod{

  15. timeperiod_nameworkhours

  16. aliasNormalWorkHours

  17. monday09:00-17:00

  18. tuesday09:00-17:00

  19. wednesday09:00-17:00

  20. thursday09:00-17:00

  21. friday09:00-17:00

  22. }


(9)cgi.cfg文件
此文件用來(lái)控制相關(guān)cgi腳本,如果想在nagios的web監(jiān)控界面執(zhí)行cgi腳本,例如重啟nagios進(jìn)程、關(guān)閉nagios通知、停止nagios主機(jī)檢測(cè)等,這時(shí)就需要配置cgi.cfg文件了。
由于nagios的web監(jiān)控界面驗(yàn)證用戶(hù)為ixdba,所以只需在cgi.cfg文件中添加此用戶(hù)的執(zhí)行權(quán)限就可以了,需要修改的配置信息如下:

  1. default_user_name=ixdba

  2. authorized_for_system_information=nagiosadmin,ixdba

  3. authorized_for_configuration_information=nagiosadmin,ixdba

  4. authorized_for_system_commands=ixdba

  5. authorized_for_all_services=nagiosadmin,ixdba

  6. authorized_for_all_hosts=nagiosadmin,ixdba

  7. authorized_for_all_service_commands=nagiosadmin,ixdba

  8. authorized_for_all_host_commands=nagiosadmin,ixdba

(10)nagios.cfg文件
Nagios.cfg默認(rèn)的路徑為/usr/local/nagios/etc/nagios.cfg,是nagios的核心配置文件,所有的對(duì)象配置文件都必須在這個(gè)文件中進(jìn)行定義才能發(fā)揮其作用,這里只需將對(duì)象配置文件在Nagios.cfg文件中進(jìn)行引用即可。

  1. log_file=/usr/local/nagios/var/nagios.log

  2. “l(fā)og_file”變量用來(lái)定義nagios日志文件的路徑。

  3. cfg_file=/usr/local/nagios/etc/hosts.cfg

  4. cfg_file=/usr/local/nagios/etc/services.cfg

  5. cfg_file=/usr/local/nagios/etc/commands.cfg

  6. cfg_file=/usr/local/nagios/etc/contacts.cfg

  7. cfg_file=/usr/local/nagios/etc/timeperiods.cfg

  8. cfg_file=/usr/local/nagios/etc/templates.cfg

  9. “cfg_file”變量用來(lái)引用對(duì)象配置文件,如果有更多的對(duì)象配置文件,在這里依次添加即可。

  10. object_cache_file=/usr/local/nagios/var/objects.cache

  11. 該變量用于指定一個(gè)“所有對(duì)象配置文件”的副本文件,或者叫對(duì)象緩沖文件

  12. resource_file=/usr/local/nagios/etc/resource.cfg

  13. 該變量用于指定nagios資源文件的路徑,可以在Nagios.cfg中定義多個(gè)資源文件。

  14. status_file=/usr/local/nagios/var/status.dat

  15. 該變量用于定義一個(gè)狀態(tài)文件,此文件用于保存nagios的當(dāng)前狀態(tài)、注釋和宕機(jī)信息等。

  16. status_update_interval=10

  17. 該變量用于定義狀態(tài)文件(即status.dat)的更新時(shí)間間隔,單位是秒,最小更新間隔是1秒。

  18. nagios_user=nagios

  19. 該變量指定了Nagios進(jìn)程使用哪個(gè)用戶(hù)運(yùn)行。

  20. nagios_group=nagios

  21. 該變量用于指定Nagios使用哪個(gè)用戶(hù)組運(yùn)行。

  22. check_external_commands=1

  23. 該變量用于設(shè)置是否允許nagios在web監(jiān)控界面運(yùn)行cgi命令,也就是是否允許nagios在web界面下執(zhí)行重啟nagios、停止主機(jī)/服務(wù)檢查等操作?!?”為運(yùn)行,“0”為不允許。

  24. command_check_interval=2

  25. 該變量用于設(shè)置nagios對(duì)外部命令檢測(cè)的時(shí)間間隔,如果指定了一個(gè)數(shù)字加一個(gè)"s"(如10s),那么外部檢測(cè)命令的間隔是這個(gè)數(shù)值以秒為單位的時(shí)間間隔。如果沒(méi)有用"s",那么外部檢測(cè)命令的間隔是以這個(gè)數(shù)值的“時(shí)間單位”的時(shí)間間隔。

  26. interval_length=60

  27. 該變量指定了nagios的時(shí)間單位,默認(rèn)值是60秒,也就是1分鐘,即在nagios配置中所有的時(shí)間單位都是分鐘。

1、驗(yàn)證Nagios配置文件的正確性

nagios在驗(yàn)證配置文件方面做的非常到位,只需通過(guò)一個(gè)命令即可完成:

/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg

Nagios提供的這個(gè)驗(yàn)證功能非常有用,在錯(cuò)誤信息中通常會(huì)打印出錯(cuò)誤的配置文件以及文件中的哪一行,這使得nagios的配置變得非常容易,報(bào)警信息通常是可以忽略的,因?yàn)橐话隳切┲皇墙ㄗh性的。

2、啟動(dòng)與停止nagios

(1)啟動(dòng)nagios

在啟動(dòng)nagios前修改/etc/passwd,文件最后nagios:x:501:501::/home/nagios:/sbin/nlogin

改為

nagios:x:501:501::/home/nagios:/bin/bash

否則報(bào)如下錯(cuò)誤

Startingnagios:Thisaccountiscurrentlynotavailable.

done.

修改/etc/cgi.cfg
vi/usr/local/nagios/etc/cgi.cfg

里面有配置


use_authentication=1#把1修改為0,保存

為了保障系統(tǒng)的安全性,nagios設(shè)置了這個(gè)參數(shù),默認(rèn)為1,改為0即可

通過(guò)初始化腳本啟動(dòng)nagios

/etc/init.d/nagiosstart

或者

Servicenagiosstart

手工方式啟動(dòng)nagios

通過(guò)nagios命令的“-d”參數(shù)來(lái)啟動(dòng)nagios守護(hù)進(jìn)程:

/usr/local/nagios/bin/nagios-d/usr/local/nagios/etc/nagios.cfg

(2)關(guān)閉nagios

通過(guò)初始化腳本關(guān)閉nagios服務(wù)

/etc/init.d/nagiosstop

或者

Servicenagiosstop

通過(guò)kill方式關(guān)閉nagios

kill<nagios_pid>

2啟動(dòng)與停止nagios

通過(guò)初始化腳本來(lái)重啟nagios

/etc/rc.d/init.d/nagiosreload

/etc/rc.d/init.d/nagiosrestart

4、nagios性能分析圖表

1nagios性能分析圖表的作用

Nagios對(duì)服務(wù)或主機(jī)監(jiān)控的是一個(gè)瞬時(shí)狀態(tài),有時(shí)候系統(tǒng)管理員如果需要了解主機(jī)在一段時(shí)間內(nèi)的性能以及服務(wù)的響應(yīng)狀態(tài),并且形成圖表時(shí),就需要通過(guò)查看日志數(shù)據(jù)來(lái)分析,但是這種方式不但繁瑣,而且抽象,不過(guò)幸運(yùn)的是,PNP可以幫助我們來(lái)完成這個(gè)工作。

(2)PNP的概念與安裝環(huán)境

PNP是一個(gè)小巧的開(kāi)源軟件包,它基于PHP和PERL,PNP可以利用rrdtool工具將Nagios采集的數(shù)據(jù)繪制成相關(guān)的圖表,然后顯示主機(jī)或者服務(wù)在一段時(shí)間內(nèi)的運(yùn)行狀況。

PNP官方網(wǎng)站為:http://www.pnp4nagios.org

如果要安裝PNP,首先需要安裝如下環(huán)境:

1:整合后的apache和PHP環(huán)境,需支持GD、zlib

不然當(dāng)點(diǎn)擊太陽(yáng)小圖標(biāo)時(shí),會(huì)遇到如下錯(cuò)誤,

1PHPzlibSupportnotfound

安裝php時(shí)未指定zlib庫(kù),或者是未安裝zlib(whereiszlib判斷是否安裝了zlib)

2PHPgdsupportnotfound

如果gd庫(kù)是rpm安裝的用參數(shù)--with-gd

在上面安裝PHP時(shí)應(yīng)該這樣指定

./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache2/bin/apxs--with-zlib-dir=/usr/include/zlib.h--with-gd

如果沒(méi)有性能分析圖表,就不用參數(shù)--with-zlib-dir--with-gd

2:安裝rrdtool工具

3:安裝perl

(3)安裝PNP

RRDtool是一個(gè)圖表生成工具,可以從http://www.mrtg.org/rrdtool/獲得信息。

這里下載的版本是rrdtool-1.4.5.tar.gz,安裝過(guò)程如下:

[root@nagiosrrdtool]#tarzxvfrrdtool-1.4.5.tar.gz

[root@nagiosrrdtool]#cdrrdtool-1.4.5

[root@nagiosrrdtool-1.4.5]#./configure--prefix=/usr/local/rrdtool

[root@nagiosrrdtool-1.4.5]#make

[root@nagiosrrdtool-1.4.5]#makeinstall

接著安裝PNP,這里下載的版本是pnp-0.4.13.tar.gz,安裝過(guò)程如下:

[root@nagiospnp]#tar-xvzfpnp-0.4.13.tar.gz

[root@nagiospnp]#cdpnp-0.4.13

[root@nagiospnp-0.4.13]#./configure--with-nagios-user=nagios--with-nagios-group-nagios--with-rrdtool=/usr/local/rrdtool/bin/rrdtool--with-perfdata-dir=/usr/local/nagios/share/perfdata

[root@nagiospnp-0.4.13]#makeall

[root@nagiospnp-0.4.13]#makeinstall

[root@nagiospnp-0.4.13]#makeinstall-config

[root@nagiospnp-0.4.13]#makeinstall-init

安裝完成,PNP默認(rèn)文件放置情況如下:

GeneralOptions:

------------------------------------------------

Nagiosuser/group:nagiosnagios

Installdirectory:/usr/local/nagios

HTMLDir:/usr/local/nagios/share/pnp

ConfigDir:/usr/local/nagios/etc/pnp

Pathtorrdtool:/usr/local/bin/rrdtool(Version1.4.5)

RRDsPerlModules:***NOTFOUND***

RRDFilesstoredin:/usr/local/nagios/share/perfdata

process_perfdata.plLogfile:/usr/local/nagios/var/perfdata.log

Perfdatafiles(NPCD)storedin:/usr/local/nagios/var/spool/perfdata/

-------------------------------------------------------------------------

(4)設(shè)置PNP

①創(chuàng)建默認(rèn)配置文件

cd/usr/local/nagios/etc/pnp/

cpprocess_perfdata.cfg-sampleprocess_perfdata.cfg

cpnpcd.cfg-samplenpcd.cfg

cprra.cfg-samplerra.cfg

chown-Rnagios:nagios*

②修改process_perfdata.cfg文件

vi/usr/local/nagios/etc/pnp/process_perfdata.cfg

LOG_FILE=/usr/local/nagios/var/perfdata.log

#Loglevel0=silent1=normal2=debug

LOG_LEVEL=2

這里將日志級(jí)別改為2,即為debug模式。

(5)修改nagios配置文件

①增加小太陽(yáng)標(biāo)示

修改templates.cfg,增加一個(gè)定義PNP的hosts和services

definehost{

namehosts-pnp

register0

action_url/nagios/pnp/index.php?host=$HOSTNAME$

process_perf_data1

}

defineservice{

nameservices-pnp

register0

action_url/nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$

process_perf_data1

}

②修改nagios.cfg

找到如下幾項(xiàng),去掉注釋?zhuān)薷暮笮畔⑷缦拢?/p>

process_performance_data=1

host_perfdata_command=process-host-perfdata

service_perfdata_command=process-service-perfdata

③修改commands.cfg,把文件最后定義的注釋掉,添加如下信息,用process_perfdata.pl讀取host、service信息

#'process-host-perfdata'commanddefinition

definecommand{

command_nameprocess-host-perfdata

command_line/usr/local/nagios/libexec/process_perfdata.pl

}

#'process-service-perfdata'commanddefinition

definecommand{

command_nameprocess-service-perfdata

command_line/usr/local/nagios/libexec/process_perfdata.pl

}

④修改hosts.cfg文件和services.cfg文件

definehost{

uselinux-server,hosts-pnp

host_nameweb

aliasixdba-web

address192.168.12.251

}

definehost{

uselinux-server,hosts-pnp

host_namemysql

aliasixdba-mysql

address192.168.12.237

}

defineservice{

uselocal-service,services-pnp

host_namemysql

service_descriptionSSH

check_commandcheck_ssh

}

defineservice{

uselocal-service,services-pnp

host_nameweb

service_descriptionhttp

check_commandcheck_http

}

(5)測(cè)試PNP功能

所有配置完成之后,重新檢查nagios配置文件是否正確,然后重啟nagios

/etc/init.d/nagiosrestart

如果配置正確,此時(shí)就會(huì)生成響應(yīng)主機(jī)的pnp文件

[root@nagiosweb]#pwd

/usr/local/nagios/share/perfdata/web

[root@gaojfweb]#ls

http.rrdhttp.xmlPING.rrdPING.xmlSSHD.rrdSSHD.xml

最后打開(kāi)網(wǎng)頁(yè):

打開(kāi)網(wǎng)頁(yè)http://IP/nagios,選擇主機(jī)選項(xiàng),然后點(diǎn)擊小太陽(yáng)就可以看到圖表,或者訪(fǎng)問(wèn)http://ip/nagios/pnp也可以直接訪(fǎng)問(wèn)圖表信息。如下圖所示:

點(diǎn)擊小太陽(yáng)報(bào)錯(cuò)

Deprecated:Assigningthereturnvalueofnewbyreferenceisdeprecatedin/usr/local/nagios/share/pnp/include/function.inc.phponline1026

Warning
:date()[function.date]:Itisnotsafetorelyonthesystem'stimezonesettings.Youare*required*tousethedate.timezonesettingorthedate_default_timezone_set()function.Incaseyouusedanyofthosemethodsandyouarestillgettingthiswarning,youmostlikelymisspelledthetimezoneidentifier.Weselected'Asia/Chongqing'for'CST/8.0/noDST'insteadin/usr/local/nagios/share/pnp/include/function.inc.phponline557

Warning
:date()[function.date]:Itisnotsafetorelyonthesystem'stimezonesettings.Youare*required*tousethedate.timezonesettingorthedate_default_timezone_set()function.Incaseyouusedanyofthosemethodsandyouarestillgettingthiswarning,youmostlikelymisspelledthetimezoneidentifier.Weselected'Asia/Chongqing'for'CST/8.0/noDST'insteadin/usr/local/nagios/share/pnp/include/function.inc.phponline559

Warning
:date()[function.date]:Itisnotsafetorelyonthesystem'stimezonesettings.Youare*required*tousethedate.timezonesettingorthedate_default_timezone_set()function.Incaseyouusedanyofthosemethodsandyouarestillgettingthiswarning,youmostlikelymisspelledthetimezoneidentifier.Weselected'Asia/Chongqing'for'CST/8.0/noDST'insteadin/usr/local/nagios/share/pnp/include/function.inc.phponline563

Warning
:date()[function.date]:Itisnotsafetorelyonthesystem'stimezonesettings.Youare*required*tousethedate.timezonesettingorthedate_default_timezone_set()function.Incaseyouusedanyofthosemethodsandyouarestillgettingthiswarning,youmostlikelymisspelledthetimezoneidentifier.Weselected'Asia/Chongqing'for'CST/8.0/noDST'insteadin/usr/local/nagios/share/pnp/include/function.inc.phponline565

Warning
:date()[function.date]:Itisnotsafetorelyonthesystem'stimezonesettings.Youare*required*tousethedate.timezonesettingorthedate_default_timezone_set()function.Incaseyouusedanyofthosemethodsandyouarestillgettingthiswarning,youmostlikelymisspelledthetimezoneidentifier.Weselected'Asia/Chongqing'for'CST/8.0/noDST'insteadin/usr/local/nagios/share/pnp/include/function.inc.phponline563

Warning
:date()[function.date]:Itisnotsafetorelyonthesystem'stimezonesettings.Youare*required*tousethedate.timezonesettingorthedate_default_timezone_set()function.Incaseyouusedanyofthosemethodsandyouarestillgettingthiswarning,youmostlikelymisspelledthetimezoneidentifier.Weselected'Asia/Chongqing'for'CST/8.0/noDST'insteadin/usr/local/nagios/share/pnp/include/function.inc.phponline565

Warning
:date()[function.date]:Itisnotsafetorelyonthesystem'stimezonesettings.Youare*required*tousethedate.timezonesettingorthedate_default_timezone_set()function.Incaseyouusedanyofthosemethodsandyouarestillgettingthiswarning,youmostlikelymisspelledthetimezoneidentifier.Weselected'Asia/Chongqing'for'CST/8.0/noDST'insteadin/usr/local/nagios/share/pnp/include/function.inc.phponline563

Warning
:date()[function.date]:Itisnotsafetorelyonthesystem'stimezonesettings.Youare*required*tousethedate.timezonesettingorthedate_default_timezone_set()function.Incaseyouusedanyofthosemethodsandyouarestillgettingthiswarning,youmostlikelymisspelledthetimezoneidentifier.Weselected'Asia/Chongqing'for'CST/8.0/noDST'insteadin/usr/local/nagios/share/pnp/include/function.inc.phponline565

Warning
:date()[function.date]:Itisnotsafetorelyonthesystem'stimezonesettings.Youare*required*tousethedate.timezonesettingorthedate_default_timezone_set()function.Incaseyouusedanyofthosemethodsandyouarestillgettingthiswarning,youmostlikelymisspelledthetimezoneidentifier.Weselected'Asia/Chongqing'for'CST/8.0/noDST'insteadin/usr/local/nagios/share/pnp/include/function.inc.phponline563

Warning
:date()[function.date]:Itisnotsafetorelyonthesystem'stimezonesettings.Youare*required*tousethedate.timezonesettingorthedate_default_timezone_set()function.Incaseyouusedanyofthosemethodsandyouarestillgettingthiswarning,youmostlikelymisspelledthetimezoneidentifier.Weselected'Asia/Chongqing'for'CST/8.0/noDST'insteadin/usr/local/nagios/share/pnp/include/function.inc.phponline565

Warning
:date()[function.date]:Itisnotsafetorelyonthesystem'stimezonesettings.Youare*required*tousethedate.timezonesettingorthedate_default_timezone_set()function.Incaseyouusedanyofthosemethodsandyouarestillgettingthiswarning,youmostlikelymisspelledthetimezoneidentifier.Weselected'Asia/Chongqing'for'CST/8.0/noDST'insteadin/usr/local/nagios/share/pnp/include/function.inc.phponline563

Warning
:date()[function.date]:Itisnotsafetorelyonthesystem'stimezonesettings.Youare*required*tousethedate.timezonesettingorthedate_default_timezone_set()function.Incaseyouusedanyofthosemethodsandyouarestillgettingthiswarning,youmostlikelymisspelledthetimezoneidentifier.Weselected'Asia/Chongqing'for'CST/8.0/noDST'insteadin/usr/local/nagios/share/pnp/include/function.inc.phponline565

這是因?yàn)閜np-0.4.14對(duì)PHP5.3.2的支持還不是很好,其中有幾個(gè)bug需要修改:

根據(jù)錯(cuò)誤提示打開(kāi)

vi/usr/local/nagios/share/pnp/include/function.inc.php



根據(jù)提示找到對(duì)應(yīng)行進(jìn)行修改,提示1026行錯(cuò)誤,其他是date錯(cuò)誤從557開(kāi)始
根據(jù)報(bào)錯(cuò)信息添加
line556:添加:date_default_timezone_set('UTC');
line1026:修改為$pdf=newPDF('P','mm','A4');刪除&

改完之后重啟nagios又出現(xiàn)如下錯(cuò)誤
Deprecated:Functioneregi()isdeprecatedin/usr/local/nagios/share/pnp/include/function.inc.phponline1504

Deprecated
:Functioneregi()isdeprecatedin/usr/local/nagios/share/pnp/include/function.inc.phponline1504

Deprecated
:Functioneregi()isdeprecatedin/usr/local/nagios/share/pnp/include/function.inc.phponline1504

Deprecated
:Functioneregi()isdeprecatedin/usr/local/nagios/share/pnp/include/function.inc.phponline1504

Deprecated
:Functioneregi()isdeprecatedin/usr/local/nagios/share/pnp/include/function.inc.phponline1504

Deprecated
:Functioneregi()isdeprecatedin/usr/local/nagios/share/pnp/include/function.inc.phponline1504

Deprecated
:Functioneregi()isdeprecatedin/usr/local/nagios/share/pnp/include/function.inc.phponline1504

Deprecated
:Functioneregi()isdeprecatedin/usr/local/nagios/share/pnp/include/function.inc.phponline1504

提示eregi()函數(shù)有誤

找到行1504附近修改為

if($level==2&&$type=="complete"&&preg_match("/^NAGIOS_/",$tag)){

再重新重啟nagios,應(yīng)該就能看到圖表了

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI