当前位置:   article > 正文

Redis-运维监控指标简述_redis监控关键指标

redis监控关键指标

Redis的运维监控指标简述

自身状态

相关命令

  • info
    • 状态信息。能够查看实时的吞吐量(ops/sec),还能看到一些有用的运行时信息
  • monitor
    • 监控执行命令。监视服务端收到的命令
  • latency
    • 服务端内部的延迟监控命令,Redis为了高性能还是默认关闭了它

Redis慢查询监控

因redis是单线程模型(single-threaded server),即一次只能执行一个命令,如果命令耗时较长,其他命令就会被阻塞,进入队列排队等待

命令

#获取慢查询日志个数
slowlog len

#获取慢查询日志
slowlog get number

#清空慢查询日志
slowlog reset
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

配置

#慢查询日志长度,默认128个。建议大于1024个,因监控采集周期1分钟
slowlog-max-len

#慢查询日志阀值,建议1ms,命令执行耗时超过 1 毫秒,记录慢日志
slowlog-log-slower-than
  • 1
  • 2
  • 3
  • 4
  • 5

具体的监控指标有哪些呢

服务器系统数据采集

  • 服务器存活监控
  • CPU
  • 内存和swap
  • 磁盘
  • 网络

Redis Server数据采集

  • Redis存活监控
  • Redis 连接数监控
  • Redis内存监控

综合性能监控

  • Redis Keyspace。redis键空间的状态监控
  • Redis qps
  • Redis cmdstat_xxx
  • Redis Keysapce hit ratio
  • Redis fork

持久化监控指标

  • 最近一次rdb持久化是否成功
  • 最近一次成功生成rdb文件耗时秒数
  • 离最近一次成功生成rdb文件,写入命令的个数
  • 离最近一次成功rdb持久化的秒数

复制监控指标

  • 复制连接状态
  • redis角色
  • 复制连接断开时间长度
  • 主库多少秒未发送数据到从库
  • 从库多少秒未向主库发送REPLCONF命令
  • 从库是否设置只读
  • 主库挂载的从库个数
  • 复制积压缓冲区是否开启
  • 复制积压缓冲大小

集群监控

  • 实例是否启用集群模式
  • 集群健康状态
  • 集群数据槽slots分配情况
  • 检测下线的数据槽slots个数
  • 集群的分片数
  • 集群的节点数

响应时间监控

  • 最长响应时间(respond_time_max)
  • 99%的响应时间长度 (respond_time_99_max)
  • 99%的平均响应时间长度 (respond_time_99_avg)
  • 95%的响应时间长度 (respond_time_95_max)
  • 95%的平均响应时间长度 (respond_time_95_avg)

方案设计思路

  • 指标采集。即采集redis提供的metric指标,所以方案中有时候会出现Agent,比如metricBeat
  • 监控的数据持久化。只有将监控数据放到数据库,才能对比和长期监控
  • 时序化。因为很多场景都会按照时间序列去展示 - 所以通常是用时序库或者针对时间列优化
  • 可视化。比如常见的kibana,grafana等
  • 按条件报警。因为运维不可能盯着看,只有引入报警配置,触发报警条件时即发出报警,比如短息提醒等;基于不同报警方式,平台可以提供插件支持等

相关工具

常见工具

redis-stat

是一个比较有名的redis指标可视化的监控工具,采用ruby开发,基于redis的info和monitor命令来统计,不影响redis性能

RedisLive

是采用python开发的redis的可视化及查询分析工具

redmon

提供了cli、admin的web界面,同时也能够实时监控redis

redis_exporter

为Prometheus提供了redis指标的exporter,支持Redis 2.x, 3.x, 4.x, 5.x, and 6.x,配合Prometheus以及grafana的Prometheus Redis插件,可以在grafana进行可视化及监控

grafana

工具选型

什么样的场景会谈到redis监控体系
  • 部署架构采用Redis-Cluster模式
  • 后台应用系统有几十个,应用实例数超过二百个
  • 所有应用系统共用一套缓存集群
  • 集群节点数几十个,加上容灾备用环境,节点数量翻倍
  • 集群节点内存配置较高
构建Redis监控体系具备什么价值
  • redis故障快速通知,定位故障点
  • 分析redis故障的Root cause
  • redis容量规划和性能管理
  • redis硬件资源利用率和成本
监控体系化包含哪些维度
  • 服务端
    • 常用的CPU、内存、网络IO,磁盘IO,服务端运行的进程信息等
    • Redis运行进程信息,包括服务端运行信息、客户端连接数、内存消耗、持久化信息 、键值数量、主从同步、命令统计、集群信息等
    • Redis运行日志,日志中会记录一些重要的操作进程,如运行持久化时,可以有效帮助分析崩溃假死的程序
  • 应用端

    • 应用端、获取应用端使用Redis的一些行为,具体哪些应用哪些模块最占用 Redis资源、哪些应用哪些模块最消耗Redis资源、哪些应用哪些模块用法有误等
  • 联合分析

    • 联合分析结合服务端的运行与应用端使用的行为。一些造成服务端突然阻塞的原因,可能是应用端设置了Big Key或者是时间维度复杂的操作
有哪些成熟的监控方案呢
  • ELK Stack
    • 采集agent: metricBeat
    • 收集管道:logstash
    • DB: elasticSearch
    • view和告警: kibana及插件
  • fluent + Prometheus + Grafana(推荐)
    • 采集指标来源: redis-export
    • 收集管道:fluentd
    • DB: Prometheus
    • view和告警: Grafana及插件
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/514192
推荐阅读
相关标签
  

闽ICP备14008679号