设为首页 收藏本站
查看: 963|回复: 0

nagios+plugin+pnp4nagios+rrdtool实现图形化监控

[复制链接]

尚未签到

发表于 2019-1-13 08:00:25 | 显示全部楼层 |阅读模式
本文部分内容来自:http://www.ilanni.com/和http://blog.sina.com.cn/s/blog_4bf738fd0101mut6.html 欢迎转载。
一、安装前的准备
1.1安装包的下载
  服务端Nagios:nagios-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源安装
  绘图工具rrdtool:rrdtool-1.5.0-rc2.tar.gz
  http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.5.0-rc2.tar.gz
  图形化工具pnp4nagios:pnp4nagios-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

  注意:如果安装不成功提示: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


二、Nagios安装(仅服务端安装)
2.1安装步骤
  添加用户和组:nagios
  useradd  nagios

  现在进入安装的上传路径下/app,对需要安装的包进行解压。
  tar zxvfnagios-plugins-2.1.1.tar.gz
  tar zxvf nagios-4.1.1.tar.gz
  tar zxvf nrpe-2.15.tar.gz

  进入nagios-4.1.1进行编译安装
  ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios  --with-nagios-group=nagios
  /usr/local/nagios表示nagios的安装路径
  编译完毕如下:

  可以看到需要新建用户nagios,系统中如果没有的话。我们现在可以新建用户。
  继续执行makeall,如下图:

  执行结果如下:

  我们只需要按照上边的命令执行即可,如下图:
  make install安装nagios的相关程序文件。

  makeinstall-init安装nagios启动的初始化脚本。

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

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

  makeinstall-webconf安装nagios的web配置文件。

  为 apache创建一个登陆用户,注意用户名是 nagiosadmin,该用户名是在cgi.cfg设置的默认户名。注意:第一次添加用户用-c 选项,以后再添加千万别在用这个选项了,会覆盖以前的所有
  htpasswd -c /usr/local/nagios/etc/htpasswd nagiosadmin

  注意:如果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/

  以上操作之后,我们还需要在/usr/local/apache/conf/httpd.conf文件中添加 Include conf/nagios.conf。
  注意:include第一个字母大写意。
  为了让Nagios可以开机自动启动,我们把 Nagios添加到启动管理程序中。

  以上是nagios的安装步骤
三、Nagios-plugin安装(服务端和客户端都需要安装)
   下面进行nagios插件的安装。进入nagios的插件目录,如下图:
  
  编译插件
  ./configure --prefix=/usr/lo      cal/nagios --with-nagios-user=nagios--with-nagios-group=nagios

  编译结果如下:

  编译完毕,没有报错就可以进行安装。
  make&&makeinstall

  安装结果如下:

  查看下安装情况:

  插件截图:

  以上是nagios-plugin插件的安装。
四、Nrpe安装(服务端和客户端都需要安装)
4.1 xinetd服务的确认
  NREP是基于xinetd的服务,所以需要确认xinetd 服务是否有安装
  service xinetd status

  安装成功后启动服务并验证。
  service xinetd start

4.2 nrpe安装     
  进入nrpe-2.15解压包的目录/app/nrpe-2.15进行配置
  ./configure --enable-command-args

  配置结果如下:

  进行编译:
  make all

  安装NRPE插件check_nrpe,如下:
  make install-plugin

  安装NRPE命令,如下:
  make install-daemon

  安装NRPE配置文件,如下:
  make install-daemon-config

  安装npre与xinetd服务关联
  make install-xinetd

  以上是安装步骤。
4.3 配置nrpe
  [root@abiu243 xinetd.d]# pwd
  /etc/xinetd.d
  [root@abiu243xinetd.d]# 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 添加服务端口
  [root@abiu243xinetd.d]# vi /etc/services
  #在文件末尾添加,如果不添加端口,nrpe将不能正常运行
  nrpe    5666/tcp                                #nrpe
  NREP是基于xinetd的服务,所以只要开启xinetd 服务就行

