日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Nagios安装部署与Cacti整合文档超精细版本

發(fā)布時(shí)間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nagios安装部署与Cacti整合文档超精细版本 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Nagios安裝部署與Cacti整合文檔超精細(xì)版本?(2011-06-01 01:28) 分類:?nagios監(jiān)控

?

?

?

?

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
3.3. 安裝nagios-plugins

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
安裝插件,安裝后所有插件命令將被安裝到/usr/local/nagios/libexec 目錄下

3.4. 安裝nagios-snmp-plugins

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模塊。有兩種方式安裝:

A)通過CPAN來(lái)安裝

#perl -MCPAN -e shell

cpan> install Net::SNMP


B) 手工安裝

?

首先去官方網(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?
執(zhí)行nagios-snmp-plugins安裝腳本,執(zhí)行之后會(huì)將插件命令安裝到/usr/local/nagios/libexec下

3.5. 其他設(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
檢測(cè)nagios的配置是否正確,在后面配置nagios過程中我們?yōu)榱藱z測(cè)配置的是否正確需要不斷執(zhí)行該命令來(lái)檢查配置文件。

#service nagios start 啟動(dòng)nagios


需要注意的是,Centos默認(rèn)打開了selinux并且運(yùn)行于強(qiáng)制安全模式,這將導(dǎo)致在打開nagios的web界面時(shí)會(huì)出現(xiàn)Internet Server Error的錯(cuò)誤。

#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)。

?

4.2. nagios的配置文件

首先我們配置下主配置文件,為了目錄的清晰我們自己建立一些目錄來(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
members web83 設(shè)置該組的成員,需要是在host中定義的主機(jī)名,多個(gè)成員請(qǐng)用逗號(hào)分隔

}

在定義主機(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)

?

5. 安裝cacti

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


安裝net-snmp

# yum -y install net-snmp net-snmp-utils net-snmp-libs php-mysql

?

安裝cacti
#cd ~/downloads
#wget http://www.cacti.net/downloads/cacti-0.8.7d.tar.gz
#tar zxvf cacti-0.8.7d.tar.gz
#mkdir –p /usr/local/wwwroot
#cp –rf cacti-0.8.7.d /usr/local/wwwroot/cacti

下面開始導(dǎo)入數(shù)據(jù)庫(kù),mysql數(shù)據(jù)庫(kù)的基本安全配置這里不做說(shuō)明,請(qǐng)參考以前的postfix郵件安裝文檔中的mysql設(shè)置部分。

#mysql –u root –p
mysql>create database cacti; 創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)供cacti使用
mysql>use cacti;

Mysql>source /usr/local/cacti/cacti.sql 導(dǎo)入mysql數(shù)據(jù)庫(kù)
mysql> grant all privileges on cacti.* to cacti@localhost identified by "cacti";

Query OK, 0 rows affected (0.03 sec)

添加一個(gè)數(shù)據(jù)庫(kù)賬號(hào)cacti 密碼為cacti用以訪問cacti庫(kù)
Mysql>flush privileges; 刷新權(quán)限信息

?

Apache設(shè)置
#vi /etc/http/conf.d/cacti.conf 編輯cacti站點(diǎn)的配置文件,文件內(nèi)容如下:

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/";
修改其中的數(shù)據(jù)庫(kù)連接信息,設(shè)置好數(shù)據(jù)庫(kù)主機(jī)地址,用戶,密碼信息。
#chmod 777 -R rra log


至此安裝完成,訪問http://ip/cacti/install根據(jù)提示安裝cacti (ip換成你對(duì)應(yīng)的主機(jī)ip地址)

接下來(lái)安裝cacti的插件管理
#cd ~/download/

#wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7d-PA-v2.4.zip
#unzip cacti-plugin-0.8.7d-PA-v2.4.zip
#mysql –u root –p cacti<pa.sql 導(dǎo)入sql到cacti庫(kù)中
#cd files-0.8.7d/
#cp –rf * /usr/local/wwwroot/cacti 復(fù)制相關(guān)文件到cacti下

?

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ù)中。
#yum -y install mysql-devel 安裝mysql開發(fā)包以編譯ndoutils

#wget http://nchc.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b7.tar.gz

