pnp4nagios是nagios的一个插件,用于将perfdata数据写入rrd,用于展示流量图,目前最高版本0.6.25。

我用官方下载的tar.gz打rpm包,官方提供的pnp4nagios.spec 需要更改几处,才能顺利打包

version:    0.6.16 =>0.6.25

%build
--with-perfdata-spool-dir=%{_localstatedir}/spool/nagios => --with-perfdata-spool-dir=%{_localstatedir}/nagios/spool %files
增加
%{_libexecdir}/rrd_modify.pl

pnp4nagios 依赖 php-gd 还有rrdtool-perl,这个记得一定不能少。

pnp4nagios支持多种rrd生成模式,我选择Bulk Mode with NPCDGearman Mode模式

nagios.cfg

# 开启perfdata数据生成
process_performance_data=1 # perfdata数据位置
host_perfdata_file=/var/nagios/host-perfdata
service_perfdata_file=/var/nagios/service-perfdata # perfdata数据模板
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$ host_perfdata_file_mode=a
service_perfdata_file_mode=a host_perfdata_file_processing_interval=15
service_perfdata_file_processing_interval=15 # perfdata数据文件处理命令,这个与pnp4nagios相关
host_perfdata_file_processing_command=process-host-perfdata-file
service_perfdata_file_processing_command=process-service-perfdata-file

commands

# 与Bulk Mode with NPCD模式对应,对应图示 - 步骤3
define command {
command_name process-host-perfdata-file
command_line /bin/mv /var/nagios/host-perfdata /var/nagios/spool/host-perfdata.$TIMET$
} define command {
command_name process-service-perfdata-file
command_line /bin/mv /var/nagios/service-perfdata /var/nagios/spool/service-perfdata.$TIMET$
}

config.php

$views[] = array('title' => 'One Hour',  'start' => (60*60) );
$conf['RRD_DAEMON_OPTS'] = 'unix:/var/run/rrdcached.sock';

npcd.cfg

# 日志,用于调试
log_type = file
log_file = /var/log/nagios/npcd.log
log_level = 1 # pnp4nagios spool目录,与commands.cfg要对应
perfdata_spool_dir = /var/nagios/spool
npcd_max_threads = 10 # /var/nagios/spool目录扫描间隔
sleep_time = 15

process_perfdata.cfg

# rrd存储目录,与pnp4nagios的config.php对应
RRDPATH = /usr/share/pnp4nagios/perfdata # 日志,用于调试
LOG_FILE = /var/log/nagios/perfdata.log
LOG_LEVEL = 1 # 使用rrdcached降低压力
RRD_DAEMON_OPTS = unix:/var/run/rrdcached.sock

/usr/share/pnp4nagios/templates.dist/default.php

默认模板里rrdtool配置参数与rrdtool 1.6不兼容,需要修改
--lower => --lower-limit
--upper => --upper-limit

启动

systemctl restart nagios
systemctl restart npcd

mod-gearman

#/etc/mod_gearman/module.conf

perfdata=yes
perfdata_send_all=yes
perfdata_mode=1

process_perfdata.cfg

# rrd存储目录,与pnp4nagios的config.php对应
RRDPATH = /usr/share/pnp4nagios/perfdata # 日志,用于调试
LOG_FILE = /var/log/nagios/perfdata.log
LOG_LEVEL = 1 # 使用rrdcached降低压力
RRD_DAEMON_OPTS = unix:/var/run/rrdcached.sock # 子进程数量
PREFORK = 20 # 指定gearmand服务器的地址
GEARMAN_HOST = xxx.xxx.xxx.xxx:4730

启动

systemctl restart nagios
systemctl restart pnp_gearmand_work

