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性能的图形已经全部完成。

 

 


你可能感兴趣的:(服务端,客户端,监控,绘图工具)