利用Zabbix监控MongoDB

一、首先介绍mongodb采集到的数据含义:

1、状态采集命令:

>db.serverStatus();

2、输出内容:

{
"host" : "localhost",
"version" : "2.2.6",
"process" : "mongod",
"pid" : 55123,
"uptime" : 18654536,
"uptimeMillis" : NumberLong(""),
"uptimeEstimate" : 18407100,
"localTime" : ISODate("2017-07-10T08:06:17.628Z"),
"locks" : {
"." : {
"timeLockedMicros" : {
"R" : NumberLong(1203), #所有库全局读锁总微秒数
"W" : NumberLong(1607) #所有全库局写锁总微妙数
},
"timeAcquiringMicros" : {
"R" : NumberLong(168), #所有库全局读锁的锁等待总微秒数
"W" : NumberLong(41) #所有库全局写锁的锁等待总微秒数
}
},
"admin" : {
"timeLockedMicros" : { },
"timeAcquiringMicros" : { }
},
"local" : {
"timeLockedMicros" : {
"r" : NumberLong(4118711),
"w" : NumberLong(0)
},
"timeAcquiringMicros" : {
"r" : NumberLong(2191541),
"w" : NumberLong(0)
}
},
"org_center" : {
"timeLockedMicros" : {
"r" : NumberLong(""),
"w" : NumberLong("")
},
"timeAcquiringMicros" : {
"r" : NumberLong(352664878),
"w" : NumberLong("")
}
},
"org_centr" : {
"timeLockedMicros" : {
"r" : NumberLong(124236),
"w" : NumberLong(180)
},
"timeAcquiringMicros" : {
"r" : NumberLong(10119),
"w" : NumberLong(10)
}
},
"shopProduct" : {
"timeLockedMicros" : {
"r" : NumberLong(134997),
"w" : NumberLong(0)
},
"timeAcquiringMicros" : {
"r" : NumberLong(14241),
"w" : NumberLong(0)
}
},
"tb_shop" : {
"timeLockedMicros" : {
"r" : NumberLong(1405192),
"w" : NumberLong(0)
},
"timeAcquiringMicros" : {
"r" : NumberLong(146122),
"w" : NumberLong(0)
}
},
"test" : {
"timeLockedMicros" : {
"r" : NumberLong(3090622),
"w" : NumberLong(2170)
},
"timeAcquiringMicros" : {
"r" : NumberLong(414040),
"w" : NumberLong(130)
}
}
},
"globalLock" : {
"totalTime" : NumberLong(""),
"lockTime" : NumberLong(1607),
"currentQueue" : {
"total" : 0,
"readers" : 0,
"writers" : 0
},
"activeClients" : {
"total" : 0,
"readers" : 0,
"writers" : 0
}
},
"mem" : {
"bits" : 64, #64位操作系统
"resident" : 238, #共占用屋里内存M
"virtual" : 448, #占用虚拟内存
"supported" : true,
"mapped" : 256 #映射内存
},
"connections" : {
"current" : 16, #当前活跃连接数
"available" : 803 #剩余空闲连接数
},
"extra_info" : {
"note" : "fields vary by platform",
"heap_usage_bytes" : 30607592,
"page_faults" : 200
},
"indexCounters" : {
"btree" : {
"accesses" : 24067164, #索引被访问次数
"hits" : 24067164, #索引命中量
"misses" : 0,
"resets" : 0,
"missRatio" : 0
}
},
"backgroundFlushing" : {
"flushes" : 310905, #数据库刷新写到磁盘的次数
"total_ms" : 214212, #数据库刷新数据到磁盘花费的微秒数
"average_ms" : 0.688995030636368, #执行单次刷新花费的平均微秒数
"last_ms" : 5,
"last_finished" : ISODate("2017-07-10T08:05:26.598Z")
},
"cursors" : {
"totalOpen" : 0,
"clientCursors_size" : 0,
"timedOut" : 60
},
"network" : {
"bytesIn" : 5150258135, #流入数据库总量
"bytesOut" : 10535203727, #从数据库流出总量
"numRequests" : 32203604 #数据库总请求数
},
"opcounters" : {
"insert" : 6010564, #总insert数据量
"query" : 7507450, #总query数据量
"update" : 573085, #总update数据量
"delete" : 2563194, #总delete数据量
"getmore" : 308, #游标调用的getMore总次数
"command" : 16077462 #执行命令的总次数
},
"asserts" : {
"regular" : 0,
"warning" : 0,
"msg" : 0,
"user" : 37,
"rollovers" : 0
},
"writeBacksQueued" : false,
"recordStats" : {
"accessesNotInMemory" : 0,
"pageFaultExceptionsThrown" : 0,
"org_center" : {
"accessesNotInMemory" : 0,
"pageFaultExceptionsThrown" : 0
},
"tb_shop" : {
"accessesNotInMemory" : 0,
"pageFaultExceptionsThrown" : 0
},
"test" : {
"accessesNotInMemory" : 0,
"pageFaultExceptionsThrown" : 0
}
},
"ok" : 1
}

zabbix监控页面的主要数据开源就是这里。

3、利用zabbix用户自定义监控功能 userparameter 来监控MongoDB:

  3.1、修改zabbix_agentd.conf,允许接受自定义参数:

UnsafeUserParameters=1

  3.2、定义数据采集命令:

