redis监控

  公司的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、异常页面

  2、状态页面

原创文章,转载请备注原文地址 http://www.cnblogs.com/lxmhhy/p/6034549.html

知识交流讨论请加qq:1130010617。谢谢合作。

时间: 2024-10-25 06:18:32

redis监控的相关文章

Memcached,redis监控详解

一.监控采集依据: 类似吞吐量,缓存的查询次数,命中率之类的 二.主要监控指标解析,通过stats命令进行采集: Uptime                   ##memcached运行时长 curr_connections          ##当前的连接数 total_connections         ##曾经打开的连接总数 connection_structures     ##服务器分配的连接数 cmd_get                   ##执行get命令总数 cmd

Redis监控方案

Redis介绍 Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表.哈希.集合和有序集合5种.支持在服务器端计算集合的并.交和补集(difference)等,还支持多种排序功能.所以Redis也可以被看成是一个数据结构服务器.Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”):也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为

Redis监控技巧总结

Redis 监控最直接的方法当然就是使用系统提供的 info 命令来做了,你只需要执行下面一条命令,就能获得 Redis 系统的状态报告. redis-cli info 内存使用 如果 Redis 使用的内存超出了可用的物理内存大小,那么 Redis 很可能系统会被OOM Killer杀掉.针对这一点,你可以通过 info 命令对used_memory和used_memory_peak进行监控,为使用内存量设定阀值,并设定相应的报警机制.当然,报警只是手段,重要的是你得预先计划好,当内存使用量过

Redis 监控

redis 监控有 redis-live 和 redis-stat Redis-Live是一个用来监控redis实例,分析查询语句并且有web界面的监控工具,使用python编写. redis-stat是一个用ruby写成的监控redis的程序,基于info命令获取信息,而不是通过monitor获取信息. Redis-Live 需要Python2.7 和 python相关的扩展程序,不支持后台运行. redis-stat只需要安装一个Ruby环境,支持后台运行.

redis监控系统

Redis监控系统 系统项目可以从https://github.com/nkrode/RedisLive下载 git clone [email protected]:nkrode/RedisLive.git 这个系统是依据python写的需要安装一些python环境 tornado pip install tornado redis.py pip install redis python-dateutil pip install python-dateutil 配置文件redis-live.co

Zabbix-2.X/3.X监控工具监控Redis以及zabbix Redis监控模板下载

为了监控Redis3的运行状况,去zabbix官网查找资料,根据提示,找到了这个项目:https://github.com/blacked/zbx_redis_template 但是文档和内容已经不匹配了,比如这个配置项: hostname = 'redis.srv.name' # Name of monitored server, like it shows in zabbix web ui 试验了 trap-message mode 和 Zabbix Agent mode 均以失败告终,然后

redis监控脚本

配合redis-cli工具,编写的shell脚本.按照规则,可以监控info页面写的所有数据信息 redis-cli用法: # redis-cli -h 127.0.0.1 -p 6379 -a passwoed     //连接指定的redis # redis-cli info        //没有密码的情况下,打印本地redis-srv的状态信息 # redis-cli info Keyspace     //查看指定状态域的信息 脚本通过执行的参数,查看所有状态信息,匹配输出,可用参数

redis监控状态connect命令

1.redis-benchmark   redis基准信息,redis服务器性能检测 redis-benchmark -h localhost -p 6379 -c 100 -n 100000   100个并发连接,100000个请求,检测host为localhost 端口为6379的redis服务器性能 Java代码    [root@Architect redis-1.2.6]# redis-benchmark -h localhost -p 6379 -c 100 -n 100000 ==

为redis主机添加redis监控

一) 环境准备 1.确认安装了 python 2.7 及更高版本 二)脚本上传Proxy discovery_redis.py 1. 添加权限:cd /usr/local/zabbix/scripts/ chown zabbix:zabbix /usr/local/zabbix/scripts/* chmod u+x /usr/local/zabbix/scripts/* 2. 修改配置文件参数,红色部分为redis的密码:vim  userparameter_redis.conf 3. 配置文