1. 程式人生 > 其它 >五、redis6 叢集 zabbix監控【Redis叢集監控資料採集】

五、redis6 叢集 zabbix監控【Redis叢集監控資料採集】

環境:繼 redis6 叢集 zabbix監控【zabbix server、zabbix agent 安裝】

agent:【192.168.109.139、192.168.109.140】

一、新增redis資料採集指令碼【建立redis監控指令碼】具體依據需要哪些資料自己家

#!/bin/bash
REDISCLI='/apprun/redis/bin/redis-cli'
HOST='192.168.109.139'
PORT=7000
PASS='wang!321'

if [[ $# == 1 ]];then
        case $1 in
        cluster_state)
                result
=`$REDISCLI -c -h $HOST -p $PORT -a $PASS cluster info 2>/dev/null | grep -w "cluster_state" | awk -F':' '{print $2}'| grep -c ok` echo $result ;; cluster_slots_assigned) result=`$REDISCLI -c -h $HOST -p $PORT -a $PASS cluster info 2>/dev/null
| grep -w "cluster_slots_assigned" | awk -F':' '{print $2}'` echo $result ;; cluster_slots_ok) result=`$REDISCLI -c -h $HOST -p $PORT -a $PASS cluster info 2>/dev/null | grep -w "cluster_slots_ok" | awk -F':' '{print $2}'`
echo $result ;; cluster_slots_pfail) result=`$REDISCLI -c -h $HOST -p $PORT -a $PASS cluster info 2>/dev/null | grep -w "cluster_slots_pfail" | awk -F':' '{print $2}'` echo $result ;; cluster_slots_fail) result=`$REDISCLI -c -h $HOST -p $PORT -a $PASS cluster info 2>/dev/null | grep -w "cluster_slots_fail" | awk -F':' '{print $2}'` echo $result ;; cluster_known_nodes) result=`$REDISCLI -c -h $HOST -p $PORT -a $PASS cluster info 2>/dev/null | grep -w "cluster_known_nodes" | awk -F':' '{print $2}'` echo $result ;; cluster_size) result=`$REDISCLI -c -h $HOST -p $PORT -a $PASS cluster info 2>/dev/null | grep -w "cluster_size" | awk -F':' '{print $2}'` echo $result ;; cluster_current_epoch) result=`$REDISCLI -c -h $HOST -p $PORT -a $PASS cluster info 2>/dev/null | grep -w "cluster_current_epoch" | awk -F':' '{print $2}'` echo $result ;; cluster_my_epoch) result=`$REDISCLI -c -h $HOST -p $PORT -a $PASS cluster info 2>/dev/null | grep -w "cluster_my_epoch" | awk -F':' '{print $2}'` echo $result ;; cluster_stats_messages_ping_sent) result=`$REDISCLI -c -h $HOST -p $PORT -a $PASS cluster info 2>/dev/null | grep -w "cluster_stats_messages_ping_sent" | awk -F':' '{print $2}'` echo $result ;; cluster_stats_messages_pong_sent) result=`$REDISCLI -c -h $HOST -p $PORT -a $PASS cluster info 2>/dev/null | grep -w "cluster_stats_messages_pong_sent" | awk -F':' '{print $2}'` echo $result ;; cluster_stats_messages_sent) result=`$REDISCLI -c -h $HOST -p $PORT -a $PASS cluster info 2>/dev/null | grep -w "cluster_stats_messages_sent" | awk -F':' '{print $2}'` echo $result ;; cluster_stats_messages_ping_received) result=`$REDISCLI -c -h $HOST -p $PORT -a $PASS cluster info 2>/dev/null | grep -w "cluster_stats_messages_ping_received" | awk -F':' '{print $2}'` echo $result ;; cluster_stats_messages_pong_received) result=`$REDISCLI -c -h $HOST -p $PORT -a $PASS cluster info 2>/dev/null | grep -w "cluster_stats_messages_pong_received" | awk -F':' '{print $2}'` echo $result ;; cluster_stats_messages_received) result=`$REDISCLI -c -h $HOST -p $PORT -a $PASS cluster info 2>/dev/null | grep -w "cluster_stats_messages_received" | awk -F':' '{print $2}'` echo $result ;; *) echo -e "\033[33mUsage: $0 {cluster_state|cluster_slots_assigned|cluster_slots_ok|cluster_slots_pfail|cluster_slots_fail|cluster_known_nodes|cluster_size|cluster_current_epoc h|cluster_known_nodes|cluster_size|cluster_current_epoch|cluster_my_epoch|cluster_stats_messages_ping_sent|cluster_stats_messages_pong_sent|cluster_stats_messages_sent|cluster_stats_messages _ping_received|cluster_stats_messages_pong_received|cluster_stats_messages_received}\033[0m" ;; esac fi
vim /etc/zabbix/zabbix_agentd.d/redis_status.sh

chmod +x /etc/zabbix/zabbix_agentd.d/redis_status.sh

二、建立redis監控配置檔案

vim /etc/zabbix/zabbix_agentd.d/redis.conf

UserParameter=Redis.status[*],/etc/zabbix/zabbix_agentd.d/redis_status.sh $1
UserParameter=Redisfile,/apprun/redis/bin/redis-cli -h 192.168.109.139 -p 7000 -c -a 'wang!321' cluster nodes 2>/dev/null | awk -F ',' '{print $2}' | grep -c 'fail'

重啟zabbix-agent

systemctl restart zabbix-agent.service

在zabbix server端測試【192.168.109.137】

yum install -y zabbix-get

zabbix_get -s 192.168.109.139 -p 10050 -k "Redis.status[cluster_slots_ok]"

三、建立

1.建立模板

2、建立應用集Applications隨意起個名字

3.建立監控項等等...Items 觸發器Triggers 畫圖Graphs 自動發現規則Discovery 這裡就挑指令碼中的三個值隨意操作一下

繫結模板、配置告警

這裡只是針對redis叢集監控自己想要監控的資料做配置(prometheus比較適合監控redis叢集);其他自己環境想要監控的資料大致也是這麼個流程;至於redis常見資料監控可以選擇zabbix自帶的模板Template DB Redis當然依據自己的redis環境修改: