• 部署Redis-CentOS7

yum install epel-release -y
yum install redis -y
vim /etc/redis.conf
bind 0.0.0.0
systemctl restart redis
systemctl enable redis
  • 编写监控脚本

cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/
vim redis_monitor.sh
#!/bin/bash
redis_status(){
        R_PORT=$1
        R_COMMAND=$2
        (echo -en "INFO \r\n";sleep 1;) | nc 127.0.0.1 "$R_PORT" > /tmp/redis_"$R_PORT".tmp
        REDIS_STAT_VALUE=$(grep ""$R_COMMAND":" /tmp/redis_"$R_PORT".tmp | cut -d ':' -f2)
        echo $REDIS_STAT_VALUE  
}

help(){
        echo "${0} + redis_status + PORT + COMMAND"
}

main(){
    case $1 in
        redis_status)
            redis_status $2 $3
                ;;
        *)
            help
                ;;
        esac
}
main $1 $2 $3

添加执行权限

chmod a+x redis_monitor.sh

测试脚本

bash redis_monitor.sh redis_status 6379 used_memory

Zabbix agent添加自定义监控项

vim /usr/local/zabbix/etc/zabbix_agentd.conf +299
UserParameter=redis.status[*],/usr/local/zabbix/etc/zabbix_agentd.conf.d/redis_monitor.sh "$1" "$2" "$3"

重启agentd

systemctl restart zabbix-agent
systemctl enable zabbix-agent
  • zabbix server测试监控项数据

/usr/local/zabbix/bin/zabbix_get -s 172.24.77.243 -p 10050 -k "redis.status["redis_status","6379","connected_clients"]"
  • zabbix web模板制作

创建模板

配置--模板--创建模板

模版名称:redis-monitor

群组:Templates

创建监控项一:

配置--模板 --监控顶--redis-monitor--创建监控项

名称:redis-connectios

类型:zabbix客户端主动模式

键值:redis.status["redis_status","6379","connected_clients"]

信息类型:数字(无正负)

更新间隔:3s

历史数据保留时长:Storage period 90d

趋势存储时间:Storage period 365d

创建监控项二:

名称:redis-mem

键值:redis.status["redis_status","6379","used_memory"]

创建触发器

配置--模板 --监控顶--redis-monitor--触发器--创建触发器

名称:redis-connections

严重性:严重

表达式:{redis-monitor:redis.status["redis_status","6379","connected_clients"].last()}>2000

redis-mem

表达式:{redis-monitor:redis.status["redis_status","6379","used_memory"].last()}>21474

创建图形

配置--模板--redis-monitor--图形--创建图形

名称:redis-conncetions

名称:redis-mem

监控项:[memcache: memcache-当前连接数]

模板关联主机

配置--主机--模板--连接指示器-redis-monitor--添加--更新

监控测试结果