原创投稿 | nagios监控数据可视化

前言

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

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

1. 获取pnp4nagios软件

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

2. 安装pnp4nagios

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

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

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

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

这里对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运行环境是否已准备就绪。

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

pnp4nagios运行环境测试图1

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的工作效率。 以下为这种模式的工作原理示图:

pnp4nagios bulk mode with npcd

5. 配置pnp4nagios及nagios

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

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

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

    设置性能数据文件写入模式及处理间隔 配置处理这些性能数据文件的指令

    这两个指令非常关键,它需要在nagios的commands.cfg中定义好,且命令名称跟此处完全一致。 定义处理文件指令的详细参数 在nagios的commands.cfg中配置如下参数:

    配置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的主机和服务模板中了:

  • 检查npcd配置文件 查看/usr/local/pnp4nagios/etc/npcd.cfg的内容,确认其中配置的有无错误的地方,比如使用的用户是否和nagios的一致为nagios,调用的process_perfdata.pl是否是pnp4nagios libexec下的。一般情况下此文件保持默认参数即可。
  • 设置npcd服务开机自启并启动
  • 重载nagios 当naios的配置文件有过改动以后,需要检查配置文件是否有明显的语法及逻辑错误,检测方式: /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 检测无误后,重载nagios服务: service nagios reload

6. 观察画图效果

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

pnp4nagios图标

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

pnp4nagios效果图

7. pnp4nagios的官方文档

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

好的内容离不开作者的持续付出,给他一次小小的打赏我们将获得持续不断的有料干货,⬇️美女和帅哥都会至少打赏1元哟⬇️⬇️?

————10万+阅读悬赏令————

马哥教育原创作者群招募,目前作者85位,核心作者最高阅读破万,马哥教育拥有微信公众号、今日头条、百家号、UC头条等数十家平台专栏,单篇可覆盖用户超过10万+,如果您想让自己红和让你自己得到发声之处,我们期待你的原创内容。

原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2017-04-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏听雨堂

Android新手之旅(1) 开发环境的安装

  大致情况:安装Android开发环境,网上有很多的教程,装eclipse,jdk…别的问题都不大,最麻烦的是装sdk,因为安装是一个在线安装过程,而要安装的...

20570
来自专栏开源优测

[接口测试_B] 07 Pytest的测试报告

pytest命令行运行时,可以直接在控制台中查看到输出的结果,但这样的结果并不直观,也不易于保存用于后续分析和分享。如pytest -s -q test_xx....

36060
来自专栏公众号_薛勤的博客

下面哪项技术可以用在WEB开发中实现会话跟踪实现?

会话跟踪是一种灵活、轻便的机制,它使Web上的状态编程变为可能。 HTTP是一种无状态协议,每当用户发出请求时,服务器就会做出响应,客户端与服务器之间的联系...

9630
来自专栏IMWeb前端团队

关于javascript错误捕获

``` javascript的出错我们应该都很熟悉,例如`xxx undefined`,`SyntaxError`等。 我们team将出现错误的javas...

22670
来自专栏java学习

针对java初学者以及自学者的一篇入门教程

Java基础 | 数据库 | Android | 学习视频 | 学习资料下载 最新通知 按照我去培训机构的学习经历,给初学还有自学Java 的同学一个基本的学习...

44390
来自专栏QQ音乐前端团队专栏

【译】开始在web中使用JS Modules

15720
来自专栏知晓程序

电商/票务类小程序必读,如何用小程序推送消息?

通常,服务方向用户推送的消息都带有通知性质,文案也相对固定。服务方将这类固定的文案制作成模板,这些文案就可以快速重复使用。

14120
来自专栏地方网络工作室的专栏

打造前端MAC工作站(五)让我们熟悉一下 MAC 命令行吧!

打造前端MAC工作站(五)让我们熟悉一下 MAC 命令行吧! 前言 对于初次基础mac或者linux的朋友来说,接收和使用命令行是一个比较困难的事情。但是,正如...

268100
来自专栏玄魂工作室

CTF实战2 Web应用构成

https://www.bilibili.com/video/av22207039/

11720
来自专栏全华班

敏捷工作流开发平台(学习参考)

资源管理(用于服务器鉴权,用户分配资源菜单)、数据字典、定时计划(定时调度引擎)、系统属性(多环境系统参数定义)、系统数据源(系统支持多数据源的数据获取,系统数...

25310

扫码关注云+社区

领取腾讯云代金券