利用zabbix自動發現監控mongo數據庫

但如果公司使用mongo的端口如果不一致的話,那建議使用zabbix的自動發現的功能,自動發現mongo監聽的端口,並對它進行相關數據的收集。

先看一下效果圖,
教你如何利用zabbix自動發現監控mongo數據庫
在這裏插入圖片描述
此監控圖是zabbix的篩選功能可能把相關的圖整合到一個頁面裏面去。

具體的自動發現實現如下:
教你如何利用zabbix自動發現監控mongo數據庫
在這裏插入圖片描述
探索規則配置如上,機器上的zabbix agent配置如下:

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

其中/usr/local/zabbix/discover_mongo.py爲自動發現的腳本,腳本內容如下:

#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)

使用系統命令netstat把監聽的端口篩選出來,然後以json的格式進行輸出。定義到此就可以自動發現zabbix監聽的端口。

注意:netstat一般zabbix用戶沒有權限,需要visudo進行對應的設置,此腳本可能得針對自己的環境進行相對的調整。visudo添加配置如下:

zabbix ALL= NOPASSWD: /bin/netstat
Defaults:zabbix   !requiretty

探索完端口後,zabbix server就需要以端口爲其中一個參數向zabbix agent取數據,其中項目原型配置如下:
教你如何利用zabbix自動發現監控mongo數據庫
在這裏插入圖片描述
如果返回的{#MONGOPORT}有多個的話,那監控項目就乘以幾。

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

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

使用一個腳本傳入參數來獲取mongo的一些數據收集,後續可直接擴展此腳本(-p代表端口),mongo的serverStatus有多個參數,採集的就用到opcounters等,-k和-K能具體獲取其數值。其中腳本如下:

#!/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}'

部署完一個模板,把模板關聯到mongo的機器,就能收集相關的操作信息。在模板上再添加一個圖形原型,如下:
在這裏插入圖片描述
模板應用完如果沒問題就可以在zabbix的篩選中把mongo集羣的數據匯在一個網頁上進行查看。

參考鏈接 :

利用zabbix自動發現監控mongo數據庫 https://www.jianshu.com/p/3e4d9535678c

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章