设为首页 收藏本站
查看: 1096|回复: 0

pnp4nagios工作模式详解

[复制链接]

尚未签到

发表于 2019-1-13 12:42:58 | 显示全部楼层 |阅读模式
  pnp4nagios是一款强大的工具,它可以通过process_perfdata.pl脚本调用rrdtool对nagios的性能数据进行分析并绘制成相应的性能图。pnp4nagios有5种工作模式,它们分别是Synchronous Mode、Bulk Mode、Bulk Mode with NPCD、Bulk Mode with NPCD and npcdmod和Gearman Mode,下面就这几种模式的工作原理及配置进行说明
  1.Synchronous Mode

  •   工作原理
  同步模式是最简单的一种集成方式,它的工作原理是直接将process_perfdata.pl集成到nagios,并每个event都执行一次调用,如下图


  •   配置参考
编辑nagios.cfg,更改或增加如下选项  #使nagios性能数据输出
  process_performance_data=1
  #启用nagios环境变量输出
  enable_environment_macros=1
  #服务性能数据输出命令名
  service_perfdata_command=process-service-perfdata
  #主机性能数据输出命令名
  host_perfdata_command=process-host-perfdata
  编辑commands.cfg,增加或修改如下选项
  define command {
  command_name    process-service-perfdata
  command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl
  }
  #定义主机性能数据输出命令
  define command {
  command_name    process-host-perfdata
  command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA
  }
  如果不想某项服务性能数据输出,可在服务中增加如下代码将process_performance_data关闭
define service {  ...
  process_perf_data 0
  ...
  }
  2.Bulk Mode

  •   工作原理
  Bulk模式相对同步式复杂一点,由于同步模式是对每个event都进行处理,如果主机和服务数大就会造成监控服务器的性能下降。在Bulk模式中,nagios会将性能数据以特定的格式写到一个临时目录中。pnp4nagios则定期调用process_perfdata.pl进行处理,处理完成后删除数据文件。这种方式减小了处理的次数,减少了nagios主机的IO访问及负载,弥补了同步模式中的不足。


  •   配置参考
  编辑nagios.cfg,增加或修改如下选项:
  process_performance_data=1
  # service performance data
  service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
  service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
  service_perfdata_file_mode=a
  service_perfdata_file_processing_interval=15
  service_perfdata_file_processing_command=process-service-perfdata-file
  # host performance data starting with Nagios 3.0
  host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
  host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
  host_perfdata_file_mode=a
  host_perfdata_file_processing_interval=15
  host_perfdata_file_processing_command=process-host-perfdata-file
  编辑commands.cfg,增加或修改如下选项:
define command{  command_name    process-service-perfdata-file
  command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/service-perfdata
  }
  define command{
  command_name    process-host-perfdata-file
  command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/host-perfdata
  }
  这里要注意的是,如果性能数据很大的话要适当修改pnp4nagios etc目录下的配置process_perfdata.cfg文件中的TIMEOUT值,以防止因超时限制导致数据未处理完!
  3.Bulk Mode with NPCD

  •   工作原理
  从名字上可以看出,这种模式和Bulk是差不多的,只是多了一步将性能数据加上时间戳移到spool目录中等待处理,npcd服务调用process_perfdata.pl对数据进行处理


  •   配置参考
  编辑nagios.cfg,加入或修改如下选项
  process_performance_data=1
  # service performance data
  #
  service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
  service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
  service_perfdata_file_mode=a
  service_perfdata_file_processing_interval=15
  service_perfdata_file_processing_command=process-service-perfdata-file
  # host performance data starting with Nagios 3.0
  #
  host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
  host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
  host_perfdata_file_mode=a
  host_perfdata_file_processing_interval=15
  host_perfdata_file_processing_command=process-host-perfdata-file
  编辑commands.cfg,加入或修改如下选项
define command{  command_name    process-service-perfdata-file
  command_line    /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
  }
  define command{
  command_name    process-host-perfdata-file
  command_line    /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
  }
  4.Bulk Mode with NPCD and npcdmod

  •   工作原理
  此模式中处理的流程与上一个差不多,不同的是不再使用nagios配置文件中的“*_perf_data_*”,改而使用了加载event broker模块npcdmod.o来替代,不过很遗憾不支持nagios4


  •   配置参考
process_performance_data=1  event_broker_options=-1
  broker_module=/usr/local/pnp4nagios/lib/npcdmod.o config_file=/usr/local/pnp4nagios/etc/npcd.cfg
  注意请不要同时启用“*_perf_data_*” 类的指令!
  5.Gearman Mode

  •   工作原理
  齿轮模式是pnp0.6.12以后版本中加入的一种新模式,齿轮模式的最大优势是可以让nagios和pnp4nagios分别在不同的机器上工作,这样可以大大减少nagios监控主机的负载。工作方式如下图:


  •   配置参考
  编辑pnp4nagios etc目录下的process_perfdata.cfg,修改或增加如下选项:
PREFORK = 1  GEARMAN_HOST = localhost:4730
  REQUESTS_PER_CHILD = 10000
  ENCRYPTION = 1
  KEY = should_be_changed
  #KEY_FILE = /usr/local/pnp4nagios/etc/secret.key
  PREFORK = n #设置有多少个子进程
  GEARMAN_HOST = 主机:端口 #指定运行german实例进程***能数据的主机和端口
  REQUEST_PER_CHILD = n 设置每个子进程的请求处理数
  设置完后,启动gearmon进程开始工作
/etc/init.d/pnp_gearmon_worker start  转载:感谢原作者【http://www.kar-chan.com/?p=2267】



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-662749-1-1.html 上篇帖子: 编译nagios 下篇帖子: nagios通过SNMP服务的网络监控
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表