xmxm76 发表于 2018-1-1 10:06:49

Zabbix 监控mongodb数据库状态

为了能实时了解运行的状态,需要增加zabbix对mongodb的运行状态监控。
mongodb默认安装情况下可以运行
echo "db.serverStatus()" | mongo 来获取mongodb的运行状态
# echo "db.serverStatus()" | mongo 127.0.0.1:30000
点击(此处)折叠或打开  

MongoDB shell version: 2.x.x  connecting to:
10.0.0.12:40000/test  {
"host" : "localhost.localdomain:30000","version" : "2.x.x","process" : "mongos","uptime" : 1659778,"localTime" : ISODate("2014-06-04T06:45:05.691Z"),"mem" : {"resident" : 14,"virtual" : 280,"supported" : true  },
"connections" : {"current" : 107,"available" : 8085  },
"extra_info" : {"note" : "fields vary by platform","heap_usage_bytes" : 902192,"page_faults" : 0  },
"opcounters" : {"insert" : 5228846,"query" : 833941,"update" : 15,"delete" : 13,"getmore" : 93,"command" : 35558  },
"ops" : {"sharded" : {"insert" : 0,"query" : 0,"update" : 0,"delete" : 0,"getmore" : 0,"command" : 0  },
"notSharded" : {"insert" : 5228846,"query" : 833941,"update" : 15,"delete" : 13,"getmore" : 93,"command" : 35558  }
  },
"shardCursorType" : {"ParallelSort" : 833942  },
"asserts" : {"regular" : 0,"warning" : 0,"msg" : 0,"user" : 0,"rollovers" : 0  },
"network" : {"bytesIn" : 2218644824,"bytesOut" : 540032120,"numRequests" : 6101134  },
"ok" : 1  }
  bye
  

  因此可以考虑使用zabbix的UserParameter自定义监控,对MongoDB进行监控

添加MongoDB监控
1、zabbix客户端配置文件zabbix_agentd.conf文件,添加如下内容:  

UserParameter=MongoDB.Status
[*],/bin/echo "db.serverStatus().$1" | /usr/bin/mongo127.0.0.1:30000 | grep "$2"|awk -F: '{print $$2}'|awk -F, '{print $$1}'  

  上面是通过db.serverStatus()来获取服务器状态

其中$1表示第一个参数
grep $2的时候要加上锚地符 "\<" 和 "\>",因为有的对象名可能部分相同
使用自定义的命令测试获取的结果
# echo "db.serverStatus().opcounters" | mongo admin  

MongoDB shell version: 2.6.3  
connecting to: admin
  
{
"insert" : 6,"query" : 138,"update" : 1,"delete" : 1,"getmore" : 0,"command" : 9884  
}
  
bye
  

  测试用户自定义key是否生效

./zabbix_get -s 127.0.0.1 -k MongoDB.Status
2、重新启动zabbix客户端
systemctl restart zabbix-agent
3、添加MongoDB监控模板
导入模板
选择configuration-template 右上角import,导入模板“zbx_mongodb-monitor_templates.xml”,稍后会放在文章的最下面附件中供大家下载

点击导入import选择模板的存放位置,点击下面的导入

导入成功后可以到configuration-templete里查看新导入的模板MongoDB Moniting

4.模板关联mongodb主机
在装有MongoDB的服务器上应用该模板:
configuration->host,选择一台装有MongoDB的服务器,在右边的“Linked templates”,添加MongoDB监控模板,然后保存

导入成功以后可以在monitoring-lastdata里查看最新数据。稍等几分钟在monitoring的graph里可以看到关联主机的出图

具体出图图例如下

页: [1]
查看完整版本: Zabbix 监控mongodb数据库状态