Redis 负载监控——redis-monitor

2015-11-25 10:19:27 +08:00
 50vip
## redis-monitor ##

一个 web 可视化的 redis 监控程序。

欢迎 issue 和 pr 。[https://github.com/hustcc/redis-monitor]( https://github.com/hustcc/redis-monitor)

使用 Flask 来开发的,代码结构非常简单,适合移植到公司内网使用。

### Demo ###

[http://www.atool.org:7259/]( http://www.atool.org:7259/)

### What ###

1. redis 服务器信息,包括 redis 版本、上线时间、 os 系统信息等等
2. 实时的消息处理信息,例如处理 command 数量、连接总数量等
3. 联通时间动态图表
4. ops 时间动态图表
5. 内存占用、 cpu 消耗实时动态图表
6. 内存缓存 1 秒数据,防止监控程序造成 redis 负荷

### 为啥要做这个?###

1. 之前 git 上搜了一堆,包括 osc 上推荐的 redis 项目,都配置不起来,有一个配置起来了但是 2.6 和 2.8 不兼容!
2. 有一个可以运行起来,但是每次都是直接连接 redis ,非常耗,如果同时 10 个人看监控图表,那么每秒造成 10 个 redis 连接,十分坑爹
3. 还有就是 git 上的一些配置起来太麻烦


### 如何使用? ###

- 首先安装 Flask Web 需要得库

> pip install -r requirements.txt

- 运行 web 程序即可

> ./run_monitor

或者

> python run_monitor.py

- 本地打开 127.0.0.1:7259 就可以看完网页了。截图见下方!

### screenshot ###

![shot_1]( https://raw.githubusercontent.com/hustcc/redis-monitor/master/doc/shot/shot_1.png)

![shot_2]( https://raw.githubusercontent.com/hustcc/redis-monitor/master/doc/shot/shot_2.png)

![shot_3]( https://raw.githubusercontent.com/hustcc/redis-monitor/master/doc/shot/shot_3.png)
12619 次点击
所在节点    Python
52 条回复
forever139
2015-11-25 10:50:34 +08:00
已 star
jokaye
2015-11-25 10:53:33 +08:00
支持,加上报警功能就更棒了,加油!
moyaya
2015-11-25 11:19:48 +08:00
前几天正在找类似的工具啊,后面用了 redis-PAPA
50vip
2015-11-25 11:28:38 +08:00
@jokaye 预警功能是需要做的,邮件字段都有了,但是没有写阈值,不知道阈值是根据联通时间还是 ops 来确定!
50vip
2015-11-25 11:31:22 +08:00
@moyaya 我之前也是因为要用 redis 监控工具看看 redis 情况, git 上找了好多,死都配置不好~~~有一个可以用,但是 2.6 和 2.8 不兼容,而且配置都好复杂,并且开多个浏览器窗口,会增加 redis 请求数,太 low 了!
xujif
2015-11-25 11:33:49 +08:00
@50vip 把数据缓存交给 nginx 如何? 这样如果想降低负载,就增加缓存时间,想看最新的,就 ctrl+f5
50vip
2015-11-25 12:34:32 +08:00
@xujif 既然是监控,如果需要 ctrl+f5 来刷新数据,那不是太麻烦了吗?另外如果配置 nginx 缓存,会不会又走进了 github 上其他的一些 redis 监控项目的怪圈:配置部署麻烦!
raingolee
2015-11-25 12:45:01 +08:00
楼主,数据是从 redis monitor command 上调用的吗?听说 monitor 会对 redis 性能有影响
50vip
2015-11-25 12:48:34 +08:00
@raingolee 使用的 info 命令,然后解析。应该使用的不是你说的 redis monitor command ,另外,对于 info 命令结果会有服务器缓存,也就是不管你开多少浏览器监控,多少人在同时看这个监控数据,每秒钟仅仅执行一次 info 命令,也就是 ops 每秒钟增加一次,这个负荷几乎可以忽略,如果觉得还打了,可以增加缓存的时间。
50vip
2015-11-25 13:06:22 +08:00
@forever139 感谢 z
wikimore
2015-11-25 13:13:59 +08:00
看上去很不错
go2sleep
2015-11-25 13:15:25 +08:00
已 Star ,我是来看头像的……
lizhenda
2015-11-25 13:17:11 +08:00
不错不错, mark
50vip
2015-11-25 13:18:54 +08:00
@wikimore 比较适合公司内使用~因为没有做登录验证啥的~最简洁的状态,如果需要可以自己加~
50vip
2015-11-25 13:19:08 +08:00
@lizhenda 感谢,哈哈~
50vip
2015-11-25 13:19:20 +08:00
@go2sleep 要我打包发给你吗?
50vip
2015-11-25 13:21:02 +08:00
@go2sleep 你是滨江的?握爪~
go2sleep
2015-11-25 13:26:33 +08:00
@50vip 哈哈,打包就不用了……
我是滨江的,没想到 V2EX 滨江众这么多~ 握爪
iyaozhen
2015-11-25 13:32:34 +08:00
非常好的东西,赞!
carilove
2015-11-25 13:51:02 +08:00
已 star, 正在试用
@50vip
有个很基本的问题, Python 用的是 2.7 ,还是 3.X

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/238719

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX