Nagios安装部署与Cacti整合文档超精细版本
?
?
?
?
| Nagios安裝部署與Cacti整合文檔 ? | ||
| ? | ||
| ? | ||
| ? | ||
| 系統(tǒng)環(huán)境:CentOS5.4 | 文檔版本:V2.0.1 | 整理:Kevin |
| 更新時(shí)間:2011-05-31 | 備注:運(yùn)維專用 | |
?
?
?
?
?
?
?
?
?
?
?
?
?
Nagios是一款開源的免費(fèi)網(wǎng)絡(luò)監(jiān)視工具,其功能強(qiáng)大,靈活性強(qiáng)。能有效監(jiān)控Windows、Linux和Unix的主機(jī)狀態(tài),交換機(jī)路由器等網(wǎng)絡(luò)設(shè)置,打印機(jī)等。Nagios通常由一個(gè)主程序(Nagios)、一個(gè)插件程序(Nagios-plugins)和四個(gè)可選的ADDON(NRPE、NSCA、 NSClient++和NDOUtils)組成。Nagios的監(jiān)控工作都是通過插件實(shí)現(xiàn)的,因此,Nagios和Nagios-plugins是服務(wù)器端工作所必須的組件。而四個(gè)ADDON中
(1)NRPE:用來(lái)在監(jiān)控的遠(yuǎn)程Linux/Unix主機(jī)上執(zhí)行腳本插件以實(shí)現(xiàn)對(duì)這些主機(jī)資源的監(jiān)控
(2)NSCA:用來(lái)讓 被監(jiān)控的遠(yuǎn)程Linux/Unix主機(jī)主動(dòng)將監(jiān)控信息發(fā)送給Nagios服務(wù)器(這在冗余監(jiān)控模式中特別要用到)
(3)NSClient++:用來(lái)監(jiān)控 Windows主機(jī)時(shí)安裝在Windows主機(jī)上的組件
(4)NDOUtils:則用來(lái)將Nagios的配置信息和各event產(chǎn)生的數(shù)據(jù)存入數(shù)據(jù)庫(kù),以實(shí)現(xiàn) 這些數(shù)據(jù)的快速檢索和處理這四個(gè)ADDON(附件)中,NRPE和NSClient++工作于客戶端,NDOUtils工作于服務(wù)器端,而NSCA則需要同時(shí)安裝在服務(wù)器端和客戶端
?
?
?
?
?
?
?
目 錄
Nagios安裝部署與Cacti整合文檔... 1
1. 文檔更新記錄... 1
2. 文檔說(shuō)明... 1
3. Nagios的安裝... 1
3.1. 安裝基礎(chǔ)支持套件和添加用戶... 1
3.2. 安裝nagios. 2
3.3. 安裝nagios-plugins. 2
3.4. 安裝nagios-snmp-plugins. 3
3.5. 其他設(shè)置... 4
4. nagios的配置... 5
4.1. nagios目錄結(jié)構(gòu)... 5
4.2. nagios的配置文件... 5
5. 安裝cacti 13
6. 整合cacti和nagios. 15
6.1. 安裝ndoutils. 15
6.2. 安裝php-json. 17
6.3. 安裝npc. 17
6.4. 測(cè)試頁(yè)面... 19
7. Nagios每日健康檢查報(bào)警短信... 20
7.1. 編寫檢查腳本... 20
7.2. 添加crond計(jì)劃... 21
7.3. 配置飛信機(jī)器人報(bào)警... 21
7.3.1. Commands.cfg配置文件添加如下內(nèi)容:... 21
7.3.2. Contacts.cfg配置添加:... 21
7.3.3. Templates.cfg. 22
7.3.4. 修改展示頁(yè)面監(jiān)控圖片大小: /usr/local/nagios/etc/pnp/config.php. 22
8. Troubleshooting. 23
8.1. web界面修改某個(gè)服務(wù)時(shí)報(bào)錯(cuò)... 23
8.2. 點(diǎn)擊host,service選項(xiàng)時(shí),結(jié)果無(wú)法顯示... 23
8.3. nagios3.2.0以后,安裝nagios在訪問http://ip/nagios時(shí)出現(xiàn)如下錯(cuò)誤提示:... 24
8.4. 出現(xiàn)pnp小太陽(yáng)圖標(biāo),點(diǎn)擊報(bào)錯(cuò)如下:... 24
8.5. 安裝NAGIOS時(shí)發(fā)現(xiàn)有Status Map、Alert Histogram打不開鏈接,提示找不到statusmap.cgi和histogram.cgi. 25
8.6. 后臺(tái)apache日志報(bào)錯(cuò)如下:... 25
8.7. 進(jìn)行編譯安裝ndoutils-1.4b7時(shí),報(bào)錯(cuò)如下:... 26
8.8. 安裝后,查看/usr/local/nagios/var/nagios.log日志,報(bào)錯(cuò)如下:... 26
8.9. 有時(shí)開機(jī)后,后臺(tái)報(bào)錯(cuò)如下:... 27
8.10. 訪問npc插件頁(yè)面時(shí),主機(jī)圖標(biāo)為紅色叉號(hào):... 27
8.11. 訪問點(diǎn)擊小太陽(yáng)后,報(bào)錯(cuò)如下:... 28
?
1. 文檔更新記錄
| 時(shí)間 | 修改人 | 版本號(hào) | 修改說(shuō)明 |
| 2010.09.07 | Kevin | 1.0.0 | 建立文檔 |
| 2010.09.24 | Kevin | 1.0.1 | 添加報(bào)警設(shè)置 |
| 2011.01.07 | Kevin | 1.0.2 | 添加每日健康檢查報(bào)警機(jī)制 |
| 2011.02.16 | Kevin | 1.0.3 | 更新文檔生成pdf文檔 |
| 2011.02.22 | Kevin | 1.0.4 | 添加新的troubleshooting項(xiàng) |
| 2011.03.10 | Kevin | 1.0.5 | 添加nagios飛信機(jī)器人報(bào)警 |
| 2011.05.31 | Kevin | 1.0.8 | 更新troubleshooting |
?
2. 文檔說(shuō)明本文檔規(guī)范網(wǎng)絡(luò)監(jiān)控系統(tǒng)安裝流程及安裝內(nèi)容,供運(yùn)維人員在部署新的運(yùn)營(yíng)環(huán)境時(shí)參考使用。
3. Nagios的安裝?3.1. 安裝基礎(chǔ)支持套件和添加用戶nagios需要一些基礎(chǔ)支持套件才能運(yùn)行,如apache,gcc,glibc,gd庫(kù)等。
| #yum install httpd #yum install gcc #yum install glibc glibc-common #yum install gd gd-devel #yum install php nagios3.2.0以后的版本必須安裝php,nagios頁(yè)面訪問才正常 #/usr/sbin/useradd -m nagios 添加一個(gè)名為nagios的用戶用以專門跑nagios #passwd nagios 設(shè)置密碼 #/usr/sbin/groupadd nagcmd 添加nagcmd用戶組,用以通過web頁(yè)面提交外部控制命令 #/usr/sbin/usermod -a -G nagcmd nagios 將nagios用戶加入nagcmd組 #/usr/sbin/usermod -a -G nagcmd apache 將apache用戶加入nagcmd組 |
?
3.2. 安裝nagios?
?
?
?
?
| #mkdir ~/downloads#cd ~/downloads# wget http://nchc.dl.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz # wget http://nchc.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz#cd ~/downloads#tar xzf nagios-3.2.1.tar.gz#cd nagios-3.2.1#./configure --with-command-group=nagcmd#make all#make install#make install-init #make install-config#make install-commandmode 這時(shí)nagios基本已經(jīng)安裝完成,默認(rèn)安裝后的配置文件用于啟動(dòng)nagios是沒有問題的。#vi usr/local/nagios/etc/objects/contacts.cfg修改nagiosadmin這行其中的郵件地址為你的email地址,以將報(bào)警郵件發(fā)到你的郵箱#make install-webconf 安裝nagios的web接口#htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin 設(shè)置登陸web界面時(shí)HTTP驗(yàn)證的賬號(hào)密碼#service httpd restart 啟動(dòng)apache |
nagios-plugins是nagios官方提供的一套插件程序,nagios監(jiān)控主機(jī)的功能其實(shí)都是通過執(zhí)行插件程序來(lái)實(shí)現(xiàn)的。
?
| #cd ~/downloads #tar xzf nagios-plugins-1.4.15.tar.gz #cd nagios-plugins-1.4.15 #./configure --with-nagios-user=nagios --with-nagios-group=nagios #make #make install |
nagios-snmp-plugins是一套用Perl編寫的通過SNMP方式監(jiān)控主機(jī)的插件程序。
| #cd ~/downloads #wget http://nagios.manubulon.com/nagios-snmp-plugins.1.1.1.tgz #tar xzf nagios-snmp-plugins.1.1.1.tgz #cd nagios_plugins 配置check_snmp_int.pl這些插件的使用時(shí)需要配置cpan,CPAN是Comprehensive Perl Archive Network的縮寫.。它是一個(gè)巨大的Perl軟件收藏庫(kù),收集了大量有用的Perl模塊(modules)及其相關(guān)的文件。這里主要是使用Perl-Net-SNMP模塊。有兩種方式安裝: #perl -MCPAN -e shell cpan> install Net::SNMP
? 首先去官方網(wǎng)站www.cpan.org下載以下幾個(gè)模塊 Crypt::DES Digest::MD5 Digest::SHA1 Digest::HMAC Net::SNMP 下載后對(duì)于每個(gè)模塊依次按照下面的方式安裝 #tar zxf <module>.tar.gz <module>表示模塊名,具體請(qǐng)按上面提到的模塊替換 #cd <module> <module>表示模塊名,具體請(qǐng)按上面提到的模塊替換 #perl Makefile.pl #make test #make install 注意:Net::SNMP模塊必須在最后安裝。至此Net::SNMP手動(dòng)安裝完畢 ? #./install.sh? |
?
| 至此nagios基本已經(jīng)安裝完畢,但這時(shí)還不能馬上啟動(dòng)nagios,需要以下設(shè)置。 #chkconfig --add nagios 將nagios添加到服務(wù)中 #chkconfig nagios on 設(shè)置服務(wù)為自啟動(dòng) #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg #service nagios start 啟動(dòng)nagios
#getenforce 查看是否運(yùn)行于強(qiáng)制模式,結(jié)果為1表示是 #setenforce 0 更改selinux運(yùn)行于寬容模式 但是這個(gè)設(shè)置重啟后就會(huì)失效,如需要重啟后保持該設(shè)置需要修改/etc/sysconfig/selinux,將其中的SELINUX= enforcing更改為SELINUX= permissive并重啟系統(tǒng)。當(dāng)然你也可以改成disable禁用selinux。 也可以不更改selinux的運(yùn)行模式,解決辦法為: #chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/ #chcon -R -t httpd_sys_content_t /usr/local/nagios/share/ |
?
4. nagios的配置?4.1. nagios目錄結(jié)構(gòu)
nagios目錄結(jié)構(gòu)比較清晰,安裝后下面一共有bin etc libexec sbin share var幾個(gè)目錄,其中配置文件都存放在etc目錄下,bin下存放的是nagios的相關(guān)命令,sbin下存放的是通過web方式外部執(zhí)行的cgi,libexec存放的是所有插件,而var則存放的是log和pid文件等。而實(shí)現(xiàn)監(jiān)控都是依靠執(zhí)行插件來(lái)實(shí)現(xiàn)的。
要實(shí)現(xiàn)監(jiān)控,需要在nagios中定義一個(gè)service,在這個(gè)service中指定監(jiān)控對(duì)象和監(jiān)控命令以及報(bào)警機(jī)制等。Nagios的配置關(guān)系可以按照下圖來(lái)做說(shuō)明:
nagios的配置也比較清晰明了,etc目錄下默認(rèn)有objects目錄和一些配置文件,其中objects里放的是主配置文件nagios.cfg包含進(jìn)去的配置文件。在nagios.cfg中既可以指定單獨(dú)包含一個(gè)cfg,也可以指定一個(gè)包含目錄,即該目錄下所有的cfg文件都會(huì)包含進(jìn)來(lái)。
?
首先我們配置下主配置文件,為了目錄的清晰我們自己建立一些目錄來(lái)存放相關(guān)的配置文件,比如建立commands目錄存放命令,建立services目錄存放服務(wù),建立hosts目錄存放主機(jī),在nagios.cfg文件中找到cfg_file的部分,下面是一個(gè)示例,實(shí)際部署的時(shí)候可以按照你自己的情況去設(shè)置:
?
| cfg_file=/usr/local/nagios/etc/objects/commands.cfg 包含配置文件,下同 cfg_file=/usr/local/nagios/etc/objects/contacts.cfg cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg cfg_file=/usr/local/nagios/etc/objects/templates.cfg cfg_file=/usr/local/nagios/etc/objects/localhost.cfg cfg_file=/usr/local/nagios/etc/objects/switch.cfg cfg_dir=/usr/local/nagios/etc/services 包含配置目錄,目錄下所有cfg文件將被包含;下同 cfg_dir=/usr/local/nagios/etc/hosts cfg_dir=/usr/local/nagios/etc/commands cfg_dir=/usr/local/nagios/etc/switches cfg_dir=/usr/local/nagios/etc/routers |
nagios.cfg其他地方可以暫不調(diào)整,該文件中具體參數(shù)請(qǐng)參考附件中的配置文件中文注釋
這里先說(shuō)明一下,監(jiān)控都是依靠插件去完成的,舉個(gè)例子說(shuō)明,如我們要監(jiān)控192.168.1.200這臺(tái)服務(wù)器的虛擬內(nèi)存,當(dāng)達(dá)到70%的時(shí)候狀態(tài)為警告,達(dá)到90%的時(shí)候?yàn)閲?yán)重。這個(gè)依靠check_snmp_storage.pl這個(gè)插件來(lái)完成。
?
| [root@localhost etc]# /usr/local/nagios/libexec/check_snmp_storage.pl -H 192.168.1.200 -C mypublic -2 -m "^Virtual Memory$" -w 70 -c 90 Virtual Memory: 21%used(531MB/2472MB) (<70%) : OK |
其中-H參數(shù)表示主機(jī)地址,-C參數(shù)表示SNMP團(tuán)體名稱,-2表示使用SNMP v2協(xié)議,-w為warning(警告)狀態(tài)的閾值,-c表示為critical(嚴(yán)重)狀態(tài)的閾值
要用nagios實(shí)現(xiàn)監(jiān)控某主機(jī),就是要實(shí)現(xiàn)用nagios調(diào)用這樣的命令即可。
配置resource.cfg,文件內(nèi)容:
| [root@localhost etc]# cat resource.cfg |grep -v '#'| sed /^$/d 查看resource.cfg配置 $USER1$=/usr/local/nagios/libexec $USER7$=-C mypublic -2 |
這里其實(shí)是定義兩個(gè)變量$USER1$和$USER7$,因?yàn)樵诤竺娑xcommand的時(shí)候插件的路徑是絕對(duì)路徑,為了節(jié)省輸入直接可以用$USER1$代替/usr/local/nagios/libexec。而SNMP插件的命令行中的參數(shù)需要設(shè)置SNMP相關(guān)的信息,為節(jié)省輸入這里用$USER7$來(lái)代替
-C mypublic -2。大家可對(duì)照上面檢測(cè)192.168.1.200的虛擬內(nèi)存的例子結(jié)合來(lái)加以理解。
下面我們來(lái)定義一個(gè)command用以監(jiān)控,仍然以在nagios中實(shí)現(xiàn)監(jiān)控192.168.1.200這臺(tái)主機(jī)的虛擬內(nèi)存為例說(shuō)明。為了目錄結(jié)構(gòu)的清晰,我們將command的定義都放到commands目錄下。在commands下建立一個(gè)cfg后綴的文件,針對(duì)此示例的command定義內(nèi)容為
?
| define command{ command_name check_snmp_storage command_line $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ $USER7$ $ARG1$ -w $ARG2$ -c $ARG3$ } |
其中的$USER1$和$USER7$即為我們?cè)谏厦娴膔esource.cfg中定義的兩個(gè)變量,$HOSTADDRESS$為我們?cè)谙旅嬉x的主機(jī)。
在hosts目錄下建立一個(gè)cfg后綴的文件來(lái)存放主機(jī)配置。
?
| define host{ use windows-server 定義使用的模板 host_name web83 定義主機(jī)名為web83 alias web server on 111.83 主機(jī)別名 address 192.168.1.200 主機(jī)IP地址 hostgroups linuxtoneweb 將該主機(jī)歸到linuxtoneweb這個(gè)組,如果要?dú)w到多個(gè)組里,用逗號(hào)分隔組名 } |
在定義主機(jī)的時(shí)候我們將83歸到了linuxtoneweb這個(gè)組,下面來(lái)定義這個(gè)組名。可以直接在hosts下建立一個(gè)定義組名的cfg文件。
?
| define hostgroup{ hostgroup_name linuxtoneweb alias linuxtone web servers } |
這樣就定義了一個(gè)linuxtoneweb組,將主機(jī)歸為一個(gè)組有兩種方法,一種是我們這種在主機(jī)的定義中去設(shè)置,另外一種是在組的設(shè)置中定義members。如下:
?
| define hostgroup{ hostgroup_name linuxtoneweb alias linuxtone web servers } |
在定義主機(jī)分組里面我們還可以用hostgroup_members定義下級(jí)分組,十分方便。
OK,上面我們完成了命令、主機(jī)的定義,下面我們就要進(jìn)入nagios監(jiān)控某個(gè)對(duì)象的關(guān)鍵設(shè)置,nagios的監(jiān)控都是靠定義一個(gè)service來(lái)實(shí)現(xiàn),這里我們定義一個(gè)service來(lái)實(shí)現(xiàn)監(jiān)控83的虛擬內(nèi)存。在services目錄下建立一個(gè)cfg文件。
?
| define service { hostgroup_name linuxtone,linuxtoneweb,database 定義監(jiān)控對(duì)象 name memory 設(shè)置服務(wù)名 service_description check memory 服務(wù)描述 check_period 24x7 監(jiān)控周期設(shè)置 max_check_attempts 4 最大檢測(cè)嘗試次數(shù) normal_check_interval 3 正常檢測(cè)間隔時(shí)間 retry_check_interval 2 重試檢測(cè)間隔時(shí)間 contact_groups admins 報(bào)警聯(lián)系組 notification_interval 10 通知間隔 notification_period 24x7 通知周期設(shè)置 notification_options w,u,c,r 定義什么狀態(tài)時(shí)報(bào)警 check_command check_snmp_storage!-m "^Virtual Memory$"!70!90 } |
這樣我們完成對(duì)一個(gè)service的定義,定義監(jiān)控對(duì)象我們這里是定義了3個(gè)組,即屬于這3個(gè)組的所有主機(jī)都會(huì)檢測(cè)虛擬內(nèi)存(注意:組必須在其他文件中事先定義好)。當(dāng)然你也可以用host_name針對(duì)主機(jī)作為檢測(cè)對(duì)象(多主機(jī)用逗號(hào)分隔)。監(jiān)控周期和報(bào)警周期我們?cè)O(shè)置的都是24x7,這個(gè)會(huì)在后面去定義。定義報(bào)警狀態(tài)中的w表示warning,u表示unknown,c表示critial,r表示recovery(即恢復(fù)后是否發(fā)送通知);報(bào)警選項(xiàng)一般生產(chǎn)環(huán)境下設(shè)置w,c,r即可。最后我們看到實(shí)現(xiàn)監(jiān)控的主體部分
check_command check_snmp_storage!-m "^Virtual Memory$"!70!90
定義實(shí)現(xiàn)這個(gè)檢測(cè)的命令,check_snmp_storage即為我們上面在commands里定義的命令名,
!表示帶入的參數(shù),這里有三個(gè)!表示帶入三個(gè)參數(shù)到command里,每個(gè)參數(shù)之間用!分隔,這里表示第一個(gè)參數(shù)為-m “^Virtual Memory$”,第二個(gè)參數(shù)為70,第三個(gè)參數(shù)為90。下面我們回頭去看看check_snmp_storage這個(gè)command的定義:
command_line $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ $USER7$ $ARG1$ -w $ARG2$ -c $ARG3$
這里的$ARG1$即表示參數(shù)1,$ARG2即表示參數(shù)2,$ARG3$即表示參數(shù)3
而$HOSTADDRESS$是我們定義的檢測(cè)對(duì)象,它的值就是我們的主機(jī)IP地址;$USER1$和$USER7$為在resource.cfg里的定義。下面我們將參數(shù)值代入這個(gè)command里,最后實(shí)現(xiàn)的效果是:
/usr/local/nagios/libexec/check_snmp_storage.pl –H 192.168.1.200 –C mypublic -2 –m “^Virtual Memory$” –w 70 –c 90
而這個(gè)命令就是我們實(shí)現(xiàn)監(jiān)控83的虛擬內(nèi)存的命令!
設(shè)置3個(gè)參數(shù)是為了靈活的針對(duì)不同主機(jī)的調(diào)用,如果你對(duì)不同的主機(jī)設(shè)置的閾值不同,只需要對(duì)不同的主機(jī)定義不同的service即可,command是可以通用的!而這里的參數(shù)1也是為了實(shí)現(xiàn)不同的功能而設(shè)置的,這個(gè)腳本還可以檢測(cè)物理內(nèi)存,如果我們把參數(shù)1的值設(shè)置為”^Phisical Memory$”就可以針對(duì)物理內(nèi)存進(jìn)行檢測(cè)!定義command的時(shí)候參數(shù)的個(gè)數(shù)的設(shè)定是你可以根據(jù)需要設(shè)置的。只需要在后面service中能將參數(shù)值代到command中最終能實(shí)現(xiàn)你要檢測(cè)的命令即可。到此為止你可以感受到nagios的靈活性了吧。
?
到這里我們基本實(shí)現(xiàn)了nagios的監(jiān)控功能,下面我們繼續(xù)來(lái)看看其他設(shè)置。在定義host的時(shí)候我們有個(gè)主機(jī)模板的設(shè)置,這個(gè)設(shè)置的定義在object/template.cfg中定義的,這是一個(gè)系統(tǒng)自帶的配置文件,關(guān)于我們所使用的Windows-Server的模板定義內(nèi)容為:
?
| # Windows host definition template - This is NOT a real host, just a template! ? define host{ name windows-server ; The name of this host template use generic-host ; Inherit default values from the generic-host template check_period 24x7 ; By default, Windows servers are monitored round the clock check_interval 5 ; Actively check the server every 5 minutes retry_interval 1 ; Schedule host check retries at 1 minute intervals max_check_attempts 10 ; Check each server 10 times (max) check_command check-host-alive ; Default command to check if servers are "alive" notification_period 24x7 ; Send notification out at any time - day or night notification_interval 30 ; Resend notifications every 30 minutes notification_options d,r ; Only send notifications for specific host states contact_groups admins ; Notifications get sent to the admins by default hostgroups windows-servers ; Host groups that Windows servers should be a member of register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE } |
objects目錄下的contact.cfg中定義的是報(bào)警聯(lián)系人。
?
| define contact{ contact_name nagiosadmin ; Short name of user use generic-contact ; Inherit default values from generic-contact template (defined above) alias Nagios Admin ; Full name of user ? email netkey@linuxtone.com ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** address1 alarm@hotmail.com ;這里是個(gè)自定義的變量設(shè)置,定義了一個(gè)SMS地址用以接收SMS報(bào)警信息,聯(lián)系人的自定義變量只能使用address1-address6;通過這個(gè)設(shè)置你可以實(shí)現(xiàn)多種報(bào)警方式,如電話,手機(jī)短信等,通過在這里設(shè)置你的電話,手機(jī)號(hào),然后到報(bào)警命令定義里定義一個(gè)命令即可。 } |
其使用了generic-contact這個(gè)聯(lián)系模板,關(guān)于這個(gè)模板templates.cfg里的定義內(nèi)容為:
?
| define contact{ name generic-contact ; The name of this contact template service_notification_period 24x7 ; service notifications can be sent anytime host_notification_period 24x7 ; host notifications can be sent anytime service_notification_options w,u,c,r,f,s ; send notifications for all service states, flapping events, and scheduled downtime events host_notification_options d,u,r,f,s ; send notifications for all host states, flapping events, and scheduled downtime events service_notification_commands notify-service-by-email,notify-service-by-sms ; send service notifications via email host_notification_commands notify-host-by-email,notify-host-by-sms ; send host notifications via email register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE! } |
上面我在該配置文件中增加了notify-service-by-sms和notify-service-by-sms的兩種報(bào)警命令
而關(guān)于報(bào)警的周期設(shè)置在objects下的timeperiods.cfg中,如我們上面在service里定義的7x24的報(bào)警周期設(shè)置內(nèi)容為:
?
| define timeperiod{ timeperiod_name 24x7 alias 24 Hours A Day, 7 Days A Week sunday 00:00-24:00 monday 00:00-24:00 tuesday 00:00-24:00 wednesday 00:00-24:00 thursday 00:00-24:00 friday 00:00-24:00 saturday 00:00-24:00 } |
通過這里我們可以靈活設(shè)置報(bào)警時(shí)間以和報(bào)警方式結(jié)合,如周末和休息時(shí)間設(shè)置報(bào)警為發(fā)送短信和郵件,工作時(shí)間設(shè)置為發(fā)送郵件和SMS報(bào)警方式。
下面我們來(lái)看關(guān)于報(bào)警命令的設(shè)置,在objects下的command.cfg里定義的為
?
| define command{ command_name notify-host-by-email command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$ } ? # 'notify-service-by-email' command definition define command{ command_name notify-service-by-email command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ } ? # 'notify-host-by-sms' command definition define command{ command_name notify-host-by-sms command_line php /usr/local/nagios/share/sms/smssendmsg.php $CONTACTADDRESS1$ "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" } ? ? # 'notify-service-by-sms' command definition define command{ command_name notify-service-by-sms command_line php /usr/local/nagios/share/sms/smssendmsg.php $CONTACTADDRESS1$ "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" } |
定義了4種報(bào)警命令,后面兩種sms報(bào)警是我添加的;郵件報(bào)警是使用系統(tǒng)自帶的sendmail來(lái)發(fā)送郵件的(注意要啟動(dòng)sendmail服務(wù)),而sms報(bào)警是使用我們上面所配置的sms機(jī)器人發(fā)送的報(bào)警信息。
至此,整個(gè)nagios的監(jiān)控和報(bào)警機(jī)制了解完畢。注意我們?cè)谂渲眠^程中的任何改動(dòng)都記得要去通過/usr/local/nagios/bin/nagios –c /usr/local/nagios/etc/nagios.cfg以檢查配置文件是否正確,如果正確則可以重啟nagios加載新配置(service nagios restart)
?
Cacti的運(yùn)行需要LAMP(Linux+Apache + MySQL + PHP), RRDTool , net-snmp , AMP環(huán)境我們?cè)谏厦嬉呀?jīng)配置。
?
| 安裝rrdtool,rrdtool不能直接通過yum安裝,可以加入Dag RPM Repository以便讓yum能找到rrdtool #wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm #rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm #yum install rrdtool
# yum -y install net-snmp net-snmp-utils net-snmp-libs php-mysql ? 安裝cacti Mysql>source /usr/local/cacti/cacti.sql 導(dǎo)入mysql數(shù)據(jù)庫(kù) Query OK, 0 rows affected (0.03 sec) 添加一個(gè)數(shù)據(jù)庫(kù)賬號(hào)cacti 密碼為cacti用以訪問cacti庫(kù) Apache設(shè)置 Alias /cacti "/var/www/html/cacti" ? <Directory "/var/www/html/cacti "> Options FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory> 修改cacti的配置文件 #vi /usr/local/wwwroot/cacti/include/config.php /* load up old style plugins here */ $plugins = array(); $url_path = "/cacti/";
#wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7d-PA-v2.4.zip |
?
6. 整合cacti和nagios整合cacti和nagios是利用了cacti的一個(gè)插件nagios for cacti,它的原理是將nagios的數(shù)據(jù)通過ndo2db導(dǎo)入到mysql數(shù)據(jù)庫(kù)(cacti的庫(kù)中),然后cacti讀取數(shù)據(jù)庫(kù)信息將nagios的結(jié)果展示出來(lái)。
6.1. 安裝ndoutils?
| 首先需要安裝ndoutils以將nagios的數(shù)據(jù)能導(dǎo)入到mysql數(shù)據(jù)庫(kù)中。 #wget http://nchc.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b7.tar.gz #tar zxvf ndoutils-1.4b7.tar.gz #./configure --prefix=/usr/local/nagios LDFLAGS=-L/usr/lib --with-mysql-inc=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql --enable-mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios #make #make install //此命令可不用執(zhí)行 #./db/installdb -ucacti -pcacti -h localhost -d cacti #cp config/ndomod.cfg /usr/local/nagios/etc 修改nagios主配置文件 command_check_interval=-1 event_broker_options=-1 broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg process_performance_data=1 添加的內(nèi)容至此結(jié)束 #cd src # cp ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/local/nagios/bin #cd .. #cp src/ndo2db-3x /usr/local/nagios/bin/ndo2db # mv /usr/local/nagios/bin/ndomod-3x.o /usr/local/nagios/bin/ndomod.o //新添加 #cp config/ndo2db.cfg /usr/local/nagios/etc 修改配置文件ndocmd.cfg和ndo2db.cfg,這里我的配置文件內(nèi)容為: [root@localhost downloads]# cat /usr/local/nagios/etc/ndomod.cfg |grep -v '^#'|sed /^$/d instance_name=default output_type=tcpsocket output=localhost tcp_port=5668 output_buffer_items=5000 buffer_file=/usr/local/nagios/var/ndomod.tmp file_rotation_interval=14400 file_rotation_timeout=60 reconnect_interval=15 reconnect_warning_interval=15 data_processing_options=-1 config_output_options=2 [root@localhost downloads]# cat /usr/local/nagios/etc/ndo2db.cfg |grep -v '^#'|sed /^$/d ndo2db_user=nagios ndo2db_group=nagios socket_type=tcp socket_name=/usr/local/nagios/var/ndo.sock tcp_port=5668 db_servertype=mysql db_host=localhost db_port=3306 db_name=cacti db_user=cacti db_pass=cacti db_prefix=npc_ max_timedevents_age=1440 max_systemcommands_age=10080 max_servicechecks_age=10080 max_hostchecks_age=10080 max_eventhandlers_age=44640 debug_level=1 debug_verbosity=1 debug_file=/usr/local/nagios/var/ndo2db.debug max_debug_file_size=1000000 #/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg 啟動(dòng)ndo2db |
npc展示部分用到j(luò)son,需要在php中安裝php-json的支持,centos 5下的php 版本默認(rèn)是5.1.6 不帶json支持,無(wú)法簡(jiǎn)單地通過yum install php5-json方式來(lái)安裝。
Yum install php-devel 否則,phpsize命令不好用。
?
| #cd ~/downloads #tar xvjf php-json-ext-1.2.0.tar.bz2 #cd php-json-ext-1.2.0 #phpize 編譯前初始化php環(huán)境 #./configure #make #make install #vi /etc/php.d/json.ini #cp /usr/lib/php/modules/json.so /usr/lib/php/modules/php_json.so 這一步驟很關(guān)鍵,因?yàn)?#xff0c;apache否則日志報(bào)錯(cuò)加載不到php_json.so文件。 #/usr/sbin/httpd -k graceful 重啟apache ? 為了驗(yàn)證是否成功可使用phpinfo查看是否已支持json |
| #cd ~/downloads wget http://dlwt.csdn.net/fd.php?i=659714146741849&s=796b68562511c6534bfc15d7b04711f4/npc-2.0.3.tar.gz 新鏈接可用 在'User Management'中選擇'admin',在下邊'Realm Permissions'中鉤選'Plugin Management'。這時(shí)右側(cè)會(huì)出現(xiàn)'Plugin Management'連接,進(jìn)去后在'uninstalled'中安裝npc,然后在'intalled'中enable npc,然后在回去admin的'Realm Permissions'中會(huì)出現(xiàn)'use npc',如果沒有鉤選就把它選中。 ? 接著在右側(cè)欄目中選擇settings,點(diǎn)選npc的標(biāo)簽 鉤選Remote Commands Nagios Command File Path: /usr/local/nagios/var/rw/nagios.cmd <這個(gè)文件啟動(dòng)nagios后會(huì)產(chǎn)生,根據(jù)實(shí)際的位置寫> Nagios URL:?[url]http://yourserver/nagios/[/url] 保存就可以了。 ? 至此安裝就完成了 啟動(dòng)mysql httpd ndo nagios service mysqld start service httpd start /usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg service nagios start ? 訪問[url]http://yourserver/cacti/[/url] 選擇npc標(biāo)簽就可以看到nagios所檢測(cè)的主機(jī)信息,唯一不足的是我打開這個(gè)頁(yè)面的速度有些慢,需要進(jìn)一步尋找原因來(lái)進(jìn)行優(yōu)化.npc提供的這一套界面很好看(個(gè)人感覺)。 ? ? |
| ? |
點(diǎn)擊npc時(shí),會(huì)出現(xiàn)如下錯(cuò)誤提示:
?
再繼續(xù)點(diǎn)擊即可進(jìn)入訪問頁(yè)面。
6.4. 測(cè)試頁(yè)面在IE瀏覽器的地址欄輸入:http://192.168.1.234/cacti
用戶名:admin 密碼:admin
第一次登錄的時(shí)候,會(huì)提示修改管理員密碼,按照提示修改即可。
?
?
?
?
?
?
至此完成nagios和cacti的整合。
對(duì)于沒有移動(dòng)短信網(wǎng)關(guān)通道來(lái)說(shuō),讓監(jiān)控平臺(tái)每天下午4:00發(fā)一條短信,不管有沒有故障都發(fā),這樣以便管理員能夠知道短信報(bào)警及nagios服務(wù)是否正常。
檢查報(bào)警的方法如下:
7.1. 編寫檢查腳本# cat /root/sh/nagios_check.sh
#!/bin/bash
#auther by Kevin@cmcc.com.cn
#check nagios service
nid=/usr/local/nagios/var/nagios.lock
if [ -f $nid ]
then
/usr/local/nagios/libexec/sms/sendsms.sh 13800000000 "Nagios service is OK, Don't worry it!"
echo -e "nagios service is ok"
else
/etc/init.d/nagios start
/usr/local/nagios/libexec/sms/sendsms.sh 13800000000 " nagios service is restart,It's ok "
fi
7.2. 添加crond計(jì)劃# crontab –e 添加如下內(nèi)容:
?
00 16 * * * /root/sh/nagios_check.sh > /root/sh/nagios_check.log /dev/null 2>&1
7.3. 配置飛信機(jī)器人報(bào)警?7.3.1. Commands.cfg配置文件添加如下內(nèi)容:?
#host-notify-by-sms
define command {
command_name host-notify-by-sms
command_line /usr/local/nagios/libexec/sms/sendsms.sh 13800000000 " ** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is AT: $DATE$ $HOSTSTATE$ ** "
}
?
#service-notify-by-sms
define command {
command_name service-notify-by-sms
command_line /usr/local/nagios/libexec/sms/sendsms.sh 13800000000 " *** $NOTIFICATIONTYPE$ $HOSTNAME$ $DATE$ $TIME$ $SERVICEDESC$ is $SERVICESTATE$ info:$SERVICEOUTPUT$ *** "
}
7.3.2. Contacts.cfg配置添加:?
define contact{
contact_name sms-members
use sms-mail-contact
alias Nagios Admin SMS
email admin@139.com
pager 13800000000
}
?
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members sms-members
}
7.3.3. Templates.cfgdefine contact{
name sms-contact
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r,f,s
host_notification_options d,u,r,f,s
service_notification_commands notify-service-by-sms
host_notification_commands notify-host-by-sms
register 0
}
?
7.3.4. 修改展示頁(yè)面監(jiān)控圖片大小: /usr/local/nagios/etc/pnp/config.php# vim /usr/local/nagios/etc/pnp/config.php
$conf['graph_width'] = "500";
$conf['graph_height'] = "100";
這兩行是定義監(jiān)控頁(yè)面大小比例的。RRDTool graph Image Size
?
8. Troubleshooting?
8.1. web界面修改某個(gè)服務(wù)時(shí)報(bào)錯(cuò)例如對(duì)某個(gè)服務(wù)進(jìn)行臨時(shí)安排其執(zhí)行時(shí)間,或者不讓它發(fā)警告,web頁(yè)面上都有這樣的設(shè)置.但是常常會(huì)有錯(cuò)誤信息如下:
| Could not open command file '/usr/local/nagios/var/rw/nagios.cmd' for update! The permissions on the external command file and/or directory may be incorrect. Read the FAQs on how to setup proper permissions. An error occurred while attempting to commit your command for processing. |
?
關(guān)于這部分在nagios.cfg中有下面的內(nèi)容
| # EXTERNAL COMMAND FILE # This is the file that Nagios checks for external command requests. # It is also where the command CGI will write commands that are submitted # by users, so it must be writeable by the user that the web server # is running as (usually 'nobody'). Permissions should be set at the # directory level instead of on the file, as the file is deleted every # time its contents are processed. 這段話的核心意思是apache的運(yùn)行用戶要有對(duì)文件寫的權(quán)限.權(quán)限應(yīng)該設(shè)置在目錄上,因?yàn)槊看挝募膬?nèi)容被處理后文件就會(huì)被刪掉 ? command_file=/usr/local/nagios/var/rw/nagios.cmd |
本來(lái)將apache2運(yùn)行的用戶apache加到nagios組就應(yīng)該可以了的
但是這個(gè)卻不行,就將rw這個(gè)目錄及其子文件的權(quán)限改了777,這樣就可以了.
8.2. 點(diǎn)擊host,service選項(xiàng)時(shí),結(jié)果無(wú)法顯示安裝nagios后,訪問頁(yè)面可以,點(diǎn)擊host,service選項(xiàng)時(shí),都是無(wú)法顯示。后臺(tái)日志
報(bào)錯(cuò):
[Wed Sep 01 17:31:32 2010] [error] [client 222.128.103.52] Premature end of script headers: status.cgi, referer: http://public.ipaddr/nagios/side.php
[Wed Sep 01 17:31:33 2010] [error] [client 222.128.103.52] (13)Permission denied: exec of '/usr/local/nagios/sbin/status.cgi' failed, referer:?http://public.ipaddr/nagios/side.php
?
解決方法:原因是因?yàn)殚_啟了selinux,getenforce
令SELinux處于容許模式
setenforce 0
如果要永久性更變它,需要更改/etc/selinux/config里的設(shè)置并重啟系統(tǒng)。
不關(guān)閉SELinux或是永久性變更它的方法是讓CGI模塊在SELinux下指定強(qiáng)制目標(biāo)模式:
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
關(guān)閉即可。
8.3. nagios3.2.0以后,安裝nagios在訪問http://ip/nagios時(shí)出現(xiàn)如下錯(cuò)誤提示:?
解決方法如下:nagios3.2.0將頁(yè)面從之前的html換成了php,首次安裝需要先決條件php
yum install php即可
8.4. 出現(xiàn)pnp小太陽(yáng)圖標(biāo),點(diǎn)擊報(bào)錯(cuò)如下:Initalising
Using /usr/local/nagios/share/perfdata/
RRDTool /usr/bin/rrdtool found.
RRDTool /usr/bin/rrdtool is executable
PHP Function proc_open is enabled
PHP Function fpassthru is enabled
PHP Function xml_parser_create is enabled
PHP zlib Support found.
PHP GD Support can’t found.
?
解決方法: yum –y install php-gd
# service httpd restart
再次點(diǎn)擊小太陽(yáng)圖標(biāo)時(shí),出現(xiàn)如下頁(yè)面,則表示正常:
?
?
8.5. 安裝NAGIOS時(shí)發(fā)現(xiàn)有Status Map、Alert Histogram打不開鏈接,提示找不到statusmap.cgi和histogram.cgi.解決辦法:
原因一:因?yàn)間d-devel沒有安裝的問題,造成NAGIOS在編譯時(shí)不生成這statusmap.cgi
原因二:NAGIOS在編譯在前, gd-devel安裝在后,造成不生成這statusmap.cgi
?
8.6. 后臺(tái)apache日志報(bào)錯(cuò)如下:# tail -f /etc/httpd/logs/error_log
[Fri Feb 18 19:07:18 2011] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Feb 18 19:07:18 2011] [notice] Digest: generating secret for digest authentication ...
[Fri Feb 18 19:07:18 2011] [notice] Digest: done
[Fri Feb 18 19:07:18 2011] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[Fri Feb 18 19:07:20 2011] [error] [client 127.0.0.1] Directory index forbidden by Options directive: /var/www/html/
[Fri Feb 18 19:07:42 2011] [error] [client 127.0.0.1] Directory index forbidden by Options directive: /var/www/html/
[Fri Feb 18 19:07:55 2011] [error] [client 127.0.0.1] Directory index forbidden by Options directive: /var/www/html/
?
監(jiān)控http服務(wù)出現(xiàn)響應(yīng)超時(shí)的情況,如下所示:
# /usr/local/nagios/libexec/check_http -I localhost -w 15 -c 20 -t 30
HTTP WARNING: HTTP/1.1 403 Forbidden - 5240 bytes in 0.003 second response time |time=0.002991s;15.000000;20.000000;0.000000 size=5240B;;;0
?
解決方法:
# echo -n none > /var/www/html/index.html
8.7. 進(jìn)行編譯安裝ndoutils-1.4b7時(shí),報(bào)錯(cuò)如下:#./db/installdb -ucacti -pcacti -d cacti
DBD::mysql::db do failed: Table 'cacti.nagios_dbversion' doesn't exist at ./db/installdb line 51.
?
命令使用錯(cuò)誤,解決方法如下:
?
# ./installdb -ucacti -pcacti -h localhost -d cacti //加上 –h localhost參數(shù)
DBD::mysql::db do failed: Table 'cacti.nagios_dbversion' doesn't exist at ./installdb line 51.
** Creating tables for version 1.4b7
Using mysql.sql for installation...
** Updating table nagios_dbversion
Done!
8.8. 安裝后,查看/usr/local/nagios/var/nagios.log日志,報(bào)錯(cuò)如下:#tail –f /usr/local/nagios/var/nagios.log
?
[1298198680] Error: Could not safely copy module '/usr/local/nagios/bin/ndomod.o'. The module will not be loaded: No such file or directory
[1298202280] Auto-save of retention data completed successfully.
?
原因?yàn)?#xff1a;前面安裝ndoutils-1.4b7,少了一個(gè)操作步驟。解決辦法如下:
# mv /usr/local/nagios/bin/ndomod-3x.o /usr/local/nagios/bin/ndomod.o //新添加
?
正確的日志如下:
?
# tail -f /usr/local/nagios/var/nagios.log
[1298346735] Event broker module '/usr/local/nagios/bin/ndomod.o' deinitialized successfully.
[1298346735] Nagios 3.2.1 starting... (PID=13489)
[1298346735] Local time is Tue Feb 22 11:52:15 CST 2011
[1298346735] LOG VERSION: 2.0
[1298346735] ndomod: NDOMOD 1.4b9 (10-27-2009) Copyright (c) 2009 Nagios Core Development Team and Community Contributors
[1298346735] ndomod: Successfully connected to data sink. 0 queued items to flush.
[1298346735] Event broker module '/usr/local/nagios/bin/ndomod.o' initialized successfully.
[1298350335] Auto-save of retention data completed successfully.
[1298353935] Auto-save of retention data completed successfully.
[1298357535] Auto-save of retention data completed successfully.
?
8.9. 有時(shí)開機(jī)后,后臺(tái)報(bào)錯(cuò)如下:# tail -f /usr/local/nagios/var/nagios.log
?
[1298439477] ndomod: Still unable to connect to data sink. 23512 items lost, 5000 queued items to flush.
[1298439493] ndomod: Still unable to connect to data sink. 23590 items lost, 5000 queued items to flush.
?
以上報(bào)錯(cuò)一般是由于ndo2db沒有啟動(dòng),手動(dòng)啟動(dòng)即可:
#/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg 啟動(dòng)ndo2db
?
8.10. 訪問npc插件頁(yè)面時(shí),主機(jī)圖標(biāo)為紅色叉號(hào):解決辦法如下:
?
# cp -r /usr/local/nagios/share/images/logos/logo.gif /var/www/html/cacti/plugins/npc/logo.gif
重新刷新頁(yè)面即可解決問題。正常頁(yè)面為:
?
?
?
?
?
8.11. 訪問點(diǎn)擊小太陽(yáng)后,報(bào)錯(cuò)如下:?
Hostnane is not set:是pnp的提示,pnp需要以以下方式訪問index.php?host=$HOSTNAME$&srv=$SERVICEDESC$ 或者index.php?host=$HOSTNAME;
而通過腳本推送時(shí),變量發(fā)生了變化,生成的文件如下:
#define_host
define host {
name host-pnp
register 0
process_perf_data 1
action_url /nagios/pnp/index.php?host=nagios.com.cn$ 這樣不正確的
action_url /nagios/pnp/index.php?host=$HOSTNAME$ //這是正確格式
}
#define_service
define service {
name srv-pnp
register 0
process_perf_data 1
action_url /nagios/pnp/index.php?host=nagios.com.cn$&srv=$ 這樣是不正確的
action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$ //正確格式
}
?
?
? ? 本文轉(zhuǎn)自vcdog 51CTO博客,原文鏈接:http://blog.51cto.com/255361/836926,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的Nagios安装部署与Cacti整合文档超精细版本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FileReader类型之文字读取
- 下一篇: maven 报错解决