情景如下:
OS: Ubuntu 12.04 LTS x86_64;
Nagios版本3.2.3;
Nagiosql版本3.2.0;
Pnp4nagios版本0.6.13;
虚拟机,四核,1.5内存;
模式:被动监控
监控主机数量:169
监控服务数量:745
绘图数量:923 (find /var/lib/pnp4nagios/perfdata -name "*.rrd"|wc -l)
绘图模式:Synchronous mode
故障现象: 报警和监控持续性延迟,但绘图正常,各种调优依然无解;关闭pnp4nagios绘图之后,监控和报警立刻恢复正常;个人感觉像是监控和绘图在争抢系统资源;
解决方法: 更改pnp4nagios绘图模式为bulk-npcd即可.
简单叙述一下,个人对pnp4nagios的几种绘图模式工作原理的理解:
第一种:synchronous mode 中文:同步模式 。 个人理解,只要接收到数据,就立刻绘图,如下图:
第二种:bulk mode中午:容器模式。个人理解,把需要绘图的数据做一下转存先,到达一定的量,再绘图,听说这种方式再同时要处理比较多的数据时会造成超时;可以通过修改特定参数缓解。如下图:
第三种:bulk mode with npcd 中文:由npcd来管理的bulk模式。 个人理解: 等同于第二种,但是由npcd来管理何时绘图,笔者的解决方案就是这种。见下图:
第四种: Bulk Mode with npcdmod ;以nagios模块化运行npcd,但貌似官网介绍说不支持nagios4,笔者也未做过多的测试,见下图:
第五种: Gearman Mode..不知道怎么翻译...看官方说的很牛的样子,能让pnp4nagios和nagios分布在不同的机器上,笔者未做深入了解,有兴趣去官网吧...见下图:
更改方法参考pnp4nagios官网即可。