MongoDB升级到3.0以上的Zabbix监控模板变更

一 应用场景描述

 线上一些MongoDB数据库实例升级到了3.0,查看Zabbix server的日志不断有监控主机的MongoDB监控报错

 

6697:20160519:222116.590 error reason for "xxxxxxxx:MongoDB.Discovery_Status[backgroundFlushing,average_ms,xxxxxxx:1901]" changed: Received value [2016-05-19T22:21:07.391+0800 E QUERY TypeError: Cannot read property 'average_ms' of undefined] is not suitable for value type [Numeric (float)]

错误信息都是这种,可以判断报错的这些监控主机的这些监控项目获取值有问题,有关MongoDB的Zabbix监控方法可以参考以下两篇文章


 http://john88wang.blog.51cto.com/2165294/1565968

 http://john88wang.blog.51cto.com/2165294/1565973



二 监控调整


MongoDB3.0开始支持WiredTiger存储引擎,并且从3.2开始默认就是WireTiger存储引擎。从MongoDB3.0开始就支持两种存储引擎MMAPv1和WiredTiger

从MongoDB3.0开始,MMAPv1存储引擎支持集合级别的加锁

从MongoDB3.0开始,WiredTiger存储引擎提供文档级别的加锁和压缩功能。

监控MongoDB主要是通过MongoDB自带的db.serverStatus()命令获取MongoDB实例的各种状态。从MongoDB3.0开始有些监控项目需要更改,同时由于支持两种存储引擎MMAPv1和WiredTiger两种存储引擎db.serverStatus()显示的结果也不一样

MongoDB不同版本db.serverStatus()命令显示的结果也会有差别


从MongoDB3.0开始,db.serverStatus()不再输出workingSet,indexCountersrecordStats选项

db.serverStatus().cursors从MongoDB2.6后废弃了,要使用db.serverStatus().metrics.cursor查看



backgroundFlushing

backgroundFlushing相关的信息只会出现在使用MMAPv1存储引擎的实例,所以如果使用的WiredTiger存储引擎那么这些监控项目是不支持的。MongoDB会间断地刷新写操作到磁盘。默认是60秒刷新一次。



wiredTiger

从MongoDB3.0开始支持。这个段的信息只有在使用wiredTiger存储引擎的情况下才会输出




增加MongoDB的存储引擎监控项目 

MongoDB.Discovery_Status[storageEngine,name,{#MONGO_HOST}]

原来模板中cursors相关的监控目要变更

MongoDB.Discovery_Status[metrics,cursor,open.total,{#MONGO_HOST}]

MongoDB.Discovery_Status[metrics,cursor,timedOut,{#MONGO_HOST}]

原来模板中的MongoDB IndexCounters相关的监控项目删除








参考文档:

https://sematext.com/blog/2015/12/16/mongodb-monitoring/

https://docs.mongodb.com/manual/reference/command/serverStatus/

https://www.datadoghq.com/blog/monitoring-mongodb-performance-metrics-mmap/

https://www.datadoghq.com/blog/monitoring-mongodb-performance-metrics-wiredtiger/




你可能感兴趣的:(mongodb)