监控系统 - pnp4nagios的更多相关文章

  1. 监控系统-nagios

    Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设备,打印机等.在系统或服务状态异常发出邮件或短信报警第一 ...

  2. CentOS 7.4 下安装部署Nagios监控系统详细攻略(三)

    Nagios是一个流行的电脑系统和网络监控程序,它检测主机和服务,当异常发生和解除时能提醒用户.它是基于GPLv2开发的开源软件,可免费获得及使用. nagios工作原理 nagios的功能是监控服务 ...

  3. Opserver开源的服务器监控系统(ASP.NET)

    Opserver是Stack Exchange下的一个开源监控系统,系统本身由C#语言开发的ASP.NET(MVC)应用程序,无需任何复杂的应用配置,入门很快.下载地址:https://github. ...

  4. prometheus监控系统

    关于Prometheus Prometheus是一套开源的监控系统,它将所有信息都存储为时间序列数据:因此实现一种Profiling监控方式,实时分析系统运行的状态.执行时间.调用次数等,以找到系统的 ...

  5. 利用WCF的双工通讯实现一个简单的心跳监控系统

    何为心跳监控系统? 故名思义,就是监控某个或某些个程序的运行状态,就好比医院里面的心跳监视仪一样,能够随时显示病人的心跳情况. 心跳监控的目的是什么? 与医院里面的心跳监视仪目的类似,监控程序运行状态 ...

  6. 分布式监控系统Zabbix-3.0.3-完整安装记录(7)-使用percona监控MySQL

    前面已经介绍了分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳.要想更加仔细的监控Mysql,业内同学们都会选择 ...

  7. 监控系统Opserver的配置调试

    Stack Exchange开源其监控系统Opserver有一段时间了.之前在项目中用过他们的MiniProfile来分析页面执行效率和帮助新人了解项目,当他们开源了其监控系统的时候正好部门也在关注监 ...

  8. 日志监控系统中,大批量查询mysql方案

    最近开发遇到一个问题:需要查询一个大时间段内的数据,分1000个小段,即为1000个点.X轴是时间,Y轴是该小时间段内统计后数据.注意:数据返回是一个list,其中每个对象返回值都是该小时间段内数据统 ...

  9. day26 分布式监控系统开发

    本节内容 为什么要做监控? 常用监控系统设计讨论 监控系统架构设计 监控表结构设计 为什么要做监控? –熟悉IT监控系统的设计原理 –开发一个简版的类Zabbix监控系统 –掌握自动化开发项目的程序设 ...

随机推荐

  1. springcloud系列六 整合security

    一 Eureka注册中心认证: Eureka自带了一个管理界面,如果不加密,所有人都可以进行访问这个地址,这样安全问题就来了,所以需要对其进行加密认证: 那么该如何进行整合呢: 1 在注册中心模块添加 ...

  2. 删除Ati显卡桌面右键菜单(配置可交换显卡,显示卡属性,图形选项,图形属性)

    Win+R 打开注册表 依次找到 HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers 保留Gadgets.New.Sh ...

  3. 老男孩python作业3-购物车程序优化

    购物车优化要求:用户入口: 1.商品信息存在文件里 2.已购商品,余额记录.第一次启动程序时需要记录工资,第二次启动程序时谈出上次余额 3.允许用户根据商品编号购买商品 4.用户选择商品后,检测是否够 ...

  4. 【笔记】MySQL的基础学习

    [笔记]MySQL的基础学习 老男孩 MySQL  一 安装与配置 1 下载安装 官网:http://dev.mysql.com/downloads/mysql/ 下载相应版本的压缩包 解压压缩包至任 ...

  5. 【学习笔记】Python 3.6模拟输入并爬取百度前10页密切相关链接

    [学习笔记]Python 3.6模拟输入并爬取百度前10页密切相关链接 问题描述 通过模拟网页,实现百度搜索关键词,然后获得网页中链接的文本,与准备的文本进行比较,如果有相似之处则代表相关链接. me ...

  6. matplolib实例之 城市气候与海洋的关系研究

  7. 基于APPIUM测试微信公众号的UI自动化测试框架(结合Allure2测试报告框架)

    框架初衷 前两周组内的小伙伴跟我说她现在测试的微信公众号项目(保险)每次上新产品时测试起来很费时,存在大量的重复操作(点点点),手工测试每个产品可能需要半天到一天的时间,复杂的产品需要两天. 由于保险 ...

  8. oracle Clob类型转换成String类型

    转载:https://www.cnblogs.com/itmyhome/p/4131339.html Clob类型转换成String类型 oracle中表结构如下: create table GRID ...

  9. MB Star C5 Functions

    The MB STAR C5 notion and brand combination for hardware and software program components will be the ...

  10. c++ 封装线程库 2

    1.2线程回收: 首先得知道线程的两个状态: Joinable Detached 简单理解,如果一个线程是joinable的状态,那么这样的线程,就必须使用pthread_join来回收,否则程序结束 ...