zabbix 监控mongodb

#!/bin/sh
# 获取mongodb 状态信息
# Cur_Dir: 当前脚本所在目录
# param: 参数
# mem/ version / network /opcounters /connections
declare -A map; #声明一个Map的数据类型
map[G]=1000000000
map[M]=1000000
map[K]=1000
count=$#;
if [[ $count -lt 3 ]] ; then
	exit;
fi;
if [[ $count == 3 ]] ; then
	val=`echo "db.serverStatus().$3" |$Agent_Home/scripts/mongo  -host $1:$2 | awk 'NR==3{print}'`;
	echo $val;
else
	case $3 in
                connections)
                        if [[ totalCreated == $4 ]] ; then
                                val=`echo "db.serverStatus().$3.$4" |$Agent_Home/scripts/mongo  -host $1:$2 | awk 'NR==3{print}' | awk -F"(" '{print $2}'| awk -F")" '{print $1}'`;
                                echo $val;
                        else
                                val=`echo "db.serverStatus().$3.$4" |$Agent_Home/scripts/mongo  -host $1:$2 | awk 'NR==3{print}'`;
                        	echo $val;
                        fi;
                        ;; 
		pid)
			processid=`echo "db.serverStatus().$3" |$Agent_Home/scripts/mongo  -host $1:$2 |awk 'NR==3{print}'|awk -F"(" '{print $2}'|awk -F")" '{print $1}'`;
			val=`ps -e -o pid,uname,pcpu,pmem,comm | grep mongod|grep $processid|awk -F" " '{print $'$4'}'`;
			echo $val;
			;;
		collections)
			val=`echo "db.stats().$3" |$Agent_Home/scripts/mongo  -host $1:$2 $4|awk 'NR==3{print}'`;
			if [[ $val > 2 ]] ; then
				echo `expr $val - 2`;
			else
				echo 0;
			fi;
			;;
		*)
			val=`echo "db.serverStatus().$3.$4" |$Agent_Home/scripts/mongo  -host $1:$2 | awk 'NR==3{print}'`;
			echo $val;
			;;
	esac;
fi


转载于:https://my.oschina.net/gmd/blog/665638

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值