怎么使用Zabbix的自動(dòng)發(fā)現(xiàn)來監(jiān)控mongo數(shù)據(jù)庫

這篇文章主要為大家展示了“怎么使用Zabbix的自動(dòng)發(fā)現(xiàn)來監(jiān)控mongo數(shù)據(jù)庫”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“怎么使用Zabbix的自動(dòng)發(fā)現(xiàn)來監(jiān)控mongo數(shù)據(jù)庫”這篇文章吧。

成都創(chuàng)新互聯(lián)為客戶提供專業(yè)的網(wǎng)站制作、做網(wǎng)站、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁設(shè)計(jì)、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、手機(jī)網(wǎng)站制作等網(wǎng)站方面業(yè)務(wù)。

監(jiān)控mongo寫個(gè)模板其實(shí)挺快的,如果公司每個(gè)mongo使用的端口都一致的話,就可直接建立一套模板,然后這個(gè)模板鏈接到各個(gè)服務(wù)器上即可。但如果公司使用mongo的端口如果不一致的話,那建議使用zabbix的自動(dòng)發(fā)現(xiàn)的功能,自動(dòng)發(fā)現(xiàn)mongo監(jiān)聽的端口,并對它進(jìn)行相關(guān)數(shù)據(jù)的收集。

先看一下效果圖

怎么使用Zabbix的自動(dòng)發(fā)現(xiàn)來監(jiān)控mongo數(shù)據(jù)庫

此監(jiān)控圖是zabbix的篩選功能可能把相關(guān)的圖整合到一個(gè)頁面里面去。

具體的自動(dòng)發(fā)現(xiàn)實(shí)現(xiàn)如下:

怎么使用Zabbix的自動(dòng)發(fā)現(xiàn)來監(jiān)控mongo數(shù)據(jù)庫

探索規(guī)則配置如上,機(jī)器上的zabbix agent配置如下:

UserParameter=mongo.discover,python /usr/local/zabbix/discover_mongo.py

其中/usr/local/zabbix/discover_mongo.py為自動(dòng)發(fā)現(xiàn)的腳本,腳本內(nèi)容如下:

#coding:utf-8 import simplejson as json import commands  (status, output) = commands.getstatusoutput('''sudo netstat -tlnp|grep 'mongod'|awk '{print $4}'|awk -F':' '{print $(NF)}'|sort -u|grep -v "^28"''') outputs = output.split('\n') ports = [] for port in  outputs:     ports += [{'{#MONGOPORT}': port}]  print json.dumps({'data':ports},sort_keys=True,indent=4)

使用系統(tǒng)命令netstat把監(jiān)聽的端口篩選出來,然后以json的格式進(jìn)行輸出。定義到此就可以自動(dòng)發(fā)現(xiàn)zabbix監(jiān)聽的端口。

注意:netstat一般zabbix用戶沒有權(quán)限,需要visudo進(jìn)行對應(yīng)的設(shè)置,此腳本可能得針對自己的環(huán)境進(jìn)行相對的調(diào)整。

探索完端口后,zabbix server就需要以端口為其中一個(gè)參數(shù)向zabbix agent取數(shù)據(jù),其中項(xiàng)目原型配置如下:

怎么使用Zabbix的自動(dòng)發(fā)現(xiàn)來監(jiān)控mongo數(shù)據(jù)庫

如果返回的{#MONGOPORT}有多個(gè)的話,那監(jiān)控項(xiàng)目就乘以幾。

其中mongo.status的定義如下(此定義還是zabbix agent下):

UserParameter=mongo.status[*],sh /usr/local/zabbix/check_mongo.sh -p $1 -k $2  -K $3

使用一個(gè)腳本傳入?yún)?shù)來獲取mongo的一些數(shù)據(jù)收集,后續(xù)可直接擴(kuò)展此腳本(-p代表端口),mongo的serverStatus有多個(gè)參數(shù),采集的就用到opcounters等,-k和-K能具體獲取其數(shù)值。其中腳本如下:

#!/bin/sh while getopts "p:k:K:" opt do         case $opt in                 p ) mongo_port=$OPTARG;;                 k ) key1=$OPTARG;;                 K ) key2=$OPTARG;;                 ? )                 echo 'parameter is wrong!'                 exit 1;;         esac done  if [ ! "${mongo_port}" ] || [ ! "${key1}" ] || [ ! "${key2}" ];then         echo "parameter is null"                 exit 1 fi  echo "db.serverStatus().${key1}"|mongo --port=${mongo_port}|sed 's/,/\r\n/g'|grep "${key2}" |awk -F':|,|}' '{print $2}'

部署完一個(gè)模板,把模板關(guān)聯(lián)到mongo的機(jī)器,就能收集相關(guān)的操作信息。在模板上再添加一個(gè)圖形原型,如下:

怎么使用Zabbix的自動(dòng)發(fā)現(xiàn)來監(jiān)控mongo數(shù)據(jù)庫

模板應(yīng)用完如果沒問題就可以在zabbix的篩選中把mongo集群的數(shù)據(jù)匯在一個(gè)網(wǎng)頁上進(jìn)行查看。

以上是“怎么使用Zabbix的自動(dòng)發(fā)現(xiàn)來監(jiān)控mongo數(shù)據(jù)庫”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章標(biāo)題:怎么使用Zabbix的自動(dòng)發(fā)現(xiàn)來監(jiān)控mongo數(shù)據(jù)庫
網(wǎng)站網(wǎng)址:http://muchs.cn/article8/jpjsop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、商城網(wǎng)站、電子商務(wù)、營銷型網(wǎng)站建設(shè)、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)