zabbix根据主机和端口列表自动发现监控远程MongoDB实例
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,在有些情况下,只能使用远程的MongoDB实例而不能登录到MongoDB实例所在的服务器上,这时可以在一台服务器上维护一个远程MongoDB实例的主机和端口列表,然后通过zabbix的低级发现功能去根
千家信息网最后更新 2026年11月03日zabbix根据主机和端口列表自动发现监控远程MongoDB实例
在有些情况下,只能使用远程的MongoDB实例而不能登录到MongoDB实例所在的服务器上,这时可以在一台服务器上维护一个远程MongoDB实例的主机和端口列表,然后通过zabbix的低级发现功能去根据主机和端口自动添加相应的监控。
MongoDB主机和端口发现脚步mongodb_discovery.py
主机和端口列表文件mongodb_servers.txt,文件中存放每个实例的主机,端口信息
10.4.9.112:28018:root:xxxx10.4.9.2:27017:root10.4.9.3:28018
#/usr/bin/python#This script is used to discovery disk on the serverimport subprocessimport jsonargs='''awk -F':' '{print $1":"$2}' /usr/local/zabbix/bin/mongodb_servers.txt'''t=subprocess.Popen(args,shell=True,stdout=subprocess.PIPE).communicate()[0]mongodbs=[]for mongo in t.split('\n'): if len(mongo) != 0: mongodbs.append({'{#MONGO_HOST}':mongo})print json.dumps({'data':mongodbs},indent=4,separators=(',',':'))显示结果:
{ "data":[ { "{#MONGO_HOST}":"192.168.5.7:30000" }, { "{#MONGO_HOST}":"192.168.5.7:30001" }, { "{#MONGO_HOST}":"192.168.5.23:30002" }, { "{#MONGO_HOST}":"192.168.5.23:30003" } ]}2.获取MongoDB端口状态信息脚本discovery_mongodb_status.sh
这里会根据{#MONGO_HOST}传来的值在mongodb_servers.txt文件中找到相应的行,并以冒号 ":" 判断整行的长度,然后使用不同的mongodb连接方式
#This script is used to get discovered mongodb servers status#echo "db.serverStatus().uptime"|mongo 192.168.5.23:30002/admin -uroot -pxxxx#echo "db.serverStatus().mem.mapped"|mongo 192.168.5.23:30002/admin -uroot -pxxx#echo "db.serverStatus().globalLock.activeClients.total"|mongo 192.168.5.23:30002/admin -uroot -pxxx# Macro {#MONGO_INFO} "HOSTNAME:PORT:USERNAME:PASSWORD"#sh discovery_mongodb_status.sh uptime {#MONGO_HOST} #sh discovery_mongodb_status.sh mem mapped {#MONGO_HOST} #sh discovery_mongodb_status.sh globalLock activeClients total {#MONGO_HOST} #one more parametermongo_info=""command_line=""function check_mongo_info() { num=$(echo $mongo_info|awk -F":" '{print NF}') host=$(echo $mongo_info|awk -F":" '{print $1}') port=$(echo $mongo_info|awk -F":" '{print $2}') username=$(echo $mongo_info|awk -F":" '{print $3}') password=$(echo $mongo_info|awk -F":" '{print $4}') case $num in 2) command_line="/data/app_platform/mongodb/bin/mongo $host:$port/admin" ;; 3) command_line="/data/app_platform/mongodb/bin/mongo $host:$port/admin -u$username -p''" ;; 4) command_line="/data/app_platform/mongodb/bin/mongo $host:$port/admin -u$username -p$password" ;; esac }case $# in 2) mongo_info=$(grep $2 /usr/local/zabbix/bin/mongodb_servers.txt) check_mongo_info output=$(/bin/echo "db.serverStatus().$1" |$command_line|sed -n '3p') ;; 3) mongo_info=$(grep $3 /usr/local/zabbix/bin/mongodb_servers.txt) check_mongo_info output=$(/bin/echo "db.serverStatus().$1.$2" |$command_line|sed -n '3p') ;; 4) mongo_info=$(grep $4 /usr/local/zabbix/bin/mongodb_servers.txt) check_mongo_info output=$(/bin/echo "db.serverStatus().$1.$2.$3" |$command_line|sed -n '3p') ;;esac#check if the output contains "NumberLong"if [[ "$output" =~ "NumberLong" ]];then echo $output|sed -n 's/NumberLong(//p'|sed -n 's/)//p'else echo $outputfi显示结果:
$sh discovery_mongodb_status.sh uptime 192.168.5.23:3000223823151$ sh discovery_mongodb_status.sh mem mapped 192.168.5.23:3000246691$ sh discovery_mongodb_status.sh globalLock activeClients total 192.168.5.23:300020
3.添加MongoDB自动发现的zabbix配置文件discovery_mongodb_status.conf
#echo "db.serverStatus().mem.mapped"|mongo admin --host xxxx --port xxx -uroot -pxxxx#echo "db.serverStatus().mem.mapped"|mongo 10.4.9.112:28018/admin -uroot -pxxxx#UserParameter=MongoDB.Status[*],/bin/echo "db.serverStatus().$1.$2" |/data/app_platform/mongodb/bin/mongo admin --port 28018|sed -n '3p'UserParameter=MongoDB.Discovery,/usr/bin/python /usr/local/zabbix/bin/mongodb_discovery.pyUserParameter=MongoDB.Discovery_Status[*],/usr/local/zabbix/bin/discovery_mongodb_status.sh $1 $2 $3 $4
模板参见附件
附件:http://down.51cto.com/data/2365000
端口
主机
实例
文件
信息
服务器
结果
附件
服务
监控
不同
低级
冒号
功能
情况
所在
方式
模板
状态
脚本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
涨乐互联网科技
互联网科技公司税收优惠
关于新基建和互联网科技
奇酷互联网科技
壕鑫互联网络科技
广州紫鲸互联网科技
互联网 科技服务平台
安控科技rtu产品工业互联网
互联网科技与管理
知域互联网科技有限公司大骗子
阿大互联网科技有限公司
中国互联网公司排名锤子科技
烟台灵鸽互联网科技有限公司
卡尔迅互联网科技有限公司
上海同邻互联网科技有限公司规模
张家口科技产业互联网平台
北京天晋互联网科技有限公司
唐山双旺合互联网科技产业园
盐城市攀科互联网科技有限公司
武汉亿视互联网科技有限公司
咖啡
互联网电商科技
人人互联网科技是培训
互联网科技公司的市场部门
坤平互联网科技
米聚互联网科技南京有限公司排面
黑科技 体验场景 互联网大会
艺电能源互联网科技有限公司招聘
银川新华互联网科技学校原画
互联网科技大会大佬