三、Zabbix应用服务监控-Redis

1.1 监控redis什么内容

1、监控redis端口状态
2、监控redis活跃连接数、最大连接数
3、监控redis已用内存,系统最大支持内存

1.2 如何监控redis

1、通过命令redis-cli info获取连接数、内存、CPU等状态;

  • connected_clients: 当前连接数
  • used_memory: 已用内存(字节)
  • total_system_memory: 系统总内存

2.通过动态命令获取redis最大连接数redis-cli CONFIG GET maxclients

[root@web01 yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-archive-6.repo
[root@web01 yum.repos.d]# yum install redis -y
[root@web01 yum.repos.d]# /etc/init.d/redis  start
[root@web01 yum.repos.d]# redis-cli CONFIG GET maxclients
1) "maxclients"
2) "10000"

1.3 编写监控脚本

[root@web01 ~]# cat /etc/zabbix/zabbix_agent2.d/redis_status.sh 
#!/bin/bash
key=$1
redis-cli -p6379 info | grep "\<${key}\>"  | awk  -F ":" '{print $NF}'

[root@web01 ~]#chmod +x /etc/zabbix/zabbix_agent2.d/redis_status.sh 

1.4 添加自定义监控项

[root@web01 ~]# cat /etc/zabbix/zabbix_agent2.d/redis_status.conf 
UserParameter=redis.status[*],/etc/zabbix/zabbix_agent2.d/redis_status.sh "$1"
#h获取最大连接数(通过命令获取,info中无法提取)
UserParameter=redis.config.maxclients,redis-cli -p 6379 config get maxclients | awk "NR==2"

1.5 服务端测试取值

[root@zabbix-server ~]# zabbix_get  -s 192.168.20.47 -k redis.status[connected_clients]
1
[root@zabbix-server ~]# zabbix_get  -s 192.168.20.47 -k redis.status[used_memory]
813512

1.6 配置zabbi-web

1、创建模版
2、创建监控项
3、创建触发器
4、关联主机

在这里插入图片描述

1.7 创建触发器

触发器1: 当redis活跃连接数打到“最大连接数”的70%则触发警告

#公式: 活跃连接数/最大连接数*100 > 70

#故障表达式
{Template Redis Status panpancar:redis.status[connected_clients].avg(1m)}/{Template Redis Status panpancar:redis.config.maxclients.last()}*100>={$REDIS.CLIENTS.ALERT}

#恢复表达式
{Template Redis Status panpancar:redis.status[connected_clients].avg(1m)}/{Template Redis Status panpancar:redis.config.maxclients.last()}*100<{$REDIS.CLIENTS.ALERT}

触发器2:当前的redis已用内存,达到系统的总内存的70%触发告警

#公式:已用内存/最大内存*100 > 70

#故障表达式
{Template Redis Status panpancar:redis.status[used_memory].last()}/{Template Redis Status panpancar:redis.status[total_system_memory].last()}*100>={$REDIS.MEM.ALERT}

#恢复表达式
{Template Redis Status panpancar:redis.status[used_memory].last()}/{Template Redis Status panpancar:redis.status[total_system_memory].last()}*100<{$REDIS.MEM.ALERT}

1.8 测试告警效果

#模拟产生500w条数据
127.0.0.1:6379> debug populate 5000000
127.0.0.1:6379> DBSIZE

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值