千家信息网

mongodb监控脚本

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,脚本涵盖两种监控mongo的方法:使用自带的mongostat工具查看,各个监控项的位置可能要按实际的mongostat输出进行调整;进入admin库,查看具体状态信息,可能需要验证。完整步骤:1.创
千家信息网最后更新 2025年01月20日mongodb监控脚本

脚本涵盖两种监控mongo的方法:使用自带的mongostat工具查看,各个监控项的位置可能要按实际的mongostat输出进行调整;进入admin库,查看具体状态信息,可能需要验证。


完整步骤:

1.创建用于监控的用户角色:mongo用户的权限按用户角色进行划分

> use admin > db.getRoles()> db.createRole(    { role:"mongostatRole",     privileges:[{resource:{cluster:true},actions:["serverStatus"]}],     roles:[]}    )            //建立一个使用mongostat命令权限的用户角色

2.创建系统监控角色

>  db.getUsers() > db.createUser(    { user:"dbmon",     pwd:"password",     roles:[{role:"mongostatRole",db:"admin"}]}    )

3.编写脚本,mongodb_sts.sh

#!/bin/bashhost="127.0.0.1"passwd="password"rst=''case "$1" in    conn)        rst=`mongostat -n 1 -u dbbak -p $passwd --authenticationDatabase=admin|awk 'NR==2 {print $(NF-1)}'`        ;;    dirty)        rst=`mongostat -n 1 -u dbbak -p $passwd --authenticationDatabase=admin|awk -F[\ ]+ 'NR==2 {print $8}'`        ;;    used)        rst=`mongostat -n 1 -u dbbak -p $passwd --authenticationDatabase=admin|awk -F[\ ]+ 'NR==2 {print $9}'`        ;;    qr)        rst=`mongostat -n 1 -u dbbak -p $passwd --authenticationDatabase=admin|awk -F[\ \|]+ 'NR==2 {print $(NF-7)}'`        ;;    qw)        rst=`mongostat -n 1 -u dbbak -p $passwd --authenticationDatabase=admin|awk -F[\ \|]+ 'NR==2 {print $(NF-6)}'`        ;;    res)        res=$(echo "db.serverStatus().mem" | mongo -u dbbak -p $passwd admin|awk -F[,\ ] '/"resident"/{print $3}')        rst=$[res*1024*1024]        ;;    vsize)        resize=$(echo "db.serverStatus().mem" | mongo -u dbbak -p $passwd admin|awk -F[,\ ] '/"virtual"/{print $3}')        rst=$[resize*1024*1024]        ;;    *)        echo "aaaaaaaaaaaa"#       exit 5esacif [ -z $rst ];then        echo 0else        echo $rstfi

4.脚本应用:cacti、zabbix等

0