腳本涵蓋兩種監(jiān)控mongo的方法:使用自帶的mongostat工具查看,各個(gè)監(jiān)控項(xiàng)的位置可能要按實(shí)際的mongostat輸出進(jìn)行調(diào)整;進(jìn)入admin庫,查看具體狀態(tài)信息,可能需要驗(yàn)證。
10年積累的成都網(wǎng)站制作、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有鄠邑免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
完整步驟:
1.創(chuàng)建用于監(jiān)控的用戶角色:mongo用戶的權(quán)限按用戶角色進(jìn)行劃分
> use admin > db.getRoles() > db.createRole( { role:"mongostatRole", privileges:[{resource:{cluster:true},actions:["serverStatus"]}], roles:[]} ) //建立一個(gè)使用mongostat命令權(quán)限的用戶角色
2.創(chuàng)建系統(tǒng)監(jiān)控角色
> db.getUsers() > db.createUser( { user:"dbmon", pwd:"password", roles:[{role:"mongostatRole",db:"admin"}]} )
3.編寫腳本,MongoDB_sts.sh
#!/bin/bash host="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 5 esac if [ -z $rst ];then echo 0 else echo $rst fi
4.腳本應(yīng)用:cacti、zabbix等