#tar zxvf ndoutils-1.4b7.tar.gz
#cd ndoutils

#./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主配置文件
#vi /usr/local/nagios/etc/nagios.cfg
添加以下內(nèi)容
check_external_commands=1

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

6.2. 安裝php-json

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
#wget http://www.aurore.net/projects/php-json/php-json-ext-1.2.0.tar.bz2

#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
extension=php_json.so

#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

6.3. 安裝npc

#cd ~/downloads
#wget?http://www.assembla.com/spaces/npc/documents/aUjAwmdW8r3BuPab7jnrAJ/download?filename=npc-2.0.0b.166.tar.gz

wget http://dlwt.csdn.net/fd.php?i=659714146741849&s=796b68562511c6534bfc15d7b04711f4/npc-2.0.3.tar.gz 新鏈接可用
#mv npc /usr/local/wwwroot/cacti/plugins/
啟用cacti的插件功能,以admin用戶登陸cacti,在console中的user management里對(duì)admin的用戶權(quán)限進(jìn)行編輯,勾選上Plugin Management,然后到插件管理中心安裝并啟用NPC即可。

在'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的整合。

7. Nagios每日健康檢查報(bào)警短信

對(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.cfg

define 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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 鲁一鲁一鲁一鲁一av | 香港三级日本三级韩国三级 | 色欲一区二区三区精品a片 在线观看黄网站 | 受虐m奴xxx在线观看 | 国产在线观看精品 | 国产精品成人久久电影 | 黄污视频在线播放 | 巨乳中文字幕 | 最新日韩视频 | 蝌蚪久久| 国产又黄又粗又猛又爽的视频 | 国产亚洲成人精品 | 98色 | 中文字幕无人区二 | 国产精品久久9 | 国产91片| 亚洲一区精品视频 | 日韩福利电影在线观看 | 非洲一级黄色片 | 午夜宅男影院 | 成a人片亚洲日本久久 | aa视频在线观看 | 久久精品牌麻豆国产大山 | 丰满熟妇人妻中文字幕 | 色播基地| 在线观看高h | 亚洲精品第一 | 91在线精品播放 | 久草免费资源 | 国产一区二区精品丝袜 | asian性开放少妇pics | 中文视频在线观看 | 亚洲激情久久 | 亚洲午夜福利一区二区三区 | 有码视频在线观看 | 爽天天天天天天天 | 91在线视频免费播放 | 国产黄色一级网站 | 日韩欧美大片 | 国产精品-色哟哟 | 在线观看色网站 | 狂野欧美| 久久久久久久久久影视 | 国内精品人妻无码久久久影院蜜桃 | 97se亚洲综合 | 91香草视频| 激情久久av一区av二区av三区 | 日韩经典午夜福利发布 | sm乳奴虐乳调教bdsm | 丁香婷婷综合激情五月色 | 欧美性tv | 亚洲黄网站在线观看 | 中文字幕第一页在线视频 | 五月激情婷婷丁香 | 日韩欧美一级二级 | 免费看日韩 | 红色假期黑色婚礼2 | 69av片| 色狠av | avwww.| 蜜桃av成人永久免费 | 在线免费三级 | 强辱丰满人妻hd中文字幕 | 中文字幕一区二区人妻电影 | 麻豆久久精品 | 在线成人一区 | 骚视频在线观看 | 天堂在线中文资源 | 色婷婷综合久久久久中文一区二区 | 97xxx | 无毛av| 视频在线a | 免费看黄网址 | 草逼视频网站 | 国产精品久久影视 | 人妻精品久久久久中文字幕 | 麻豆乱淫一区二区三区 | 伊人影视久久 | 午夜天堂在线 | 99青青草 | 中国国产bdsm紧缚捆绑 | 大尺度av在线 | 午夜日韩视频 | 99精彩视频| 中文字幕精品无码一区二区 | 综合av网| 欧美男女激情 | 免费成人美女女 | 亚洲一区 在线播放 | 日本人六九视频 | 亚洲成人网av | 超碰2022 | 欧美xxxx中国 | 一边摸一边做爽的视频17国产 | 久久久久久无码午夜精品直播 | 久久久久久av无码免费看大片 | 精品亚洲永久免费 | 高清av免费观看 | 欧美一级做性受免费大片免费 |