Redis监控调研

来源:互联网 发布:淘宝海外代购dw可信吗 编辑:程序博客网 时间:2024/06/04 18:16

1 调研目的

主要的目的是想调研各大云平台有关Redis监控功能的实现,但是最后我发现各大云平台提供的监控功能都比较基础,比如我想看诸如访问频率较高的HotKey占用内存较大的Bigkey等指标,它们都没有提供,一部分Redis监控的开源工具实现了这样的功能,但是实现方法实用性不大,见后文汇总。

2 调研情况

2.1 常见公有云平台监控

我所调研的阿里云、腾讯云、青云这三个平台给用户提供的监控信息均是采用Redis Info命令获取的,他们中有的再次对Redis Info的信息做了一些处理,比如阿里云对INFO Commandstats做了排序,提供了TOP Command的信息,但是他们并没有对服务端做改造或者通过其他的方式获取监控信息,因此也没有提供诸如访问频率较高的HotKey占用内存较大的Bigkey的指标。

阿里云的监控页面:

这里写图片描述

腾讯云的监控页面:

这里写图片描述

青云的监控页面:

这里写图片描述

2.2 开源的Redis监控工具

有一些开源工具提供了类似的监控指标,汇总如下:

  • RedisLive:提供了TopAccessKeys的统计。

它的后台使用关系型数据库(默认是sqlite)保存Key的信息,然后使用SQL分析查询获取结果,

  • redis-faina:提供TopAccessKeys、TopCommand、Slowest Calls等统计。

它直接解析Redis Monitor命令的结果,然后分析得到信息,Redis Monitor命令对Redis本身性能的影响较大。而且Redis Monitor只提供命令开始执行的时间,它的输出如下:

1510737569.843450 [0 127.0.0.1:53371] "set" "k" "v"

因此对于一个请求不断的Redis,它的分析才有效,因为两条记录相减的时间才可以算作命令实际的执行时间,但是如果Redis并没有多少请求,那分析就不准确了。

  • redis-traffic-stats:使用tcpdump抓包然后分析。

使用tcpdump抓包之后解析分析,提供了TopAccessKeysSlowest Calls的指标。

  • elasticsearch + packetbeat + kibana : 目前没有已经建立的分析系统

packetbeat可以指定网卡抓取网络数据包,并且提供了对Redis协议的解析,将抓取到的数据使用elasticsearch建立缓存搜索,kibana是一个可以配合elasticsearch展示的工具,我测试了一下,packetbeat抓取到的数据格式如下:

{    "@timestamp": "2017-10-19T14:42:02.046Z",    "beat": {        "hostname": "kiosk",        "name": "kiosk",        "version": "5.6.3"    },    "bytes_in": 21,    "bytes_out": 95,    "client_ip": "127.0.0.1",    "client_port": 55747,    "client_proc": "",    "client_server": "kiosk",    "ip": "127.0.0.1",    "method": "KEYS",    "port": 6379,    "proc": "",    "query": "keys *",    "redis": {        "return_value": "[kkkkk, key:__rand_int__, k, counter:__rand_int__, mylist, myset]"    },    "resource": "*",    "responsetime": 0,    "server": "kiosk",    "status": "OK",    "type": "redis"}

可以将查询到的信息按照index组织,之后分析热点key,或者key的轨迹。

  • 定期使用脚本获取信息

使用脚本定期去所有机器上用Redis客户端执行redis-cli --bigkeys或者slowlog查询,然后汇总结果统计。

3. 总结

本次调研想解决如何获取RedisBigKeyHotKey等监控指标,为了更好的排查问题和运维,最后的方法中开源的方法实用性都不是很大,EPK组合的方式目前也待讨论,有没有必要捕获所有数据等等,最后一个脚本的方式应该是比较轻量的。

[完]

原创粉丝点击