MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
Mongodb如今越来越火,要做好对mongodb的监控就需要从它的安装配置,到简单的command语句使用,再到对它运行机制以及状态获取方法的掌握。
mongodb有三种基本的状态获取方式:
1.mongostat
2.开启28017的监听端口,curl http://127.0.0.1:28017/_status
3.进入mongo执行db.serverStatus命令
我用的是第三种方法:
echo "db.serverStatus()" |/usr/local/mongodb/bin/mongo 192.168.1.123:27017/foo --quiet { "host" : "TENCENT64.site", --server的hostname "version" : "2.0.5", --mongo版本 "process" : "mongod", --进程名 "uptime" : 1238418, --启动时间(单位:S) "uptimeEstimate" : 1230730, --基于MongoDB内部粗粒度定时器的运行时间 "localTime" : ISODate("2012-09-14T09:09:52.657Z"), --server的本地时间 "globalLock" : { "totalTime" : 1238418105923, --全局锁创建的时间(单位:ms 微秒) "lockTime" : 75055831911, --全局锁保持的时间(单位:ms 微秒) "ratio" : 0.06060621332329477, --lockTime和totalTime的比 "currentQueue" : { "total" : 0, --等待全局锁的队列中操作数目 "readers" : 0, --等待读锁的队列中操作数目 "writers" : 0 --等待写锁的队列中操作数目 }, "activeClients" : { "total" : 1, --连接到server的当前活动client数目 "readers" : 1, --执行读操作的当前活动client数目 "writers" : 0 --执行写操作的当前活动client数目 } }, "mem" : { "bits" : 64, --64位机器 "resident" : 18363, --占用物理内存量。 "virtual" : 478810, --占用的虚拟内存量 "supported" : true, --是否支持扩展内存 "mapped" : 233311, --映射到内存的数据文件大小,很接近于你的所有数据库大小。 "mappedWithJournal" : 466622, "note" : "virtual minus mapped is large. could indicate a memory leak" }, "connections" : { "current" : 737, --当前活动连接量。连接到server的当前活跃连接数目 "available" : 82 --剩余空闲连接量。剩余的可用连接数目 }, "extra_info" : { "note" : "fields vary by platform", "heap_usage_bytes" : 3838448, --此过程中所有的堆字节数目。仅适用于Linux "page_faults" : 31058356 --此过程中访问内存中页面失败的总次数。仅适用于Linux }, "indexCounters" : { "btree" : { "accesses" : 68229146, --Btree索引的访问次数(索引被访问量) "hits" : 68229146, --内存中的Btree页的数目。(索引命中量) "misses" : 0, --内存中不存在的Btree也数目。(索引偏差量)(索引内存访问失败次数) "resets" : 0, --索引计数器被重置为0的次数 "missRatio" : 0 --索引偏差率(未命中率) } }, "backgroundFlushing" : { "flushes" : 20640, --数据库刷新写到磁盘的次数 "total_ms" : 2453287, --数据库刷新数据到磁盘花费的微秒数 "average_ms" : 118.8608042635659, --执行单次刷新花费的平均微秒数 "last_ms" : 1, --最后一次执行完成刷新数据到磁盘花费的微秒数 "last_finished" : ISODate("2012-09-14T09:09:35.656Z") --当最后一次刷新数据完成时的时间戳 }, "cursors" : { "totalOpen" : 0, --server为client保持的游标(cursor)总数 "clientCursors_size" : 0, -- "timedOut" : 24 --server启动以来游标(cursor)超时的总数 }, "network" : { "bytesIn" : NumberLong("1929833164782"), --发送到数据库的数据总量(bytes) "bytesOut" : 553137147925, --数据库发出的数据总量(bytes) "numRequests" : 2475184328 --发送到数据库的请求量 }, "opcounters" : { "insert" : 687531883, --server启动以来总的insert数据量 "query" : 711010343, --server启动以来总的query数据量 "update" : 0, --server启动以来总的update数据量 "delete" : 0, --server启动以来总的delete数据量 "getmore" : 6484, --server启动以来调用任何游标的getMore总次数 "command" : 1287537 --server启动以来执行其他命令的总次数 }, "asserts" : { "regular" : 0, --server启动以来抛出正规断言(assert 类似于异常处理的形式)总数目 "warning" : 1, --server启动以来抛出的告警总数目 "msg" : 0, --消息断言数目。服务器内部定义的良好字符串错误 "user" : 4, --用户断言数目。用户产生的错误,譬如:磁盘空间满;重复键。 "rollovers" : 0 --server启动以来,assert counters have rolled over的次数 }, "writeBacksQueued" : false, --是否有从mongos执行的retry操作 "dur" : { "commits" : 30, --上一间隔journal日志发生commit的次数 "journaledMB" : 0, --上一间隔写到journal日志的数据量(单位:MB) "writeToDataFilesMB" : 0, --上一间隔journal日志写到数据文件的数据量(单位:MB) "compression" : 0, -- "commitsInWriteLock" : 0, --写锁期间发生commits的次数 "earlyCommits" : 0, --schedule时间前请求commit的次数 "timeMs" : { "dt" : 3064, "prepLogBuffer" : 0, --准备写journal日志花费的时间 "writeToJournal" : 0, --写journal日志花费的实际时间 "writeToDataFiles" : 0, --journal日志后写数据文件花费的时间 "remapPrivateView" : 0 --The amount of time spent remapping copy-on-write memory mapped views } }, "ok" : 1 --serverStatus是否返回正确 }
以上,我们把所需要的参数抽取出来就可以做成监控项了。
先定义键值:
#mongodb.conf UserParameter=mongodb_port_discovery,/usr/local/zabbix/exec/mongo_discovery.py UserParameter=mongodb_stats[*],/usr/local/zabbix/exec/mongo_status.sh $1 $2 $3 $4 $5
写mongo_discovery.py脚本(用于端口发现)
#!/usr/bin/env python # -*- coding:utf-8 -*- import json import subprocess json_data = {"data":[]} net_cmd = '''sudo netstat -nlpt|awk '/mongo/{print $4}' ''' p = subprocess.Popen(net_cmd, shell=True, stdout=subprocess.PIPE) net_result = p.stdout.readlines() for server in net_result: dic_content = { "{#MONGO_PORT}" : server.split(':')[1].strip(), "{#MONGO_IPADDR}" : server.split(':')[0].strip() } json_data['data'].append(dic_content) result = json.dumps(json_data,sort_keys=True,indent=4) print result
写mongo_status.sh状态检测脚本
#!/bin/bash ##mongo_status.sh## ##wuhf## case $# in 3) output=$(/bin/echo "db.serverStatus().$3" |/usr/local/mongodb/bin/mongo $1:$2/foo --quiet) ;; 4) output=$(/bin/echo "db.serverStatus().$3.$4" |/usr/local/mongodb/bin/mongo $1:$2/foo --quiet) ;; 5) output=$(/bin/echo "db.serverStatus().$3.$4.$5" |/usr/local/mongodb/bin/mongo $1:$2/foo --quiet) ;; esac if [[ "$output" =~ "NumberLong" ]];then echo $output|sed -n 's/NumberLong(//p'|sed -n 's/)//p' else echo $output fi
权限设置
chmod 755 /usr/local/zabbix/exec/* chown zabbix.zabbix /usr/local/zabbix/exec/* chown zabbix.zabbix /usr/local/zabbix/etc/zabbix_agentd.conf.d/* echo "zabbix ALL=(root) NOPASSWD:ALL" /etc/sudoers sed -i 's/^Defaults.*.requiretty/#Defaults requiretty/' /etc/sudoers
做MongoDB模板
定义自动发现规则
定义监控项
最后添加触发器和图就完成了
注意:在mongodb.conf配置文件里定义了键值对应关系后要重启zabbix服务才能生效
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 中国武警男声合唱团《辉煌之声1天路》[DTS-WAV分轨]
- 紫薇《旧曲新韵》[320K/MP3][175.29MB]
- 紫薇《旧曲新韵》[FLAC/分轨][550.18MB]
- 周深《反深代词》[先听版][320K/MP3][72.71MB]
- 李佳薇.2024-会发光的【黑籁音乐】【FLAC分轨】
- 后弦.2012-很有爱【天浩盛世】【WAV+CUE】
- 林俊吉.2012-将你惜命命【美华】【WAV+CUE】
- 晓雅《分享》DTS-WAV
- 黑鸭子2008-飞歌[首版][WAV+CUE]
- 黄乙玲1989-水泼落地难收回[日本天龙版][WAV+CUE]
- 周深《反深代词》[先听版][FLAC/分轨][310.97MB]
- 姜育恒1984《什么时候·串起又散落》台湾复刻版[WAV+CUE][1G]
- 那英《如今》引进版[WAV+CUE][1G]
- 蔡幸娟.1991-真的让我爱你吗【飞碟】【WAV+CUE】
- 群星.2024-好团圆电视剧原声带【TME】【FLAC分轨】