1. 程式人生 > >Nagios安裝部署與Cacti整合文件超精細版本

Nagios安裝部署與Cacti整合文件超精細版本

Nagios安裝部署與Cacti整合文件

系統環境:CentOS5.4

文件版本:V2.0.1

整理:Kevin

更新時間:2011-05-31

備註:運維專用

Nagios是一款開源的免費網路監視工具,其功能強大,靈活性強。能有效監控WindowsLinuxUnix的主機狀態,交換機路由器等網路設定,印表機等。Nagios通常由一個主程式(Nagios)、一個外掛程式(Nagios-plugins)和四個可選的ADDON(NRPENSCA NSClient++NDOUtils)組成。Nagios的監控工作都是通過外掛實現的,因此,Nagios

Nagios-plugins是伺服器端工作所必須的元件。而四個ADDON

1NRPE:用來在監控的遠端Linux/Unix主機上執行指令碼外掛以實現對這些主機資源的監控

2NSCA:用來讓被監控的遠端Linux/Unix主機主動將監控資訊傳送給Nagios伺服器(這在冗餘監控模式中特別要用到)

3NSClient++:用來監控 Windows主機時安裝在Windows主機上的元件

4NDOUtils:則用來將Nagios的配置資訊和各event產生的資料存入資料庫,以實現這些資料的快速檢索和處理這四個ADDON(附件)中,NRPENSClient++工作於客戶端,NDOUtils

工作於伺服器端,而NSCA則需要同時安裝在伺服器端和客戶端



1.      文件更新記錄

時間

修改人

版本號

修改說明

2010.09.07

Kevin

1.0.0

建立文件

2010.09.24

Kevin

1.0.1

新增報警設定

2011.01.07

Kevin

1.0.2

新增每日健康檢查報警機制

2011.02.16

Kevin

1.0.3

更新文件生成pdf文件

  2011.02.22    

Kevin

1.0.4

新增新的troubleshooting

Kevin

1.0.5

新增nagios

飛信機器人報警

 2011.05.31   

Kevin

1.0.8

更新troubleshooting

2.      文件說明

本文件規範網路監控系統安裝流程及安裝內容,供運維人員在部署新的運營環境時參考使用。

3.      Nagios的安裝 3.1.      安裝基礎支援套件和新增使用者

nagios需要一些基礎支援套件才能執行,如apache,gcc,glibc,gd庫等。

#yum install httpd

#yum install gcc

#yum install glibc glibc-common

#yum install gd gd-devel

#yum install php        nagios3.2.0以後的版本必須安裝php,nagios頁面訪問才正常

#/usr/sbin/useradd -m nagios   新增一個名為nagios的使用者用以專門跑nagios          

#passwd nagios                 設定密碼

#/usr/sbin/groupadd nagcmd  新增nagcmd使用者組,用以通過web頁面提交外部控制命令

#/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
這時nagios基本已經安裝完成,預設安裝後的配置檔案用於啟動nagios是沒有問題的。#vi usr/local/nagios/etc/objects/contacts.cfg修改nagiosadmin這行其中的郵件地址為你的email地址,以將報警郵件發到你的郵箱#make install-webconf   安裝nagiosweb介面#htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
設定登陸web介面時HTTP
驗證的賬號密碼#service httpd restart  啟動apache
3.3.      安裝nagios-plugins

nagios-pluginsnagios官方提供的一套外掛程式,nagios監控主機的功能其實都是通過執行外掛程式來實現的。

#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方式監控主機的外掛程式。

#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這些外掛的使用時需要配置cpanCPANComprehensive Perl Archive Network的縮寫.。它是一個巨大的Perl軟體收藏庫,收集了大量有用的Perl模組(modules)及其相關的檔案。這裡主要是使用Perl-Net-SNMP模組。有兩種方式安裝:

A)通過CPAN來安裝

#perl -MCPAN -e shell

cpan> install Net::SNMP


B) 手工安裝

Crypt::DES

Digest::MD5

Digest::SHA1

Digest::HMAC

Net::SNMP

下載後對於每個模組依次按照下面的方式安裝

#tar zxf <module>.tar.gz   <module>表示模組名,具體請按上面提到的模組替換

#cd <module>            <module>表示模組名,具體請按上面提到的模組替換

#perl Makefile.pl

#make test

#make install

注意:Net::SNMP模組必須在最後安裝。至此Net::SNMP手動安裝完畢

#./install.sh  
執行
nagios-snmp-plugins安裝指令碼,執行之後會將外掛命令安裝到/usr/local/nagios/libexec

3.5.      其他設定

至此nagios基本已經安裝完畢,但這時還不能馬上啟動nagios,需要以下設定。

#chkconfig --add nagios  nagios新增到服務中

#chkconfig nagios on    設定服務為自啟動

#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
檢測nagios的配置是否正確,在後面配置nagios過程中我們為了檢測配置的是否正確需要不斷執行該命令來檢查配置檔案。

#service nagios start   啟動nagios


需要注意的是,Centos預設打開了selinux並且運行於強制安全模式,這將導致在開啟nagiosweb介面時會出現Internet Server Error的錯誤。

#getenforce   檢視是否運行於強制模式,結果為1表示是

#setenforce 0  更改selinux運行於寬容模式

但是這個設定重啟後就會失效,如需要重啟後保持該設定需要修改/etc/sysconfig/selinux,將其中的SELINUX= enforcing更改為SELINUX= permissive並重啟系統。當然你也可以改成disable禁用selinux

也可以不更改selinux的執行模式,解決辦法為:

#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目錄結構


nagios目錄結構比較清晰,安裝後下面一共有bin  etc  libexec  sbin  share  var幾個目錄,其中配置檔案都存放在etc目錄下,bin下存放的是nagios的相關命令,sbin下存放的是通過web方式外部執行的cgilibexec存放的是所有外掛,而var則存放的是logpid檔案等。而實現監控都是依靠執行外掛來實現的。

要實現監控,需要在nagios中定義一個service,在這個service中指定監控物件和監控命令以及報警機制等。Nagios的配置關係可以按照下圖來做說明:

nagios的配置也比較清晰明瞭,etc目錄下預設有objects目錄和一些配置檔案,其中objects裡放的是主配置檔案nagios.cfg包含進去的配置檔案。在nagios.cfg中既可以指定單獨包含一個cfg,也可以指定一個包含目錄,即該目錄下所有的cfg檔案都會包含進來。

4.2.      nagios的配置檔案

首先我們配置下主配置檔案,為了目錄的清晰我們自己建立一些目錄來存放相關的配置檔案,比如建立commands目錄存放命令,建立services目錄存放服務,建立hosts目錄存放主機,在nagios.cfg檔案中找到cfg_file的部分,下面是一個示例,實際部署的時候可以按照你自己的情況去設定:

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其他地方可以暫不調整,該檔案中具體引數請參考附件中的配置檔案中文註釋

這裡先說明一下,監控都是依靠外掛去完成的,舉個例子說明,如我們要監控192.168.1.200這臺伺服器的虛擬記憶體,當達到70%的時候狀態為警告,達到90%的時候為嚴重。這個依靠check_snmp_storage.pl這個外掛來完成。

[[email protected] 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引數表示主機地址,-C引數表示SNMP團體名稱,-2表示使用SNMP v2協議,-wwarning(警告)狀態的閾值,-c表示為critical(嚴重)狀態的閾值
要用nagios實現監控某主機,就是要實現用nagios呼叫這樣的命令即可。

配置resource.cfg,檔案內容:

[[email protected] etc]# cat resource.cfg |grep -v '#'| sed /^$/d  檢視resource.cfg配置

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

$USER7$=-C mypublic -2


這裡其實是定義兩個變數$USER1$$USER7$,因為在後面定義command的時候外掛的路徑是絕對路徑,為了節省輸入直接可以用$USER1$代替/usr/local/nagios/libexec。而SNMP外掛的命令列中的引數需要設定SNMP相關的資訊,為節省輸入這裡用$USER7$來代替
-C mypublic -2。大家可對照上面檢測192.168.1.200的虛擬記憶體的例子結合來加以理解。

下面我們來定義一個command用以監控,仍然以在nagios中實現監控192.168.1.200這臺主機的虛擬記憶體為例說明。為了目錄結構的清晰,我們將command的定義都放到commands目錄下。在commands下建立一個cfg字尾的檔案,針對此示例的command定義內容為

define command{

        command_name    check_snmp_storage

        command_line    $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ $USER7$ $ARG1$ -w $ARG2$ -c $ARG3$

}

其中的$USER1$$USER7$即為我們在上面的resource.cfg中定義的兩個變數,$HOSTADDRESS$為我們在下面要定義的主機。

hosts目錄下建立一個cfg字尾的檔案來存放主機配置。

define host{

        use             windows-server      定義使用的模板

        host_name       web83              定義主機名為web83

        alias           web server on 111.83   主機別名

        address         192.168.1.200      主機IP地址

        hostgroups      linuxtoneweb           將該主機歸到linuxtoneweb這個組,如果要歸到多個組裡,用逗號分隔組名

}


在定義主機的時候我們將83歸到了linuxtoneweb這個組,下面來定義這個組名。可以直接在hosts下建立一個定義組名的cfg檔案。

define hostgroup{

        hostgroup_name  linuxtoneweb

        alias           linuxtone web servers

}


這樣就定義了一個linuxtoneweb組,將主機歸為一個組有兩種方法,一種是我們這種在主機的定義中去設定,另外一種是在組的設定中定義members。如下:

define hostgroup{

        hostgroup_name  linuxtoneweb

        alias           linuxtone web servers
        members       web83   
設定該組的成員,需要是在host中定義的主機名,多個成員請用逗號分隔

}

在定義主機分組裡面我們還可以用hostgroup_members定義下級分組,十分方便。

OK,上面我們完成了命令、主機的定義,下面我們就要進入nagios監控某個物件的關鍵設定,nagios的監控都是靠定義一個service來實現,這裡我們定義一個service來實現監控83的虛擬記憶體。在services目錄下建立一個cfg檔案。

define service {

        hostgroup_name          linuxtone,linuxtoneweb,database  定義監控物件

        name                    memory              設定服務名

        service_description     check memory             服務描述

        check_period            24x7                  監控週期設定

        max_check_attempts      4                     最大檢測嘗試次數

        normal_check_interval   3                       正常檢測間隔時間

        retry_check_interval    2                        重試檢測間隔時間

        contact_groups          admins                  報警聯絡組

        notification_interval   10                         通知間隔

        notification_period     24x7                      通知週期設定

        notification_options    w,u,c,r                    定義什麼狀態時報警

        check_command           check_snmp_storage!-m "^Virtual Memory$"!70!90

}


這樣我們完成對一個service的定義,定義監控物件我們這裡是定義了3個組,即屬於這3個組的所有主機都會檢測虛擬記憶體(注意:組必須在其他檔案中事先定義好)。當然你也可以用host_name針對主機作為檢測物件(多主機用逗號分隔)。監控週期和報警週期我們設定的都是24x7,這個會在後面去定義。定義報警狀態中的w表示warningu表示unknownc表示critialr表示recovery(即恢復後是否傳送通知);報警選項一般生產環境下設定w,c,r即可。最後我們看到實現監控的主體部分
check_command           check_snmp_storage!-m "^Virtual Memory$"!70!90

定義實現這個檢測的命令,check_snmp_storage即為我們上面在commands裡定義的命令名,

!表示帶入的引數,這裡有三個!表示帶入三個引數到command裡,每個引數之間用!分隔,這裡表示第一個引數為-m “^Virtual Memory$”,第二個引數為70,第三個引數為90。下面我們回頭去看看check_snmp_storage這個command的定義:
command_line    $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ $USER7$ $ARG1$ -w $ARG2$ -c $ARG3$

這裡的$ARG1$即表示引數1$ARG2即表示引數2$ARG3$即表示引數3
$HOSTADDRESS$是我們定義的檢測物件,它的值就是我們的主機IP地址;$USER1$$USER7$為在resource.cfg裡的定義。下面我們將引數值代入這個command裡,最後實現的效果是:
/usr/local/nagios/libexec/check_snmp_storage.pl –H 192.168.1.200 –C mypublic -2 –m “^Virtual Memory$” –w 70 –c 90

而這個命令就是我們實現監控83的虛擬記憶體的命令!
設定3個引數是為了靈活的針對不同主機的呼叫,如果你對不同的主機設定的閾值不同,只需要對不同的主機定義不同的service即可,command是可以通用的!而這裡的引數1也是為了實現不同的功能而設定的,這個指令碼還可以檢測實體記憶體,如果我們把引數1的值設定為”^Phisical Memory$”就可以針對實體記憶體進行檢測!定義command的時候引數的個數的設定是你可以根據需要設定的。只需要在後面service中能將引數值代到command中最終能實現你要檢測的命令即可。到此為止你可以感受到nagios的靈活性了吧。

到這裡我們基本實現了nagios的監控功能,下面我們繼續來看看其他設定。在定義host的時候我們有個主機模板的設定,這個設定的定義在object/template.cfg中定義的,這是一個系統自帶的配置檔案,關於我們所使用的Windows-Server的模板定義內容為:

# 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中定義的是報警聯絡人。

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                           [email protected] ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

        address1                        [email protected] ;這裡是個自定義的變數設定,定義了一個SMS地址用以接收SMS報警資訊,聯絡人的自定義變數只能使用address1-address6;通過這個設定你可以實現多種報警方式,如電話,手機簡訊等,通過在這裡設定你的電話,手機號,然後到報警命令定義裡定義一個命令即可。

        }


