【php】Redis监控工具,大家有推荐的吗?
我知道一个web版的,用python做的
回答
可以用这个,ruby实现的 redis-stat" rel="nofollow noreferrer">https://github.com/junegunn/r...
有命令行的,也可以开一个简单的监控的http服务
https://github.com/junegunn/r...
https://github.com/junegunn/r...
phpredisadmin
redis自带的 monitor
大部分工具都是直接解析INFO
命令的含义做展示,提供的数据对排查问题不太具有参考意义。没有提供占用内存较大的key
,访问频率较高的Key
,慢查询Key
等,但是有一些开源工具提供了类似的监控指标,汇总如下(实用性也不是很大):
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
抓包之后解析分析,提供了TopAccessKeys
和Slowest 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的轨迹。
https://github.com/cyyyu/sredis
去年自己写的,比较简陋,准备抽时间完善下。
自己写的 https://github.com/zhuangjies... 下 redis_opr_web 半成品
以上是 【php】Redis监控工具,大家有推荐的吗? 的全部内容, 来源链接: utcz.com/a/104595.html