共计 3059 个字符,预计需要花费 8 分钟才能阅读完成。
前言
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 进行一下说明,这一指令其实包含有三个指令:
- make install-webconf 复制一个名为 pnp4nagios.conf 的文件到 /etc/httpd.conf.d/ 目录下,主要用于从 web 可以访问 pnp4nagios。
- make install-config 复制 process_perfdata.pl 和 npcd 的配置文件到 /etc/pnp 中,为可选项。
- 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 的官网。