您的位置:首页 > 数据库 > Redis

Redis检索性能不足,改造rsbeat解决历史慢日志跟踪

2019-05-10 07:15 731 查看


作者介绍

刘宇,甜橙金融创新中心基础技术架构师,拥有9年IT从业经验、9年数据库开发运维经验、4次大型营销活动经验。目前关注容器、分布式数据库技术等基础技术。


在线上排查redis性能问题时,从redis中找进行优化是一种常规手段。


redis slowlog被设计成内存中一个先进先出的队列结构,在慢日志较多的情况下,旧命令就会被刷新出slowlog,从而无法跟踪。


为了解决历史慢日志跟踪问题,需要将redis slowlog转储,本文介绍使用改造后的rsbeat将slowlog转储到Elasticsearch,进行分析的设计实现。


一、Redis slowlog简介


slowlog核心配置参数及命令


  • slowlog-log-slower-than:slowlog的阈值,只有query执行时间大于slowlog-log-slower-than的记录慢查询,设置的单位是微秒,默认是10000微秒,也就是10ms。

  • slowlog-max-len:表示慢查询最大的条数,默认值为128。当slowlog超过设定的最大值后,会将最早的slowlog删除。

  • Slowlog get N:用来获取指定的条数可以使用SLOWLOG GET N命令。


rsbeat简介


rsbeat来源于官方的Beats平台,Beats集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向Logstash或Elasticsearch发送数据。


地址:

https://www.elastic.co/guide/en/beats/libbeat/current/community-beats.html



本次用到Elasticsearch、kibana和rsbeat三款产品。Elasticsearch用来存储解析后的redis slowlog,kibana用于图形化分析,rsbeat用于收集redis slowlog。


rsbeat的收集原理如下:



二、rsbeat改造


因为社区的rsbeat只支持ipPort的方式进行检索。不支持redis sentinel还有redis cluster,为了满足我们的需要,这里对rsbeat进行了部分改造。改造点如下:


1、增加支持sentinel及redis cluster


rsbeat的关于原始配置如下:



其中redis参数配置为ipPort形式的redis实例list,我们这个改造成ipPortName的形式:



对于redis sentinel这里的myredis使用注册到sentinel里的master name来进行检索。


对于redis cluster这里的myredis可使用自定义的集群名称,或者是cmdb中的集群名称来进行检索。一般redis cluster节点都比较多,这样可以避免手工需要登陆多个节点来获取慢查询,从而提高效率。


改造rsbeat.go的代码如下所示,增加一个ipPortName字符串的处理函数:



在poolList这个map结构中处理:



2、记录redis实例的角色信息


前面使用到了master name检索,又想对redis的角色进行筛选,需要记录角色信息。则在rebeat中slowlog get、slowlog reset后面增加role命令来获取角色信息。



在func (bt *rsbeat) redisc(beatname string, init bool, c redis.Conn, ipPort string){...}函数中修改



以及beats的event中:



然后在修改poolInit函数,增加slowerLen参数:



3、Slowlog-max-len可配置


修改Slowlog-max-len可配置在config.go 文件中,Config结构中增加SlowerLen属性,以及默认值:



三、使用Kibana中检索


1、通过master name或者是redis cluster的name进行检索:



2、使用master name以及角色检索:


在Add a filter中添加role的过滤:



然后检索master name:



3、在DASHBOARD中检索:



四、总结


Elastic Stack有着强大的开源社区支持。通过简单的改造和折腾,即可扩展rsbeat功能,使其更满足redis sentinel、redis cluster等更灵活的查询检索需要。本文通过对改造内容进行说明,希望能给大家提供帮助及思路。



掌握数据库运维新思维,获得更优操作启发

不妨来DAMS看看技术大牛们都有哪些大招


↓↓点击图片可了解更多详情及报名↓↓

2019 DAMS中国数据智能管理峰会-上海

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: