nagios+plugin+pnp4nagios+rrdtool實現圖形化監控

本文部分內容來自:http://www.ilanni.com/http://blog.sina.com.cn/s/blog_4bf738fd0101mut6.html 歡迎轉載。

一、安裝前的準備

1.1安裝包的下載

服務端Nagiosnagios-4.1.1.tar.gz

 https://www.nagios.org/downloads/nagios-core/thanks/

客戶端NRPE: nrpe-2.15.tar.gz

        https://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/

腳本插件:nagios-plugins-2.1.1.tar.gz

        https://www.nagios.org/downloads/nagios-plugins/

Apache服務:Apache/2.2.15

使用本地yum源安裝

繪圖工具rrdtoolrrdtool-1.5.0-rc2.tar.gz

http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.5.0-rc2.tar.gz

圖形化工具pnp4nagiospnp4nagios-0.6.25.tar.gz

   http://jaist.dl.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.25.tar.gz

下載完畢後,我們把Nagios的相關軟件包通過sftp上傳到Linux服務器上。


1.2需編譯環境

    yum install –y php gcc glibc glibc-commongd gd-devel  perl-CPAN opensslopenssl-devel

       spacer.gif 

 注意:如果安裝不成功提示:Public key for php-cli-5.3.3-22.el6.x86_64.rpm isnot installed

    則紅帽執行:rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

centos執行:rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

 

1.3關閉防火牆和selinux

spacer.gif spacer.gif

spacer.gif

二、Nagios安裝(僅服務端安裝)

2.1安裝步驟 

     添加用戶和組:nagios

        useradd  nagios

   spacer.gif

    

  

   現在進入安裝的上傳路徑下/app,對需要安裝的包進行解壓。

      tar zxvfnagios-plugins-2.1.1.tar.gz

     tar zxvf nagios-4.1.1.tar.gz

tar zxvf nrpe-2.15.tar.gz

  

spacer.gif

 

進入nagios-4.1.1進行編譯安裝

      ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios  --with-nagios-group=nagios   

 

/usr/local/nagios表示nagios的安裝路徑

 

編譯完畢如下:

spacer.gif

 

   可以看到需要新建用戶nagios,系統中如果沒有的話。我們現在可以新建用戶。

 

繼續執行makeall,如下圖:

   spacer.gif

 

     執行結果如下:

   spacer.gif

 

我們只需要按照上邊的命令執行即可,如下圖:

 make install安裝nagios的相關程序文件。

spacer.gif

makeinstall-init安裝nagios啓動的初始化腳本。

spacer.gif

 

makeinstall-commandmode 安裝nagios的命令文件。

spacer.gif

makeinstall-config安裝nagios的配置文件。

spacer.gif

makeinstall-webconf安裝nagiosweb配置文件。

spacer.gif

apache創建一個登陸用戶,注意用戶名是 nagiosadmin,該用戶名是在cgi.cfg設置的默認戶名。注意:第一次添加用戶用-c 選項,以後再添加千萬別在用這個選項了,會覆蓋以前的所有

htpasswd -c /usr/local/nagios/etc/htpasswd nagiosadmin

spacer.gif

 

 

注意:如果apache是使用源碼安裝的話,我們在執行make install-webconf會報錯。我們只需要把sample-config/httpd.conf複製到/usr/local/apache2/conf/下,並重命名爲nagios.conf即可。在這apache是安裝到/usr/local/apache2下。如下:

cpsample-config/httpd.conf /usr/local/apache2/conf/nagios.conf

ll/usr/local/apache2/conf/

spacer.gif

以上操作之後,我們還需要在/usr/local/apache/conf/httpd.conf文件中添加 Include conf/nagios.conf

注意:include第一個字母大寫意。

 

 

爲了讓Nagios可以開機自動啓動,我們把 Nagios添加到啓動管理程序中。

spacer.gif

以上是nagios的安裝步驟

  

三、Nagios-plugin安裝(服務端和客戶端都需要安裝)

  下面進行nagios插件的安裝。進入nagios的插件目錄,如下圖:

  spacer.gif

   編譯插件

 ./configure --prefix=/usr/lo      cal/nagios --with-nagios-user=nagios--with-nagios-group=nagios

spacer.gif

編譯結果如下:

spacer.gif

編譯完畢,沒有報錯就可以進行安裝。

make&&makeinstall

spacer.gif

 

安裝結果如下:

spacer.gif

 

查看下安裝情況:

 spacer.gif

插件截圖:

spacer.gif

以上是nagios-plugin插件的安裝。

 

 

 

四、Nrpe安裝(服務端和客戶端都需要安裝)

4.1 xinetd服務的確認

NREP是基於xinetd的服務,所以需要確認xinetd 服務是否有安裝

service xinetd status

spacer.gif

     安裝成功後啓動服務並驗證。

     service xinetd start

      spacer.gif

4.2 nrpe安裝     

 進入nrpe-2.15解壓包的目錄/app/nrpe-2.15進行配置

      ./configure --enable-command-args

  spacer.gif

      配置結果如下:

       spacer.gif

 

   進行編譯:

    make all

spacer.gif

 

  安裝NRPE插件check_nrpe,如下:

make install-plugin

spacer.gif

安裝NRPE命令,如下:

make install-daemon

spacer.gif

安裝NRPE配置文件,如下:

make install-daemon-config

spacer.gif

安裝nprexinetd服務關聯

make install-xinetd

spacer.gif

 

以上是安裝步驟。

 

4.3 配置nrpe

 

 [root@abiu243 xinetd.d]# pwd

/etc/xinetd.d

[[email protected]]# vi /etc/xinetd.d/nrpe

 

# default: on

# description:NRPE (Nagios Remote Plugin Executor)

service nrpe

{

        flags           = REUSE

        socket_type     = stream

        port            = 5666

        wait            = no

        user            = nagios

        group           = nagios

        server          = /usr/local/nagios/bin/nrpe

        server_args     = -c /usr/local/nagios/etc/nrpe.cfg--inetd

        log_on_failure  += USERID

        disable         = no   ##注意修改爲no

        only_from       = 127.0.0.1 192.168.1.145

}

 

#注意:在only_from後面,客戶端上面配置文件添加服務端IP,反之服務端上面添加客戶端IP,中間以空格隔開

 

4.4 添加服務端口

[[email protected]]# vi /etc/services

#在文件末尾添加,如果不添加端口,nrpe將不能正常運行

nrpe    5666/tcp                                #nrpe

 

 

NREP是基於xinetd的服務,所以只要開啓xinetd 服務就行

spacer.gif

 

 

五、WEB服務安裝(僅服務端)

 

  直接用yum源安裝

   yum install –y  httpd

spacer.gif

添加httpd服務開機自啓動

   chkconfig httpd on

spacer.gif

六、客戶端安裝注意事項

 

 需要創建nagios用戶和組。

 nrpenagios-plugin的安裝按照上面的安裝步驟進行安裝

 

七、監控添加主機配置

7.1 Nagios文件簡介

配置文件在安裝時放在了/usr/local/nagios/etc/目錄下。

 

 

[root@Nagios-Server~]# ls -l /usr/local/nagios/etc/

total 88

-rw-rw-r-- 1nagios nagios 11408 May 29 02:09 cgi.cfg           #CGI 配置文件

-rw-r--r-- 1root   root      22 May 29 02:13 htpasswd.users    #Apache 驗證密碼文件

-rw-rw-r-- 1nagios nagios 43776 May 29 02:09 nagios.cfg        #Nagios 主配置文件

drwxrwxr-x 2nagios nagios  4096 May 29 02:09objects           #監控對象定義文件目錄

-rw-rw---- 1nagios nagios  1340 May 29 02:09resource.cfg      #Nagios資源配置文件

 

 

217.41 上面資源配置統一放在monitor下面,根據之前IDC主機業務屬性,劃分數據庫、DMZweb、測試區、WEB區、應用區、二期上線新增VLAN18VLAN19VLAN20三個區域,後期新上線的機器按VLAN 添加到各文件

 

spacer.gif

 

commands.cfg   #命令配置文件

contacts.cfg    #聯繫人配置文件

timeperiods.cfg #時間週期配置文件

templates.cfg   #模板配置文件

contactgroups.cfg  #增加聯繫組定義文件

hosts.cfg          #增加主機配置文件

hostgroups.cfg     #增加主機組配置文件

services.cfg       #增加服務配置文件

servicegroups.cfg  #增加服務組配置文件

 

 

 

 

 

 

 

 

 

7.2下面以監控217.49 vsftpd服務爲例,介紹整個配置過程

 

 

7.2.1修改服務端與客戶端 /etc/xinetd.d/nrpe 文件

執行命令保證雙方通信正常

  1. 49配置:

spacer.gif

  1. 41配置:

spacer.gif

輸出NRPE版本號,表示通信正常

spacer.gif

 

7.3217.49 本地安裝並啓用VSFTP服務,修改/usr/local/nagios/etc/nrpe 添加監控條目

 

spacer.gif

 

查看本地執行狀態

 

 [root@idcrm-test1 etc]#/usr/local/nagios/libexec/check_ftp -H 192.168.217.49 -p 21

FTP OK - 0.004second response time on port 21 [220 (vsFTPd3.0.2)]|time=0.004202s;;;0.000000;10.000000

 

7.4217.41上面新增監控主機,217.49屬於測試區,相關資源都在測試區文件中配置,修改hosts.cfg  新增條目

 

 

spacer.gif

 

 

7.4.1217.49 加入測試區主機組,修改hostgroups.cfg

 

spacer.gif

7.4.2 修改IDCRM-TESTING.cfg 資源文件,新增服務監控條目

spacer.gif

 

這邊check_command          check_nrpe!check_vsftp

 

check_vsftp 需要與客戶端本地配置的監控條目名字要一致,否則會有錯誤

 

 

7.4.3 添加check_vsftp 資源服務組hostgroups.cfg

 

spacer.gif

 

 

7.5將相關主機文件、資源等文件配置到  nagios.cfg ,並重啓nagios

 

  spacer.gif

至此vsftp的相關配置完成,登陸前端查看狀態,紅色字體代表“緊急”,綠色代表“正常”***代表“告警”,如下圖

八、效果圖

spacer.gif

 

 

 

九、接下來是圖形化的安裝(pnp4nagios+rrdtool)

pnp4nagios是一個基於phpperl語言的強大工具,它可以通過process_perfdata.pl腳本調用rrdtoolnagios的性能數據進行分析並繪製成相應的性能圖。所以在安裝pnp4nagios之前,我們必須先安裝phpperlrrdtool.

 

9.1 rrdtool的安裝

 

  rrdtoolRoundRobin Database Tool的縮寫。從功能上說,rrdtool可用於數據存儲+數據展示。著名的網絡流量繪圖軟件cacti和集羣監控系統Ganglia使用的都是rrdtool

在數據存儲方面,rrdtool採用“RoundRobin”模式存儲數據,即環狀數據庫。注意:rrdtool數據庫文件後綴名爲“.rrd”

 

在正式安裝rrdtool之前,我們還必須要安裝rrdtool編譯時,所需要的基礎庫。如下:

yum -y install gcc cairo-devel libxml2-devel pango-devel pangolibpng-devel freetype freetype-devel libart_lgpl-devel

spacer.gif

 

基礎庫安裝完畢後,我們現在開始正式安裝rrdtool

進入rrdtool的解壓目錄

配置rrdtool,如下:

./configure  --prefix=/usr/local/rrdtool

spacer.gif

配置結果如下

spacer.gif

 

  直接進行編譯安裝

make&&make install

spacer.gif

安裝結果如下:

  spacer.gif

 

   安裝完成後進行驗證:

        /usr/local/rrdtool/bin/rrdtool–v

spacer.gif

 

 

9.2 安裝pnp4nagios

9.2.1安裝perl-Time-HiRes組件

perl-Time-HiRes組件一定要在安裝配置pnp4nagios之前安裝,否則在安裝配置pnp4nagios時,提示如下的錯誤信息:

 configure:error: Perl Module Time::HiRes not available

clip_image023

未驗證。

   yum install –y perl-Time-HiRes

spacer.gif

 

開始安裝pnp4nagios(終於到這一步了)

進入pnp4nagios的解壓目錄

 配置pnp4nagios

./configure--prefix=/usr/local/pnp4nagios --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-nagios-user=nagios--with-nagios-group=nagios--with-perl_lib_path=/usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/

 

spacer.gif

