热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开源监控解决方案Nagios+PNP4Nagios+NConf+NDOUtils整合部署

Nagios在监控方面的强大功能,以及基于GPLv2的开源特性,使其在监控领域具有超群的性价比,深的广大运维师的好评。而今天作者这里提到的“nagios+pnp4nagios+nconf+ndoutils”是以nagios为核心、伴以多款开源软件来进行的整合部署,从而实现监控信息图形

Nagios在监控方面的强大功能,以及基于GPLv2的开源特性,使其在监控领域具有超群的性价比,深的广大运维师的好评。

而今天作者这里提到的“nagios+pnp4nagios+nconf+ndoutils”是以nagios为核心、伴以多款开源软件来进行的整合部署,从而实现监控信息图形化、web页面定义定义监控配置、监控信息存储等一系列功能的解决方案。 

下面就除nagios之外需要用到的几个开源软件进行简要介绍:

pnp4nagios是基于RRD轮循(环状)数据库中所提供的综合信息,以可视化图形的方式呈现给用户的一款nagios插件;

nconf是基于PHP使用户通过web页面实现对nagios各项属性进行配置,诸如模板定义、添加修改监控的主机/服务等操作;

ndoutils可以导出nagios通过SNMP捕获到的当前和历史数据并存储到MySQL数据库中,并且自身以一个独立守护进程的状态存在。

下图简述他们之间协同工作的原理

以下的内容作者将一步步的剖析整套方案的部署过程:

一、成功安装配置nagios

在上一篇博文Nagios远程监控软件的安装与配置详解中作者已经对nagios的工作原理以和安装及配置流程进行了详细地说明,这里就不在赘述。

Ps:为了不影响后面步骤的正常进行,请保证您已成功安装nagios、nagios-plugins和nrpe。

二、rrdtool与pnp4nagios的安装与配置

1.rrdtool的安装需要一系列繁杂的依赖关系下面提供两种安装方法

i.编译安装

  1. yum install -y pango pango-devel freetype freetype-devel libpng libpng-devel gettext gettext-devel libjpeg libjpeg-devel gd gd-devel libxml2 libxml2-devel libiconv libiconv-devel  qpixman qpixman-devel glib glib-devel cairo cairo-devel libart*  
  2. #这里将编译安装中所需的依赖果断全部yum了 
  3. tar xvf rrdtool-1.4.5.tar.gz 
  4. #解压文件
  5. cd rrdtool-1.4.5 
  6. ./configure --prefix=/usr/local/rrdtool 
  7. make && make install 
  8. #编译安装

ii.本地yum安装

  1. yum localinstall -y rrdtool-perl-1.4.4-1.el5.wrl.i386.rpm rrdtool-devel-1.4.4-1.el5.wrl.i386.rpm rrdtool-1.4.4-1.el5.wrl.i386.rpm 
  2. #下载并安装包含所有rrdtool依赖关系的rpm包和rrdtool 

Ps:由于没有找到rrdtool-1.4.5的rpm包...?澹?饫锞椭荒苁褂?.4.4版了

2.安装pnp4nagios

  1. tar zxvf pnp4nagios-0.6.14.tar.gz 
  2. #解压 
  3. cd pnp4nagios-0.6.14 
  4. ./configure --prefix=/usr/local/pnp4nagios --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-nagios-user=nagios --with-nagios-group=nagcmd 
  5. #注意这里的nagios用户和nagcmd组已在安装nagios时创建完成 

注意:这里作者在使用编译安装rrdtool时遇到报错