其使用了generic-contact這個聯絡模板,關於這個模板templates.cfg裡的定義內容為:

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-smsnotify-service-by-sms的兩種報警命令

而關於報警的週期設定在objects下的timeperiods.cfg中,如我們上面在service裡定義的7x24的報警週期設定內容為:

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

        }

通過這裡我們可以靈活設定報警時間以和報警方式結合,如週末和休息時間設定報警為傳送簡訊和郵件,工作時間設定為傳送郵件和SMS報警方式。

下面我們來看關於報警命令的設定,在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種報警命令,後面兩種sms報警是我新增的;郵件報警是使用系統自帶的sendmail來發送郵件的(注意要啟動sendmail服務),而sms報警是使用我們上面所配置的sms機器人傳送的報警資訊。

至此,整個nagios的監控和報警機制瞭解完畢。注意我們在配置過程中的任何改動都記得要去通過/usr/local/nagios/bin/nagios –c /usr/local/nagios/etc/nagios.cfg以檢查配置檔案是否正確,如果正確則可以重啟nagios載入新配置(service nagios restart)

5.      安裝cacti

Cacti的執行需要LAMPLinux+Apache + MySQL + PHP, RRDTool , net-snmp , AMP環境我們在上面已經配置。

安裝rrdtoolrrdtool不能直接通過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

下面開始匯入資料庫,mysql資料庫的基本安全配置這裡不做說明,請參考以前的postfix郵件安裝文件中的mysql設定部分。

#mysql –u root –p
mysql>create database cacti;            
建立一個數據庫供cacti使用
mysql>use cacti;                      

Mysql>source /usr/local/cacti/cacti.sql     匯入mysql資料庫
mysql> grant all privileges on cacti.* to [email protected] identified by "cacti";

Query OK, 0 rows affected (0.03 sec)

新增一個數據庫賬號cacti 密碼為cacti用以訪問cacti
Mysql>flush privileges;    重新整理許可權資訊


Apache設定
#vi /etc/http/conf.d/cacti.conf    編輯cacti站點的配置檔案,檔案內容如下:

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/";
修改其中的資料庫連線資訊,設定好資料庫主機地址,使用者,密碼資訊。
#chmod 777 -R rra  log


至此安裝完成,訪問http://ip/cacti/install根據提示安裝cacti ip換成你對應的主機ip地址)

接下來安裝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      
匯入sqlcacti庫中
#cd files-0.8.7d/
#cp –rf * /usr/local/wwwroot/cacti    
複製相關檔案到cacti

6.      整合cactinagios

整合cactinagios是利用了cacti的一個外掛nagios for cacti,它的原理是將nagios的資料通過ndo2db匯入到mysql資料庫(cacti的庫中),然後cacti讀取資料庫資訊將nagios的結果展示出來。

6.1.      安裝ndoutils

首先需要安裝ndoutils以將nagios的資料能匯入到mysql資料庫中。
#yum -y install mysql-devel    安裝mysql開發包以編譯ndoutils

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

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

#