會出現如上圖的問題,則執行

 cp -r /usr/local/rrdtool/lib/perl/5.10.1/x86_64-linux-thread-multi/* /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/

再次執行上面的配置命令:

spacer.gif

 結果如下:spacer.gif

 

編譯pnp4nagios,如下:

makeall

spacer.gif

 

注意:

通過上圖,我們知道pnp4nagios的最後一步的安裝有兩種方法:一是make install進行一步一步的安裝pnp4nagios,二是使用make fullinstall進行自動安裝。

這邊我們用make install

  make install

spacer.gif

執行結果如下:

 spacer.gif

安裝pnp4nagiosweb配置文件,如下:

makeinstall-webconf

 

spacer.gif

注意:如果apache是使用源碼安裝的話,我們在執行make install-webconf會報錯。

不要怕,我們只需要把sample-config/httpd.conf複製到/usr/local/apache2/conf/下,並重命名爲pnp4nagios.conf即可。在這apache是安裝到/usr/local/apache2下。如下:

cpsample-config/httpd.conf /usr/local/apache2/conf/ pnp4nagios.conf

ll/usr/local/apache2/conf/

以上操作之後,我們還需要在/usr/local/apache/conf/httpd.conf文件中添加 Include conf/pnp4nagios.conf。最後,我們還要重啓apache

安裝pnp4nagios的配置文件,如下:

make install-config

spacer.gif

安裝pnp4nagios啓動的初始化腳本,如下:

make install-init

spacer.gif

 

9.3  pnp4nagios目錄介紹

 

pnp4nagios安裝完畢後,我們來查看下其安裝的目錄,如下:

ll/usr/local/pnp4nagios/

spacer.gif

 

下面來介紹下pnp4nagios的目錄,如下:

bin目錄用來存放pnp4nagios啓動命令npcd。如下:

/usr/local/pnp4nagios/bin/npcd-h

spacer.gif

pnp4nagios開機啓動腳本就是由這個命令控制,如下:

vi/etc/init.d/npcd

spacer.gif

etc目錄主要存放pnp4nagios各種配置文件,如下:

ll/usr/local/pnp4nagios/etc/

spacer.gif

lib目錄存放pnp4nagios的庫文件。

libexec目錄存放pnp4nagios執行的插件,比如process_perfdata.pl

ll/usr/local/pnp4nagios/libexec

spacer.gif

其他的目錄就不需要做介紹了。

以上就是pnp4nagios的安裝。

 

9.4 配置pnp4nagios

pnp4nagios安裝完畢後,我們現在來配置pnp4nagios

切換到pnp4nagios的安裝目錄的etc目錄下,如下:

cd/usr/local/pnp4nagios/etc/

spacer.gif

現在開始修改etc目錄下內容,如下:

mvmisccommands.cfg-sample misccommands.cfg

mvnagios.cfg-sample nagios.cfg

mvrra.cfg-sample rra.cfg

spacer.gif

修改etc/pages目錄下內容,如下:

mvpages/web_traffic.cfg-sample pages/web_traffic.cfg

spacer.gif spacer.gif

修改etc/check_commands目錄下內容,如下:

mvcheck_commands/check_all_local_disks.cfg-samplecheck_commands/check_all_local_disks.cfg

mvcheck_commands/check_nrpe.cfg-sample  check_commands/check_nrpe.cfg

mvcheck_commands/check_nwstat.cfg-sample  check_commands/check_nwstat.cfg

spacer.gif

以上修改完畢後,我們來配置pnp4nagios的工作模式。

如果想要了解pnp4nagios的全部工作模式,可以訪問這個連接。如下:

http://docs.pnp4nagios.org/pnp-0.6/config

或者http://www.kar-chan.com/?p=2267

 

9.5啓動pnp4nagios

pnp4nagios安裝完畢後,我們來啓動pnp4nagios。要啓動pnp4nagios,我們可以使用如下命令:

/etc/init.d/npcd start

ps aux |grep npcd

spacer.gif

通過上圖,我們可以很明顯的看到pnp4nagios已經正常啓動,並且也能看出pnp4nagios運行在nagios用戶下。

爲了以後的方便,我們直接把pnp4nagios開機啓動。如下:

chkconfignpcd on

chkconfig–list npcd

spacer.gif

 

9.6訪問pnp4nagios

pnp4nagios啓動後,現在我們通過如下連接訪問pnp4nagios,如下:

http://192.168.1.243/pnp4nagios/

spacer.gif

注意:系統會彈出如上的對話框,在此我們只需填入nagios中配置的具有訪問權限的用戶即可,在此我填寫的是nagios的管理員賬號nagiosadmin

spacer.gif

spacer.gif

通過上面兩幅圖,我們可以看很明顯的看到pnp4nagios可以正常訪問。

但是在第二幅圖,我們也看到了系統給出的提示。如下:

pnp4nagios may not work correctly with yourenvironment. Remove or rename the /usr/local/pnp4nagios/share/install.php file on your own risk.

它的意思是要把/usr/local/pnp4nagios/share/install.php文件刪除或者重命名。

現在我們對此文件進行操作,如下:

mv/usr/local/pnp4nagios/share/install.php/usr/local/pnp4nagios/share/install.php.bak

ll/usr/local/pnp4nagios/share/

spacer.gif spacer.gif

對該文件操作文件後,我們再次刷新該頁面,可能會出現如下的錯誤信息。如下:

spacer.gif該錯誤是正常的錯誤,不用管它。繼續往下配置。

 

9.7配置nagios

pnp4nagios的這幾種工作模式中,我們使用Bulk Mode with NPCD模式。要使用Bulk Mode with NPCD模式,我們需要修改nagios的相關配置,具體修改如下。

 

配置nagios.cfg文件

修改nagios的配置文件nagios.cfg,在該文件加入或修改如下選項:

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

process_performance_data=1

#

#service performance data

#

service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata

service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$

service_perfdata_file_mode=a

service_perfdata_file_processing_interval=15

service_perfdata_file_processing_command=process-service-perfdata-file

#

#host performance data starting with Nagios 3.0

#

host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata

host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$

host_perfdata_file_mode=a

host_perfdata_file_processing_interval=15

host_perfdata_file_processing_command=process-host-perfdata-file

clip_image064

注意:

process_performance_data=1表示啓用nagios性能數據輸出。

如果上面的內容你記不得,也沒事的,我們可以直接從/usr/local/pnp4nagios/etc/nagios.cfg文件中複製即可。如下:

vi/usr/local/pnp4nagios/etc/nagios.cfg +16

clip_image065

 

 配置commands.cfg文件

nagios.cfg文件修改完畢後,我們現在來編輯commands.cfg文件。在該文件中加入或修改如下選項:

vi/usr/local/nagios/etc/objects/commands.cfg

definecommand{

   command_name    process-service-perfdata-file

   command_line    /bin/mv/usr/local/pnp4nagios/var/service-perfdata/usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$

}

definecommand{

 command_name    process-host-perfdata-file

 command_line    /bin/mv /usr/local/pnp4nagios/var/host-perfdata/usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$

}

clip_image066

同時還要把nagios中原來的定義process-host-perfdataprocess-service-perfdata給註釋掉。如下:

clip_image067

如果上面的內容你記不得,也沒事的,我們可以直接從/usr/local/pnp4nagios/etc/misccommands.cfg文件中複製即可。如下:

vi/usr/local/pnp4nagios/etc/misccommands.cfg +34

clip_image068

 配置templates.cfg文件

commands.cfg文件修改完畢後,我們現在來編輯templates.cfg文件。在該文件中加入如下選項:

vi/usr/local/nagios/etc/objects/templates.cfg

definehost {

namehost-pnp

action_url/pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_’ class=’tips’rel=’/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_

register0

}

defineservice {

namesrv-pnp

action_url/pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$’ class=’tips’rel=’/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$

register0

}

clip_image069

如果上面的內容你記不得,也沒事的,我們可以直接從pnp4nagios官網查看。如下:

http://docs.pnp4nagios.org/pnp-0.6/webfe

clip_image070

 

 配置主機cfg文件

以上文件全部配置完畢後,我們現在添加一臺主機。如下:

vi/usr/local/nagios/etc/ilanni/ilanni.cfg

definehost{

useilanniserver,host-pnp

host_nameilanni

aliastest server

address192.168.1.248

check_commandcheck-host-alive

}

defineservice{

usegeneric-service,srv-pnp

host_nameilanni

service_descriptionnrpe_load

check_commandcheck_nrpe!check_load

}

clip_image071

9.8查看pnp4nagios繪製圖形

nagios配置完畢後,我們來檢查下nagios配置是否正確。如下:

/etc/init.d/nagiosconfigtest

clip_image072

通過上圖,我們可以看到nagios配置是沒有問題的。

現在我們來重新啓動pnp4nagiosnagios,如下:

/etc/init.d/npcdrestart

/etc/init.d/nagiosreload

clip_image073

現在我們登錄nagios進行查看,先來看看pnp4nagios繪製主機的性能圖,如下:

clip_image074

clip_image075

clip_image076

通過上面三張圖,我們可以很明顯的看出pnp4nagios已經把主機的相關數據進行繪圖。

然後再來看看pnp4nagios繪製服務的性能圖,如下:

clip_image077

clip_image078

clip_image079

通過上面三張圖,我們可以很明顯的看出pnp4nagios已經把服務的相關數據進行繪圖。

最後,我們再來查看下pnp4nagios把數據存放的位置。如下:

ll/usr/local/pnp4nagios/var/perfdata/

ll/usr/local/pnp4nagios/var/perfdata/ilanni

clip_image080

到此有關pnp4nagios繪製nagios性能的圖形已經全部完成。

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章