解决方法:

  1. cp -R /usr/local/rrdtool/lib/perl/5.8.8/i386-linux-thread-multi/* /usr/lib/perl5/5.8.8/i386-linux-thread-multi/ 
  2. ./configure --prefix=/usr/local/pnp4nagios --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-nagios-user=nagios --with-nagios-group=nagcmd 
  3. #将需要与perl相关文件复制过去后,重新编译 

Ps:使用yum安装rrdtool,则忽略此步骤。

  1. make all && make install && make install-webconf && make install-config && make install-init 
  2. #编译安装,生成相应的配置及初始化文件 
  1. cd   /usr/local/pnp4nagios/etc 
  2. mv misccommands.cfg-sample  misccommands.cfg 
  3. mv nagios.cfg-sample nagios.cfg 
  4. mv rra.cfg-sample rra.cfg 
  5. cd /usr/local/pnp4nagios/etc/pages/ 
  6. mv web_traffic.cfg-sample web_traffic.cfg 
  7. cd ../check_commands 
  8. mv check_all_local_disks.cfg-sample  check_all_local_disks.cfg 
  9. mv check_nrpe.cfg-sample  check_nrpe.cfg 
  10. mv check_nwstat.cfg-sample  check_nwstat.cfg 
  11. #将上述配置文件重命名,使之能够被程序识别 

重启服务

  1. service npcd restart 

修改nagios相关配置文件中参数

  1. process_performance_data=1 
  2. #将此变量值设为1 
  3. host_perfdata_command=process-host-perfdata 
  4. service_perfdata_command=process-service-perfdata 
  5. #取消这两项的注释 
  1. cd /usr/local/nagios/etc/objects 
  2. vim commands.cfg 
  3. #对nagios命令配置文件进行设置 
  4. # 'process-host-perfdata' command definition 
  5. define command{ 
  6.        command_name   process-host-perfdata 
  7.        command_line   /usr/local/pnp4nagios/libexec/process_perfdata.pl 
  8.        } 
  9. # 'process-service-perfdata' command definition 
  10. define command{ 
  11.        command_name   process-service-perfdata 
  12.        command_line   /usr/local/pnp4nagios/libexec/process_perfdata.pl 
  13.        } 
  14. #添加上面两行在文件的末行 ,并删除或注释掉原有对process-host-perfdata和process-service-perfdata进行定义的字段 

说明:command.cfg文件的默认设置对process-host-perfdata 和 process-service-perfdata有定义,如果直接添加而不删除默认定义会发生冲突,进而而导致在检测配置文件时报错。

  1. vim templates.cfg 
  2. #对nagios的模板配置文件进行修改 
  3. define host { 
  4. name          host-pnp 
  5. action_url    /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_ 
  6. register   0 
  7. define service { 
  8. name         srv-pnp 
  9. action_url   /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC
  10. register   0 
  11. #在模版中添加pnp4nagios的定义 
  1. cp ../pnp4nagios-0.6.14/contrib/ssi/* /usr/local/nagios/share/ssi/ 
  2. #回到解压目录下,复制鼠标悬停图标显示,预览绘图所需的文件 

定义监控服务/主机

  1. cd /usr/local/nagios/etc/ 
  2. vim mylinux.cfg 
  3. #自定义监控主机和监控服务 
  4. define host{ 
  5.            use             linux-server 
  6.           host_name     mylinux 
  7.           alias            mylinux 
  8.           address        192.168.0.72 
  9.         } 
  10. #定义监控主机 
  11. define service{ 
  12.         host_name               mylinux 
  13.         use                     generic-service,srv-pnp 
  14.         service_description     PING 
  15.         check_command           check_ping!100.0,20%!500.0,60%! 
  16.         } 
  17. define service{ 
  18.        hostgroup_name           mylinux 
  19.        use                    generic-service,srv-pnp 
  20.         service_description     remote_load 
  21.         check_command           check_nrpe!check_load 
  22.        } 
  23. #定义监控的服务 
  24. define serviceextinfo { 
  25.   host_name             mylinux     #与主机名对应 
  26.   service_description   remote_load     #与要显示的服务对应 
  27.   action_url   /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$ 
  28. #这是向nagios监控界面对应服务添加pnp4nagios图标的方法 

说明:pnp4naigos在安装关联nagios后会对所监控的服务进行图形化显示,但是并非所有服务都会自动在nagios监视见面出现pnp4nagios的图标,故用以上字段予以定义。

Ps:具体的监控主机以及监控服务在Nagios远程监控软件的安装与配置详解中有详细说明,这里就不做重复介绍了^_^

  1. nagios -v /var/www/nafios/etc/nagios.cfg        
  2. #检测配置文件语法,在先前nagios配置中已经定义过nagios命令的PATH故直接使用nagios命令 
  3. service nagios restart 
  4. #重启服务 

刷新nagios界面,您会发现在之前定义的服务后面对应的回出现pnp4nagios的图标

且支持鼠标悬停显示

点击pnp4nagios图标后进图绘图界面


推荐阅读
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • (九)Docker常用安装
    一、总体步骤1、搜索镜像2、拉取镜像3、查看镜像4、启动镜像5、停止镜像6、移除镜像二、安装tomcat1、dockerhub上面查找tomcat镜像 dockersearchto ... [详细]
author-avatar
mobiledu2502908767
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有