阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Redis监控主要指标及采集方法

118次阅读
没有评论

共计 2529 个字符,预计需要花费 7 分钟才能阅读完成。

公司的 Redis 业务很多,Redis 监控自然也是 DB 监控的一大模块,包括采集、展示、监控告警。本文主要介绍 Redis 监控的主要指标和采集方法。

一、Redis 监控系统逻辑

1、DBA 通过前台页面添加 redis 监控,填写 ip 和端口,配置阈值、负责人等信息

2、前台调用自动调度平台接口将 redis 监控采集 Agent 发送到目标机器上的固定文件夹,并添加 crond,每分钟运行(采集 Agent 包含采集程序和 ip 端口信息文件)

3、redis 监控 Agent 采集相关指标通过 http 接口上报到 MySQL 服务器(目标机器无法直接连接 mysql)

4、前台读取 mysql 数据进行展示

5、解析程序每分钟通过读取配置信息和 Agent 上报的数据进行解析并发送告警(Rtx/Wechat/Sms)给指定负责人

二、采集指标和命令

1、redis 服务进程 ip-port

约定所有 redis 服务都必须以 ip1(内网 ip)来绑定,每个机器只有一个 ip1,可以有多个端口,即多个 redis 实例。采集程序读取 ip 端口信息文件来判断有多少个实例

ps aux | grep -E "redis-server.*$port"

约定所有 redis 客户端安装标准路径是

REDISPATH_CLI="/usr/local/redis/bin/redis-cli"

如果发现不是标准路径会有 No such file or directory 的提示,则采集程序会在每天早上 10 点发送 Rtx 弹窗给 DBA(DBA 也可以根据前台页面图表展示来判断该采集器有无上报数据,无上报数据则可以上机查看采集器日志)

采集器使用下面的命令来采集 redis 实例的所有信息,然后根据信息筛选出需要的指标上报到 mysql

$REDISPATH_CLI -h ${agentIp} -p ${port} info > ${tmpFile} 2>&1

如果 redis 实例没有绑定在 ip1 或者 127.0.0.1 上面则会提示 Connection refused

2、连接客户数 

grep "connected_clients:" ${tmpFile} | awk -F ":" '{print $2}'

3、阻塞连接数 

grep "blocked_clients:" ${tmpFile} | awk -F ":" '{print $2}'

4、redis 占用内存,单位 Byte 转成 MB

grep "used_memory:" ${tmpFile} | awk -F ":" '{print $2}' | awk '{printf"%.2f",$1/1024/1024}'

5、内存峰值,单位 Byte 转成 MB

grep "used_memory_peak:" ${tmpFile} | awk -F ":" '{print $2}' | awk '{printf"%.2f",$1/1024/1024}'

6、主从角色

grep "role:" ${tmpFile} | awk -F ":" '{print $2}'   #  master(主),slave(从)

7、master_link_status

grep "master_link_status:" ${tmpFile} | awk -F ":" '{print $2}'   # up down

down:Master已经不可访问了,Slave 依然运行良好,并且保留有 AOF 与 RDB 文件

8、执行命令总数和 qps

grep "total_commands_processed:" ${tmpFile} | awk -F ":" '{print $2}'

计算 qps 需要计算两次 total_commands_processed,然后除以时间差。逻辑是第一分钟将 total_commands_processed 的值和当时采集该值的时间保存到 last.cache 中,第二分钟采集的时候获取值和时间,和上次相减得到两个差值相除即可。

9、上报时间

reportTime=`date +'%Y-%m-%d %H:%M:00'`

时间的秒数是 0,方便前台画图展示

三、解析告警

分析上报的指标是否异常,根据 reportTime 判断 Agent 心跳情况,将状态和异常信息存入 mysql,发送告警给相关负责人。数据库分表如下:

redisMonitor 库:配置表 redisConf、当前状态 redisCurrentStatus、异常信息表 redisDisplay

历史库按月分库,按照 ip 分表,保存 redis 采集器上报数据,Ex: redisStatus167872716

四、前台展示

1、异常页面

Redis 监控主要指标及采集方法

2、状态页面

Redis 监控主要指标及采集方法

下面关于 Redis 的文章您也可能喜欢,不妨参考下:

Ubuntu 14.04 下 Redis 安装及简单测试 http://www.linuxidc.com/Linux/2014-05/101544.htm

Redis 主从复制基本配置 http://www.linuxidc.com/Linux/2015-03/115610.htm

Redis 集群明细文档 http://www.linuxidc.com/Linux/2013-09/90118.htm

Ubuntu 16.04 环境中安装 PHP7.0 Redis 扩展 http://www.linuxidc.com/Linux/2016-09/135631.htm

CentOS 7.0 安装 Redis 3.2.1 详细过程和使用常见问题 http://www.linuxidc.com/Linux/2016-09/135071.htm

Ubuntu 16.04 环境中安装 PHP7.0 Redis 扩展 http://www.linuxidc.com/Linux/2016-09/135631.htm

Ubuntu 15.10 下 Redis 集群部署文档 http://www.linuxidc.com/Linux/2016-06/132340.htm

Redis 实战 中文 PDF http://www.linuxidc.com/Linux/2016-04/129932.htm

Redis 的详细介绍:请点这里
Redis 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/136783.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2529字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中