mongodb有db.serverStatus()命令,可以查看mongodb的運行狀態(tài),那么zabbix就可以調(diào)用這個命令實現(xiàn)mongodb的監(jiān)控。
一、db.serverStatus()命令的使用
注:只有超級管理員賬號才有權(quán)限使用此命令
1、查看mongodb服務狀態(tài)
echo "db.serverStatus()" | mongo --port 37485 -u username -p 'password' --authenticationDatabase 'admin'
2、查看mongodb使用內(nèi)存情況
echo "db.serverStatus().mem" | mongo --port 37485 -u username -p 'password' --authenticationDatabase 'admin'
3、查看mongodb連接數(shù)
echo "db.serverStatus().connections" | mongo --port 37485 -u username -p 'password' --authenticationDatabase 'admin'
二、創(chuàng)建監(jiān)控配置文件
1、編寫mongodb監(jiān)控配置文件
vim /etc/zabbix/zabbix_agentd.d/mongodb.confUserParameter=MongoDB.status[*],/bin/echo "db.serverStatus().$1" |/data/mongodb/bin/mongo --port 37485 -u username -p 'password' --authenticationDatabase 'admin' | grep "$2" | awk -F ' : ' '{print $$2}' | awk -F ',' '{print $$1}'UserParameter=MongoDB.ok,/bin/echo "db.serverStatus().ok" | /data/mongodb/bin/mongo --port 37485 -u username -p 'password' --authenticationDatabase 'admin' | sed -n '5p'UserParameter=MongoDB.connections[*],/bin/echo "db.serverStatus().connections.$1" | /data/mongodb/bin/mongo
注:使用超級管理員賬號
2、重啟zabbix-agent
systemctl restart zabbix-agent
3、在zabbix server端測試
/data/zabbix/bin/zabbix_get -s xxx.xxx.xxx.xxx -p 10050 -k "MongoDB.status[mem,virtual]"/data/zabbix/bin/zabbix_get -s xxx.xxx.xxx.xxx -p 10050 -k "MongoDB.connections[available]"/data/zabbix/bin/zabbix_get -s xxx.xxx.xxx.xxx -p 10050 -k "MongoDB.ok"
三、創(chuàng)建監(jiān)控模板
1、添加監(jiān)控模板
2、創(chuàng)建應用集
注:根據(jù)自己要監(jiān)控的項創(chuàng)建應用集
3、創(chuàng)建監(jiān)控項
注:請根據(jù)自己要監(jiān)控的子項創(chuàng)建,將要監(jiān)控的子項一一創(chuàng)建好
4、創(chuàng)建觸發(fā)器
5、創(chuàng)建監(jiān)控圖形
新聞熱點
疑難解答
圖片精選