nagios监控数据可视化

前言

nagios系统可以像zabbix、cacti类软件一样,将收集到的各项监控指标性能数据以图形的形式动态展示出来。使监控更加直观化,可进行各项灵活的定制,方便对性能数据进行对比分析。nagios可以用于监控数据画图的插件有多种,这里以pnp4nagios软件为例进行说明。

本文所用到系统环境OS:CentOS release 6.8 (Final) 2.6.32-642.el6.x86_64还有一个重要环境:互联网(yum、百度、Google)。各软件包:

nagios监控数据可视化

1. 获取pnp4nagios软件

笔者是在pnp4nagios的官网上下载的,现将它和nagios其它软件包一起放在此处百度网盘 密码:ayhk

2. 安装pnp4nagios

  • 安装前的准备笔者使用的是pnp4nagios的0.6.25版本,根据官网说明安装它以前需要满足以下条件:

    nagios监控数据可视化

其中perl、rrdtool都可以通过yum来进行安装,web server apache默认即已包含mod_rewrite了。需要使用yum安装的包大致包括以下几个:

nagios监控数据可视化
  • 安装pnp4nagios先将软件压缩包解压,然后configure,根据提示执行相应的make操作,完成安装过程,相应指令如下:

    nagios监控数据可视化

    以上配置汇总信息很重要,后面修改nagios.cfg需要用到,以及pnp4nagios运行环境测试也会用到。然后根据提示信息依次执行:

    nagios监控数据可视化

这里对make fullinstall进行一下说明,这一指令其实包含有三个指令:

  1. make install-webconf复制一个名为pnp4nagios.conf的文件到/etc/httpd.conf.d/目录下,主要用于从web可以访问pnp4nagios。
  2. make install-config 复制process_perfdata.pl和npcd的配置文件到/etc/pnp中,为可选项。
  3. make install-init 安装npcd init脚本。

3. 测试pnp4nagios安装结果

重启web服务,并验证pnp4nagios运行环境是否已准备就绪。

nagios监控数据可视化

打开浏览器输入上面汇总信息的HTML URL即:http://localhost/pnp4nagios。正常情况下会得到如下页面:

nagios监控数据可视化

pnp4nagios运行环境测试图1

nagios监控数据可视化

pnp4nagios运行环境测试图2

4. 了解pnp4nagios的工作模式

进行pnp4nagios的配置之前,需要先确定要使用pnp4nagios的哪种工作模式,它支持的有sync mode(应该是默认模式)、bulk mode、bulk mode with npcd、bulk with npcd and npcdmod和gearman mode共5种运行模式,按照官网的说明,我这里选择buld mode with npcd。以下为这种模式的官方说明:

Viewing from Nagios this is the best way of processing because Nagios will not be blocked.

Nagios again uses a temporary file to store the data and executes a command after expiration of a certain time. Instead of immediate processing by process_perfdata.pl the file is moved to a spool directory. As moving a file inside the same filesystem nearly takes no time nagios is able to execute crucial work immediately.

The NPCD daemon (Nagios Performance C Daemon) will monitor the directory for new files and will pass the names to process_perfdata.pl. Processing of performance data is decoupled completely from nagios. NPCD itself is able to start multiple thread for processing the data.

简单来说这种模式的好处就是它将收集到原始的性能统计数据工作和对这些数据进行处理然后生成RRD和XML文件的工作分开了,前者由nagios完成,后者则由专门的守护进程NPCD来完成,提高了nagios的工作效率。以下为这种模式的工作原理示图:

nagios监控数据可视化

pnp4nagios bulk mode with npcd

5. 配置pnp4nagios及nagios

要想pnp4nagios工作起来必须对pnp4nagios和nagios的配置文件进行修改,让它们能够联动起来。按照以下步骤进行配置:

  • 修改nagios主配置文件 (/usr/local/nagios/etc/nagios.cfg)
    • 打开性能数据处理开关

      nagios监控数据可视化
    • 修改性能数据文件位置

      nagios监控数据可视化

      修改性能数据文件格式模板

      nagios监控数据可视化

      设置性能数据文件写入模式及处理间隔

      nagios监控数据可视化配置处理这些性能数据文件的指令

      nagios监控数据可视化这两个指令非常关键,它需要在nagios的commands.cfg中定义好,且命令名称跟此处完全一致。

      定义处理文件指令的详细参数在nagios的commands.cfg中配置如下参数:

      nagios监控数据可视化

      配置nagios web上可以调用pnp4nagios要实现从nagios web页面上直接打开pnp4nagios,从而查看其输出的图形,还需要配置很关键的一个参数 action_url,我选择将它直接定义在host和service的模板中。在实际工作中有的监控项目可能并不需要画图出来,可以在定义监控时,在相应的服务中设置process_perf_data               0,即不处理此服务的性能数据。默认在服务和主机模板中它是设置为1的。要想看到一个监控项目输出的图形,必须将process_perf data设置为1,同时调用的有action_url。action_url的配置如下所示,我选择将它们分别定义在templates.cfg的主机和服务模板中了:

      nagios监控数据可视化
  • 检查npcd配置文件查看/usr/local/pnp4nagios/etc/npcd.cfg的内容,确认其中配置的有无错误的地方,比如使用的用户是否和nagios的一致为nagios,调用的process_perfdata.pl是否是pnp4nagios libexec下的。一般情况下此文件保持默认参数即可。
  • 设置npcd服务开机自启并启动

    nagios监控数据可视化
  • 重载nagios当naios的配置文件有过改动以后,需要检查配置文件是否有明显的语法及逻辑错误,检测方式:/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg检测无误后,重载nagios服务:service nagios reload

6. 观察画图效果

nagios中添加了action_url以后,web 页面相应的主机和服务后会多一个小的图标,如下:

nagios监控数据可视化

pnp4nagios图标

点击其中一个图标可以看到其动态输出效果,如下所示:

nagios监控数据可视化

pnp4nagios效果图

7. pnp4nagios的官方文档

pnp4nagios还支持很多高级功能,如在配置 文件中使用正则表达式,以实现更为复杂的匹配,支持自定义page,将想要放在一起的主机及服务呈现在一个页面中,支持数据导出。这些在它的官方网站上都有介绍,文中的原理图也来自pnp4nagios的官网。

相关新闻

历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、云原生、Go、Python开发专业人才培训机构!