Zabbix 监控redis

1.监控脚本,github上的

[[email protected] ~]# 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\r\n"; 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!\n!!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.看看效果

时间: 2024-12-30 11:05:48

Zabbix 监控redis的相关文章

Redis 学习(Zabbix 监控Redis)

前面redis的配置文件盒常用命令.redis info信息都解释完了,接下来就是监控我们的redis了,我使用的是zabbix监控软件,所有在这里我在这里详细介绍下怎么设置zabbix来监控reids,主要分为配置zabbix插件.插件脚本.创建模板监控项.创建图形几个方面. Redis 学习(配置文件和常用命令注释): http://54snow.blog.51cto.com/2690157/1537449 Redis 学习(Redis Info详细注释): http://54snow.bl

Zabbix监控redis配置及宏的使用

本文主要介绍zabbix宏的简单使用,通过自定义脚本监控redis相关指标. zabbix监控redis需要自定义脚本去监控,网络上的脚本对于在一台机器上有多个redis实例不是很实用.于是修改了下监控脚本,使其可以接受传入端口参数. 原理:通过redis客户端连接命令,过滤出info输出的信息 一.zabbix宏介绍及定义 1.宏介绍 (1)宏是一种抽象,他根据一系列预定义的规则替换一定的文本模式,而解释器或编译器在遇到宏时会自动进行这一模式替换,可以理解为变量. (2)zabbix有许多内置

zabbix监控redis、mysql性能、mysql状态、php-fpm性能状态

zabbix监控redis http://www.21yunwei.com/archives/4195 zabbix监控mysql性能 http://www.ttlsa.com/zabbix/zabbix-monitor-mysql/ zabbix监控mysql装态 http://www.linuxidc.com/Linux/2016-04/130436.htm zabbix监控php-fpm性能状态 http://www.ttlsa.com/zabbix/zabbix-monitor-php-

zabbix 监控 redis

通过redis自带的info命令来监控redis的健康状态,通过redis-cli PING命令来监控redis的存活状态. 附件中有监控模板,将监控脚本放在redis服务器的自定义的/scripts/zabbix_redis/下: #! /bin/bash #Name: redismontior.sh REDISCLI="/usr/bin/redis-cli" HOST="127.0.0.1" PORT=6379 if [[ $# == 1 ]];then    

zabbix监控redis DB key的总数量

一个简单监控redis DB的key数量,脚本如下: #!/bin/bash PORT='7010' HOST='192.168.33.33' echo `redis-cli -h ${HOST} -p ${PORT} <<EOF select 1 llen data1 EOF` > /usr/local/redis/script/redix.txt echo `awk '{print $2}' /usr/local/redis/script/redix.txt` exit 0 脚本实现

zabbix 监控redis python3脚本

一:安装redis-python模块 wge  thttps://pypi.python.org/packages/source/r/redis/redis-2.9.1.tar.gz tar xf redis-2.9.1.tar.gz cd redis-2.9.1 python setup.py install 二:配置zabbix (1) 将zabbix-redis.py 放入到/usr/local/zabbix/etc/scripts目录下 (2) 更改zabbix_agentd.conf

zabbix监控redis

监控前提:即默认单机只运行一个redis实例,且默认运行的端口是6379(也可以是其他端口,需要通过 sed -i 's/6379/你修改的端口/g' xml模板文件 修改模板文件里的端口号) 服务端配置:导入redis模板 客户端操作: 1 更改配置文件/etc/zabbix/zabbix_agentd.conf 末尾添加:UserParameter=redis_stats[*],/usr/local/redis/bin/redis-cli  -h 127.0.0.1 -p $1 info|g

Zabbix监控redis多实例(low level discovery)

对于多实例部署的tomcat.redis等应用,可以利用zabbix的low level discovery功能来实现监控,减少重复操作. 注:Zabbix版本: Zabbix 3.0.2 一.服务端配置 1.创建模板 模板名称: Template_Redis_Monitor 2.创建自动发现规则 给已创建好的模板Template_Redis_Monitor添加自动发现规则. 3.添加监控项原型 从上面截图可以看到,我已经创建了4个,具体如下: 看看其中一个: 再来看看主机关联模板后的监控项:

zabbix监控redis集群

1.agent端新建自动发现redis集群端口 脚本如下 #!/bin/bash #redis_sport_scan.sh redis() { port=($(sudo netstat -tpln | awk -F "[ :]+" '/redis/ && /0.0.0.0/ {print $5}')) printf '{\n' printf '\t"data":[\n' for key in ${!port[@]} do if [[ "${