• Zabbix 监控redis


    Zabbix 监控redis

    1.监控脚本,github上的

    [root@localhost ~]# cat /etc/zabbix/script/redis-status.sh 
    #!/bin/bash
    
    #Redis status
    
    METRIC="$2"
    SERV="$1"
    DB="$3"
    
    PORT="6379"
    
    if [[ -z "$1" ]]; then
        echo "Please set server"
        exit 1
    fi
    
    CACHETTL="55" 
    CACHE="/tmp/redis-status-`echo $SERV | md5sum | cut -d" " -f1`.cache"
    
    if [ -s "$CACHE" ]; then
        TIMECACHE=`stat -c"%Z" "$CACHE"`
    else
        TIMECACHE=0
    fi
    
    TIMENOW=`date '+%s'`
    
    if [ "$(($TIMENOW - $TIMECACHE))" -gt "$CACHETTL" ]; then
        (echo -en "INFO
    "; sleep 1;) | nc -w1 $SERV $PORT > $CACHE || exit 1
    fi
    
    FIRST_ELEMENT=1
    function json_head {
        printf "{";
        printf ""data":[";    
    }
    
    function json_end {
        printf "]";
        printf "}";
    }
    
    function check_first_element {
        if [[ $FIRST_ELEMENT -ne 1 ]]; then
            printf ","
        fi
        FIRST_ELEMENT=0
    }
    
    function databse_detect {
        json_head
        for dbname in $LIST_DATABSE
        do
            local dbname_t=$(echo $dbname| sed 's!
    !!g')
            check_first_element
            printf "{"
            printf ""{#DBNAME}":"$dbname_t""
            printf "}"
        done
        json_end
    }
    
    case $METRIC in
        'redis_version')
            cat $CACHE | grep "redis_version:" | cut -d':' -f2
            ;;            
        'redis_git_sha1')
            cat $CACHE | grep "redis_git_sha1:" | cut -d':' -f2
            ;;
        'redis_git_dirty')
            cat $CACHE | grep "redis_git_dirty:" | cut -d':' -f2
            ;;
        'redis_mode')
            cat $CACHE | grep "redis_mode:" | cut -d':' -f2
            ;;
        'arch_bits')
            cat $CACHE | grep "arch_bits:" | cut -d':' -f2
            ;;
        'multiplexing_api')
            cat $CACHE | grep "multiplexing_api:" | cut -d':' -f2
            ;;
        'gcc_version')
            cat $CACHE | grep "gcc_version:" | cut -d':' -f2
            ;;
        'uptime_in_seconds')
            cat $CACHE | grep "uptime_in_seconds:" | cut -d':' -f2
            ;;
        'lru_clock')
            cat $CACHE | grep "lru_clock:" | cut -d':' -f2
            ;;            
        'connected_clients')
            cat $CACHE | grep "connected_clients:" | cut -d':' -f2
            ;;
        'client_longest_output_list')
            cat $CACHE | grep "client_longest_output_list:" | cut -d':' -f2
            ;;
        'client_biggest_input_buf')
            cat $CACHE | grep "client_biggest_input_buf:" | cut -d':' -f2
            ;;
        'used_memory')
            cat $CACHE | grep "used_memory:" | cut -d':' -f2
            ;;
        'used_memory_peak')
            cat $CACHE | grep "used_memory_peak:" | cut -d':' -f2
            ;;        
        'mem_fragmentation_ratio')
            cat $CACHE | grep "mem_fragmentation_ratio:" | cut -d':' -f2
            ;;
        'loading')
            cat $CACHE | grep "loading:" | cut -d':' -f2
            ;;            
        'rdb_changes_since_last_save')
            cat $CACHE | grep "rdb_changes_since_last_save:" | cut -d':' -f2
            ;;
        'rdb_bgsave_in_progress')
            cat $CACHE | grep "rdb_bgsave_in_progress:" | cut -d':' -f2
            ;;
        'aof_rewrite_in_progress')
            cat $CACHE | grep "aof_rewrite_in_progress:" | cut -d':' -f2
            ;;
        'aof_enabled')
            cat $CACHE | grep "aof_enabled:" | cut -d':' -f2
            ;;
        'aof_rewrite_scheduled')
            cat $CACHE | grep "aof_rewrite_scheduled:" | cut -d':' -f2
            ;;
        'total_connections_received')
            cat $CACHE | grep "total_connections_received:" | cut -d':' -f2
            ;;            
        'total_commands_processed')
            cat $CACHE | grep "total_commands_processed:" | cut -d':' -f2
            ;;
        'instantaneous_ops_per_sec')
            cat $CACHE | grep "instantaneous_ops_per_sec:" | cut -d':' -f2
            ;;
        'rejected_connections')
            cat $CACHE | grep "rejected_connections:" | cut -d':' -f2
            ;;
        'expired_keys')
            cat $CACHE | grep "expired_keys:" | cut -d':' -f2
            ;;
        'evicted_keys')
            cat $CACHE | grep "evicted_keys:" | cut -d':' -f2
            ;;
        'keyspace_hits')
            cat $CACHE | grep "keyspace_hits:" | cut -d':' -f2
            ;;        
        'keyspace_misses')
            cat $CACHE | grep "keyspace_misses:" | cut -d':' -f2
            ;;
        'pubsub_channels')
            cat $CACHE | grep "pubsub_channels:" | cut -d':' -f2
            ;;        
        'pubsub_patterns')
            cat $CACHE | grep "pubsub_patterns:" | cut -d':' -f2
            ;;             
        'latest_fork_usec')
            cat $CACHE | grep "latest_fork_usec:" | cut -d':' -f2
            ;; 
        'role')
            cat $CACHE | grep "role:" | cut -d':' -f2
            ;;
        'connected_slaves')
            cat $CACHE | grep "connected_slaves:" | cut -d':' -f2
            ;;          
        'used_cpu_sys')
            cat $CACHE | grep "used_cpu_sys:" | cut -d':' -f2
            ;;  
        'used_cpu_user')
            cat $CACHE | grep "used_cpu_user:" | cut -d':' -f2
            ;;
        'used_cpu_sys_children')
            cat $CACHE | grep "used_cpu_sys_children:" | cut -d':' -f2
            ;;             
        'used_cpu_user_children')
            cat $CACHE | grep "used_cpu_user_children:" | cut -d':' -f2
            ;; 
        'key_space_db_keys')
            cat $CACHE | grep $DB:|cut -d':' -f2|awk -F, '{print $1}'|cut -d'=' -f2 
            ;;        
        'key_space_db_expires')
            cat $CACHE | grep $DB:|cut -d':' -f2|awk -F, '{print $2}'|cut -d'=' -f2 
            ;;
        'list_key_space_db')
            LIST_DATABSE=`cat $CACHE | grep '^db.:'|cut -d: -f1`
            databse_detect
            ;;                                                     
        *)   
            echo "Not selected metric"
            exit 0
            ;;
    esac

    2.看看效果

  • 相关阅读:
    [QML] Connections元素介绍
    Common Lisp语言快速入门
    DataGrid模板列取值问题
    DataGrid 中使用 复选框(CheckBox) 删除纪录
    SQL SELECT INTO
    SQL中Case的使用方法(上篇)
    SQL中Case的使用方法(下篇)
    C# ArrayList的用法
    关于 <customErrors> 标记的“mode”属性设置为“Off”的问题的解决方案
    SQL SERVER 中identity
  • 原文地址:https://www.cnblogs.com/caoguo/p/5018487.html
Copyright © 2020-2023  润新知