UserParameter=MongoDB.status[*],/bin/echo "db.serverStatus().$1" |/data/mongodb/bin/mongo admin | grep "$2" | awk -F ':' '{print $$2}' | awk -F ',' '{print $$1}'

  注意:不同环境,请注意主机ip和端口号等。

4、zabbix监控页面新建监控模版、添加监控项、生成图形:

创建模版:Template App MongoDB(已经手动创建完毕,并创建监控项,需要者可自行下载)

由于监控项众多,本例只贴出其中一个监控项的配置,如下图:

需要注意的是 键值 项,需和 UserParameter 中定义的格式一致。

5、模版创建完成后,套用到被监控的主机即可。

最终效果如下图:

Zabbix应用八:Zabbix监控MongoDB的更多相关文章

  1. zabbix系列(八)zabbix添加对web页面url的状态监控

    通过zabbi做web监控不仅仅可以监控到站点的响应时间,还可以根据站点返回的状态码,或者响应时间做报警 1.对需要监控的主机添加web监控   在configuration—hosts 中打开主机列 ...

  2. 四十八.监控概述 、 Zabbix基础 、 Zabbix监控服务

     1.常用系统监控命令 查看内存信息 查看交换分区信息 查看磁盘信息 查看CPU信息 查看网卡信息 查看端口信息 查看网络连接信息   一般企业做监控的目的:实时报告系统状态,提前发现系统的问题. 监 ...

  3. 网站集群架构(LVS负载均衡、Nginx代理缓存、Nginx动静分离、Rsync+Inotify全网备份、Zabbix自动注册全网监控)--技术流ken

    前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高 ...

  4. 分布式系统监视zabbix讲解八之自动发现/自动注册--技术流ken

    自动发现(LLD) 概述 自动发现(LLD)提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法.例如,Zabbix可以在你的机器上自动开始监控文件系统或网络接口,而无需为每个文件系统或网 ...

  5. 转 zabbix debug and zabbix使用percona插件监控mysql

    ########## https://www.cnblogs.com/keithtt/p/8542987.html zabbix使用percona插件监控mysql   1.添加percona仓库. ...

  6. 分布式系统监视zabbix讲解八之自动发现/自动注册

    自动发现(LLD) 概述 自动发现(LLD)提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法.例如,Zabbix可以在你的机器上自动开始监控文件系统或网络接口,而无需为每个文件系统或网 ...

  7. 通过zabbix自带模板监控windowsPC机器

       通过zabbix自带模板监控windowsPC机器   作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.       欢迎加入:高级运维工程师之路 598432640 相信有很多 ...

  8. 【Linux】Zabbix + MPM + msmtp + mutt 监控MySQL + 邮件报警

    Zabbix部署参考博文 http://blog.sina.com.cn/s/blog_5611597901017oe0.html  MPM安装配置参考博文和MPM官网下载地址 http://blog ...

  9. Zabbix的集中式监控

    相对于传统的ZABBIX硬件系统级监控(CPU,内存,硬盘,网卡),应用级的监控就显得有些复杂了. 如果对不同的应该来不同的应用,配置会很多的. 如果我们能在一个指定的AGENT上监控所有的APACH ...

随机推荐

  1. mfc Radio Buttons

    添加单选按钮 关联变量 调试宏TRACE BOOL类型 一.添加一组单选按钮 二.添加第二组单选按钮 三.关联变量 四.单选按钮运用 void CMY_Dialog::OnBnClickedButto ...

  2. STM32-M0中断优先级介绍

    先解释中断优先级,后面讲代码的实现. 差异:M0的中断优先级相比于M4,没有用到分组,且只用到了2个bit位(即0~3)来设置,数值越小,优先级越高:同等优先级,根据终端号的大小来决定谁先执行. 根据 ...

  3. C标准库string.h中几个常用函数的使用详解

    strlen 计算字符串长度 size_t strlen(const char *str) 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符. 函数实现: int Strlen(cons ...

  4. Wannafly挑战赛26-F-msc的棋盘[最小割转化dp]

    题意 一个大小为 \(n*m\) 的棋盘,知道每一列放了多少棋子,求有多少摆放方案满足要求. \(n,m\leq 50\) . 分析 如果是求是否有方案的话可以考虑网络流,行列连边,列容量为 \(b_ ...

  5. REST-framework快速构建API--初体验

    一.快速上手 1.环境准备 安装restframework,注册app pip install djangorestframework INSTALLED_APPS = [ 'django.contr ...

  6. 设计模式 笔记 迭代器模式 Iterator

    //---------------------------15/04/26---------------------------- //Iterator 迭代器模式----对象行为型模式 /* 1:意 ...

  7. 账户控制器(AccountController)

    账户控制器(AccountController) Account控制器提供了登录,注册,忘了密码和电子邮件激活页面功能. Layout模板视图 在Account视图文件夹中单独建设了模板文件: 登录页 ...

  8. Mysql_游标

    MySQL中的游标是一个十分重要的概念.游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制.MySQL中的游标的语法 ...

  9. mysql select 字段别名是否可以用在 select中或者where中

    select column1+10 as c1,c1+10 as c2 from table1;想实现上面的效果,结果在mysql里面报错了,提示找不到c1这个列; -- 不同的 数据库不一样 一般不 ...

  10. Alpha阶段_团队分数分配

    小组成员 分数分配 薄霖 74 徐越 65 赵庶宏 65 赵铭 41 武鑫 39 卞忠昊 36 叶能端 30