zabbix自動發現監控redis數據庫 原 薦

zabbix自動發現監控redis數據庫與自動發現mongo,mysql的思路差不多。這次彙總完就把模板,腳本上傳到git上。如果公司使用的redis都是6379端口的話,那麼還是建議創建一套模板,然後鏈接到各個服務器即可。如果公司的redis使用的端口比較多,各個都不一樣,那還是自動發現並監控redis比較方便。還是一樣,先來看下監控的效果圖:

上述圖形是使用zabbix的篩選功能彙總在一起的圖片。監控redis的客戶端連接數,使用的內存,實際使用的內存和redis的內存碎片化情況。

 

下面來講講自動發現redis的實現,首先,還是先看下redis自動發現的配置:

探索規則配置完後,同樣的在zabbix agentd端需要添加如下配置然後重啓zabbix_agentd,配置如下:

UserParameter=redis.discover,python /usr/local/zabbix/discover_redis.py

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

#coding:utf-8
import json
import commands

(status, output) = commands.getstatusoutput('''sudo netstat -tlnp|grep 'redis-server'|awk '{print $4}'|awk -F':' '{print $(NF)}'|sort -u''')
outputs = output.split('\n')
ports = []
for port in  outputs:
    ports += [{'{#REDISPORT}': port}]

print json.dumps({'data':ports},sort_keys=True,indent=4)

同樣的,還是使用netstat發現正在監聽的端口,visudo的權限也是需要加入netstat的權限。visudo添加如下:

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

 

探索完端口後,zabbix server就會以端口爲參數向zabbix agentd獲取數據,其中項目原型配置如下:

其中redis.status的鍵值需要在zabbix agentd客戶端進行配置,配置如下:
UserParameter=redis.status[*],sh /usr/local/zabbix/check_redis.sh -k $1 -p $2 (如果有密碼的話,加個-P參數,例如-P 'xxxx')

獲取redis數據的/usr/local/zabbix/check_redis.sh腳本如下,其中-k表示獲取redis info的哪個值,-p表示端口,如果redis有密碼的話,-P參數也需要傳入。

#!/bin/sh
while getopts "p:k:P:" opt
do
        case $opt in
                p ) redis_port=$OPTARG;;
                k ) info_key=$OPTARG;;
                P ) redis_passwd=$OPTARG;;
                ? )
                echo 'parameter is wrong!'
                exit 1;;
        esac
done
if [ ! "${redis_port}" ] || [ ! "${info_key}" ];then
        echo "parameter is null"        
        exit 1
fi

if [ "${redis_passwd}" ];then
        result=`/usr/local/bin/redis-cli -a ${redis_passwd} -p ${redis_port} info|grep "${info_key}:"|cut -d: -f2`
else
        result=`/usr/local/bin/redis-cli -p ${redis_port} info|grep "${info_key}:"|cut -d: -f2`
fi
echo $result

通過以上的配置,就能實現自動發現並監控redis了,監控完把數據添加到篩選裏面,就能得到如圖1的那張數據圖。

 

最後附上本人的網絡課堂地址,如有興趣請點擊: 實踐哥

模板見:https://git.oschina.net/zhuangweihong/ops

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