五、WEB服务安装(仅服务端)
  直接用yum源安装
  yum install –y  httpd

  添加httpd服务开机自启动
  chkconfig httpd on

六、客户端安装注意事项
  
  需要创建nagios用户和组。
  nrpe和nagios-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主机业务属性,划分数据库、DMZ区web、测试区、WEB区、应用区、二期上线新增VLAN18、VLAN19、VLAN20三个区域,后期新上线的机器按VLAN 添加到各文件

  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 文件
  执行命令保证双方通信正常

  •   49配置:


  •   41配置:

  输出NRPE版本号,表示通信正常

7.3、217.49 本地安装并启用VSFTP服务,修改/usr/local/nagios/etc/nrpe 添加监控条目

  查看本地执行状态
  [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.4、在217.41上面新增监控主机,217.49属于测试区,相关资源都在测试区文件中配置,修改hosts.cfg  新增条目

7.4.1将217.49 加入测试区主机组,修改hostgroups.cfg

7.4.2 修改IDCRM-TESTING.cfg 资源文件,新增服务监控条目

  这边check_command          check_nrpe!check_vsftp 中
  check_vsftp 需要与客户端本地配置的监控条目名字要一致,否则会有错误
7.4.3 添加check_vsftp 到资源服务组hostgroups.cfg

7.5将相关主机文件、资源等文件配置到  nagios.cfg 中 ,并重启nagios

  至此vsftp的相关配置完成,登陆前端查看状态,红色字体代表“紧急”,绿色代表“正常”***代表“告警”,如下图
八、效果图

  
  
  
九、接下来是图形化的安装(pnp4nagios+rrdtool)
  pnp4nagios是一个基于php和perl语言的强大工具,它可以通过process_perfdata.pl脚本调用rrdtool对nagios的性能数据进行分析并绘制成相应的性能图。所以在安装pnp4nagios之前,我们必须先安装php、perl、rrdtool.
9.1 rrdtool的安装
  rrdtool是RoundRobin 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

  基础库安装完毕后,我们现在开始正式安装rrdtool。
  进入rrdtool的解压目录
  配置rrdtool,如下:
  ./configure  --prefix=/usr/local/rrdtool

  配置结果如下

  
  直接进行编译安装
  make&&make install

  安装结果如下:

  安装完成后进行验证:
  /usr/local/rrdtool/bin/rrdtool–v

9.2 安装pnp4nagios
9.2.1安装perl-Time-HiRes组件
  perl-Time-HiRes组件一定要在安装配置pnp4nagios之前安装,否则在安装配置pnp4nagios时,提示如下的错误信息:
  configure:error: Perl Module Time::HiRes not available

  未验证。
  yum install –y perl-Time-HiRes

  开始安装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/

  会出现如上图的问题,则执行
  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/
  再次执行上面的配置命令:

  结果如下:
  编译pnp4nagios,如下:
  makeall

  注意:
  通过上图,我们知道pnp4nagios的最后一步的安装有两种方法:一是make install进行一步一步的安装pnp4nagios,二是使用make fullinstall进行自动安装。
  这边我们用make install
  make install

  执行结果如下:

  安装pnp4nagios的web配置文件,如下:
  makeinstall-webconf

  注意:如果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

  安装pnp4nagios启动的初始化脚本,如下:
  make install-init

9.3  pnp4nagios目录介绍
  
  pnp4nagios安装完毕后,我们来查看下其安装的目录,如下:
  ll/usr/local/pnp4nagios/

  下面来介绍下pnp4nagios的目录,如下:
  bin目录用来存放pnp4nagios启动命令npcd。如下:
  /usr/local/pnp4nagios/bin/npcd-h

  pnp4nagios开机启动脚本就是由这个命令控制,如下:
  vi/etc/init.d/npcd

  etc目录主要存放pnp4nagios各种配置文件,如下:
  ll/usr/local/pnp4nagios/etc/

  lib目录存放pnp4nagios的库文件。
  libexec目录存放pnp4nagios执行的插件,比如process_perfdata.pl
  ll/usr/local/pnp4nagios/libexec

  其他的目录就不需要做介绍了。
  以上就是pnp4nagios的安装。
9.4 配置pnp4nagios
  pnp4nagios安装完毕后,我们现在来配置pnp4nagios。
  切换到pnp4nagios的安装目录的etc目录下,如下:
  cd/usr/local/pnp4nagios/etc/

  现在开始修改etc目录下内容,如下:
  mvmisccommands.cfg-sample misccommands.cfg
  mvnagios.cfg-sample nagios.cfg
  mvrra.cfg-sample rra.cfg

  修改etc/pages目录下内容,如下:
  mvpages/web_traffic.cfg-sample pages/web_traffic.cfg

  修改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

  以上修改完毕后,我们来配置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

  通过上图,我们可以很明显的看到pnp4nagios已经正常启动,并且也能看出pnp4nagios运行在nagios用户下。
  为了以后的方便,我们直接把pnp4nagios开机启动。如下:
  chkconfignpcd on
  chkconfig–list npcd

9.6访问pnp4nagios
  pnp4nagios启动后,现在我们通过如下连接访问pnp4nagios,如下:
  http://192.168.1.243/pnp4nagios/

  注意:系统会弹出如上的对话框,在此我们只需填入nagios中配置的具有访问权限的用户即可,在此我填写的是nagios的管理员账号nagiosadmin。


  通过上面两幅图,我们可以看很明显的看到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/

  对该文件操作文件后,我们再次刷新该页面,可能会出现如下的错误信息。如下:
该错误是正常的错误,不用管它。继续往下配置。

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

  注意:
  process_performance_data=1表示启用nagios性能数据输出。
  如果上面的内容你记不得,也没事的,我们可以直接从/usr/local/pnp4nagios/etc/nagios.cfg文件中复制即可。如下:
  vi/usr/local/pnp4nagios/etc/nagios.cfg +16

  
  配置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$
  }

  同时还要把nagios中原来的定义process-host-perfdata和process-service-perfdata给注释掉。如下:

  如果上面的内容你记不得,也没事的,我们可以直接从/usr/local/pnp4nagios/etc/misccommands.cfg文件中复制即可。如下:
  vi/usr/local/pnp4nagios/etc/misccommands.cfg +34

  配置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_’>  register0
  }
  defineservice {
  namesrv-pnp

  action_url/pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$’>  register0
  }

  如果上面的内容你记不得,也没事的,我们可以直接从pnp4nagios官网查看。如下:
  http://docs.pnp4nagios.org/pnp-0.6/webfe

  
  配置主机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
  }

9.8查看pnp4nagios绘制图形
  nagios配置完毕后,我们来检查下nagios配置是否正确。如下:
  /etc/init.d/nagiosconfigtest

  通过上图,我们可以看到nagios配置是没有问题的。
  现在我们来重新启动pnp4nagios和nagios,如下:
  /etc/init.d/npcdrestart
  /etc/init.d/nagiosreload

  现在我们登录nagios进行查看,先来看看pnp4nagios绘制主机的性能图,如下:



  通过上面三张图,我们可以很明显的看出pnp4nagios已经把主机的相关数据进行绘图。
  然后再来看看pnp4nagios绘制服务的性能图,如下:



  通过上面三张图,我们可以很明显的看出pnp4nagios已经把服务的相关数据进行绘图。
  最后,我们再来查看下pnp4nagios把数据存放的位置。如下:
  ll/usr/local/pnp4nagios/var/perfdata/
  ll/usr/local/pnp4nagios/var/perfdata/ilanni

  到此有关pnp4nagios绘制nagios性能的图形已经全部完成。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-662557-1-1.html 上篇帖子: Nagios监控之11:NRPE脚本监测信息输出格式 下篇帖子: apache 编译安装与做nagios前端展示
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表