title: redis监控脚本 #标题tags: redis,zabbix, #标签
categories: redis # 分类
date: 2020-04-07
记录下redis监控的脚本!
#!/usr/bin/env bash
# Author: Ray
# Description : monitor redis and send data to zabbix-server
# -------------------------------------------------------------------------------------------
# IDC1 dt-redis节点 存储数据缓存 ss-redis节点: 存储session数据
# dt-redis-3 dt-redis-4 dt-redis-5 dt-redis-6 dt-redis-7 dt-redis-8 dt-redis-9 dt-redis-10
# ss-redis-3 ss-redis-4 ss-redis-5 ss-redis-6 ss-redis-7 ss-redis-8 ss-redis-9 ss-redis-10
# -------------------------------------------------------------------------------------------
function check_cluster_status(){
# $1: redis-type (dt|ss)
# $2: redis-node
# $3: port
status=`redis-cli -c -h $2 -p $3 cluster info | grep "cluster_state" | awk -F ':' '{print $NF}'`
if echo $status | grep "ok" >/dev/null;then
zabbix_sender -z 47.75.134.140 -s redis-new -k ${1}-rd.redis.info.cluster_state -o ${status}
else
status="Fail"
zabbix_sender -z 47.75.134.140 -s redis-new -k ${1}-rd.redis.info.cluster_state -o ${status}
fi
}
# redis 集群状态数据上报
check_cluster_status dt 10.10.5.3 6379
check_cluster_status ss 10.10.5.3 6380
function get_data(){
# $1: redis-type (dt|ss)
# $2: redis-node
# $3: port
# $4: check_key
# $5: redis-number
data=`/usr/bin/redis-cli -h ${2} -p ${3} info | grep -w ${4} | awk -F ':' '{print $NF}'`
/usr/bin/zabbix_sender -z 47.75.134.140 -s redis-new -k ${1}-rd-${5}.redis.info.${4} -o ${data}
}
# keys 注释
#-----------------------------------------------------------
# used_memory_peak: Redis使用内存的峰值,字节数
# used_memory_peak_human: redis使用内存的峰值 单位G
# connected_clients: 已连接客户端的数量(不包括通过从属服务器连接的客户端)
# instantaneous_input_kbps: 瞬间的Redis输入网络流量(kbps)
# instantaneous_output_kbps: 瞬间的Redis输出网络流量(kbps)
# instantaneous_ops_per_sec: 服务器每秒钟执行的命令数量
# keyspace_misses: 查找键未命中的次数
# evicted_keys: 因内存used_memory达到maxmemory后,每秒被驱逐的key个数
# expired_keys: 因为过期而被自动删除的数据库键数量
# rejected_connections: 因连接数达到maxclients上限后,被拒绝的连接个数
#-----------------------------------------------------------
keys="used_memory_peak
connected_clients
instantaneous_input_kbps
instantaneous_output_kbps
instantaneous_ops_per_sec
keyspace_misses
evicted_keys
expired_keys
rejected_connections
"
# 获取redis info信息,并发送至zabbix
for i in $(seq 3 10);do
for key in $keys;do
get_data dt 10.10.5.${i} 6379 $key $i
get_data ss 10.10.5.${i} 6380 $key $i
done
done