zabbix根据主机和端口列表自动发现监控远程MongoDB实例
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,在有些情况下,只能使用远程的MongoDB实例而不能登录到MongoDB实例所在的服务器上,这时可以在一台服务器上维护一个远程MongoDB实例的主机和端口列表,然后通过zabbix的低级发现功能去根
千家信息网最后更新 2024年09月22日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安全错误
数据库的锁怎样保障安全
财务软件开发的验收指标
国内免费服务器
公司数据库管理主要工作
网络安全学习记录表
自学网络安全语言
不能联街数据库 10038
菠萝软件开发
网站模板 数据库
消防和网络安全绘画
加拿大学术期刊数据库
维护网络安全南方日报评论
海南统招专升本数据库试题
创意信息服务器江西
金融信用数据库管理办法
公司网络安全考核机制
网络安全宣传主题班会动态
违章处理自助系统软件开发
咸宁网络安全课程
以网络安全为主题
智能售货机软件开发多少钱
中纺互联网科技公司
dell服务器如何设置机箱风扇
数据库支持多人操作
代理服务器拒绝访问
ios软件开发简介
SQL数据库进行修改
一台服务器处理多少并发
5G网络技术热点问题
先锋机器人软件开发包
网络安全工作流编排