zabbix監控redis相關指標,支持info下面全部參數

最近在處理zabbix 監控,監控redis時發現官方並無提供相關的模板,本身參照以前mysql的監控改寫了一個。
主要支持 info命令下全部參數,自動發現有key的數據庫,並提供info中的參數數據
特色:較爲通用,代碼簡潔
須要設置zabbix agent 自定義腳本,具體設置方式不作說明,請百度
具體腳本以下:
check_redis.shmysql

#!/bin/bash
# -------------------------------------------------------------------------------
# FileName:    check_redis.sh
# Revision:    1.0
# Date:        2019-3-21
# Author:      xsj
# Email:       soft_xiang@qq.com
# Description:
# Notes:       ~
# -------------------------------------------------------------------------------
# Copyright:   2019 (c) xsj
# License:     GPL

REDISPATH='/usr/local/bin/redis-cli'
HOST='127.0.0.1'
PORT='6379'
PASSWD='111111'
REDIS_CMD="$REDISPATH -h $HOST -p $PORT -a $PASSWD "

# 參數是否正確
if [[ $# -gt 2 || $# -lt 1 ]];then
    echo "arg error!";
    exit 1;
fi

if [[ $# == 1 ]];then
    case $1 in
    Discovery)
        array=(`$REDIS_CMD info 2>/dev/null|grep ":keys="|awk -F: '{ print $1}'`)
        length=${#array[@]}
        printf "{\n"
        printf  '\t'"\"data\":["
        for ((i=0;i<$length;i++))
        do
                    printf '\n\t\t{'
                    printf "\"{#DB}\":\"${array[$i]}\"}"
                    if [ $i -lt $[$length-1] ];then
                            printf ','
                    fi
        done
        printf  "\n\t]\n"
        printf "}\n"    
    ;;
    Ping)
        $REDIS_CMD ping|grep -c PONG ;;
    Status_*)
        $REDIS_CMD info 2>/dev/null| grep "${1#*Status_}"|awk 'NR==1'|awk -F: '{print $NF}' ;;
    *)
        echo "Usage:$0 (Ping|Status_key);其中 Status_ key爲info中的key,注意大小寫" ;;
    esac
elif [[ $# == 2 ]];then
    param1="${1#*Status_}";
    case $2 in
    keys)
        $REDIS_CMD info 2>/dev/null |grep -w "$param1"|grep -w "$2"| awk -F'=|,' '{print $2}' ;;
    expires)
        $REDIS_CMD info 2>/dev/null |grep -w "$param1"|grep -w "$2"| awk -F'=|,' '{print $4}' ;;
    avg_ttl)
        $REDIS_CMD info 2>/dev/null |grep -w "$param1"|grep -w "$2"| awk -F'=|,' '{print $6}' ;;
    *)
        echo "Usage:$0{db0 keys|db0 expires|db0 avg_ttl}" ;;
    esac
fi

status_redis.confweb

#redis db自動發現
UserParameter=redis.discovery,/etc/zabbix/scripts/check_redis.sh Discovery
#監控redis狀態,咱們能夠根據這個參數對應的監控項建立redis狀態觸發器。
UserParameter=redis.ping,/etc/zabbix/scripts/check_redis.sh Ping
#狀態信息
UserParameter=redis.status[*],/etc/zabbix/scripts/check_redis.sh Status_$1 $2

web管理端配置模板redis

clipboard.png

clipboard.png

clipboard.png

只設置了部分,全部info 下的參數都支持sql

clipboard.png

相關文章
相關標籤/搜索