一个 web 可视化的 redis 监控程序。
欢迎 issue 和 pr 。https://github.com/hustcc/redis-monitor
使用 Flask 来开发的,代码结构非常简单,适合移植到公司内网使用。
pip install -r requirements.txt
./run_monitor
或者
python run_monitor.py
最近重构了一下,安装使用更加简单了。
首先安装python库
pip install redis-monitor
初始化配置和数据库
redis-monitor init
启动 webserver
redis-monitor start
然后访问 127.0.0.1:9527(端口:LZSB,你懂的) 即可。
1
forever139 2015-11-25 10:50:34 +08:00
已 star
|
2
jokaye 2015-11-25 10:53:33 +08:00
支持,加上报警功能就更棒了,加油!
|
3
moyaya 2015-11-25 11:19:48 +08:00
前几天正在找类似的工具啊,后面用了 redis-PAPA
|
5
50vip OP @moyaya 我之前也是因为要用 redis 监控工具看看 redis 情况, git 上找了好多,死都配置不好~~~有一个可以用,但是 2.6 和 2.8 不兼容,而且配置都好复杂,并且开多个浏览器窗口,会增加 redis 请求数,太 low 了!
|
7
50vip OP @xujif 既然是监控,如果需要 ctrl+f5 来刷新数据,那不是太麻烦了吗?另外如果配置 nginx 缓存,会不会又走进了 github 上其他的一些 redis 监控项目的怪圈:配置部署麻烦!
|
8
raingolee 2015-11-25 12:45:01 +08:00
楼主,数据是从 redis monitor command 上调用的吗?听说 monitor 会对 redis 性能有影响
|
9
50vip OP @raingolee 使用的 info 命令,然后解析。应该使用的不是你说的 redis monitor command ,另外,对于 info 命令结果会有服务器缓存,也就是不管你开多少浏览器监控,多少人在同时看这个监控数据,每秒钟仅仅执行一次 info 命令,也就是 ops 每秒钟增加一次,这个负荷几乎可以忽略,如果觉得还打了,可以增加缓存的时间。
|
10
50vip OP @forever139 感谢 z
|
11
wikimore 2015-11-25 13:13:59 +08:00
看上去很不错
|
12
go2sleep 2015-11-25 13:15:25 +08:00
已 Star ,我是来看头像的……
|
13
lizhenda 2015-11-25 13:17:11 +08:00
不错不错, mark
|
19
iyaozhen 2015-11-25 13:32:34 +08:00
非常好的东西,赞!
|
21
50vip OP @carilove python2.7 ,这个一点没有在 md 里说明~使用的基本语法,感觉 3.0 应该问题不大~我抽时间弄个 3.0 试试~
|
23
inFinityzc 2015-11-25 14:10:12 +08:00
已 Star ,晚上试用~
|
25
carilove 2015-11-25 14:22:01 +08:00
@50vip
有个 bug Python 2.7, 模块 RedisMonitor.py 的类 RedisMonitor 中的 new_request 方法连接 Redis , port 参数需要转化为 int 。不然会报错 ``` r = redis.Redis(host='127.0.0.1', port='6379') TypeError: an integer is required ``` |
28
50vip OP @carilove 我这边 int 和 string 都可以,看了下源码, python redis 自己会转换类型,可以 redis py 版本不同,为了兼容,已经修改代码并且提交了
|
29
carilove 2015-11-25 15:40:56 +08:00
|
30
50vip OP @carilove 嗯,我的也是 2.10 的~~~现在有两个待做的东西:
1. websocket 代替 js 轮询 2. redis db 的一些操作,例如 set , del , flush 等简单操作,可以代替一些 redis 的 gui 客户端 |
32
ericls 2015-11-25 15:52:24 +08:00
已 star 同类中最好的 (我用过的、开源的里面)
可以翻译个英文 |
35
6IbA2bj5ip3tK49j 2015-11-25 16:15:15 +08:00
虽然还没用过 redis ,但是觉得看起来好厉害。
|
37
tangthis 2015-11-25 16:42:06 +08:00
安装报错了。
Downloading requests-2.8.1-py2.py3-none-any.whl (497kB) 2% | | 12kB 12.1MB/s eta 0:00:01 Exception: Traceback (most recent call last): File "C:\Python34\lib\site-packages\pip\_vendor\requests\packages\urllib3\re sponse.py", line 186, in read data = self._fp.read(amt) File "C:\Python34\lib\site-packages\pip\_vendor\cachecontrol\filewrapper.py" , line 49, in read data = self.__fp.read(amt) File "C:\Python34\lib\http\client.py", line 500, in read return super(HTTPResponse, self).read(amt) File "C:\Python34\lib\http\client.py", line 539, in readinto n = self.fp.readinto(b) File "C:\Python34\lib\socket.py", line 374, in readinto return self._sock.recv_into(b) File "C:\Python34\lib\ssl.py", line 751, in recv_into return self.read(nbytes, buffer) File "C:\Python34\lib\ssl.py", line 623, in read v = self._sslobj.read(len, buffer) socket.timeout: The read operation timed out During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Python34\lib\site-packages\pip\basecommand.py", line 232, in main status = self.run(options, args) File "C:\Python34\lib\site-packages\pip\commands\install.py", line 339, in r un requirement_set.prepare_files(finder) File "C:\Python34\lib\site-packages\pip\req\req_set.py", line 355, in prepar e_files do_download, session=self.session, File "C:\Python34\lib\site-packages\pip\download.py", line 782, in unpack_ur l session, File "C:\Python34\lib\site-packages\pip\download.py", line 667, in unpack_ht tp_url from_path, content_type = _download_http_url(link, session, temp_dir) File "C:\Python34\lib\site-packages\pip\download.py", line 843, in _download _http_url _download_url(resp, link, content_file) File "C:\Python34\lib\site-packages\pip\download.py", line 615, in _download _url for chunk in progress_indicator(resp_read(4096), 4096): File "C:\Python34\lib\site-packages\pip\utils\ui.py", line 46, in iter for x in it: File "C:\Python34\lib\site-packages\pip\download.py", line 580, in resp_read decode_content=False): File "C:\Python34\lib\site-packages\pip\_vendor\requests\packages\urllib3\re sponse.py", line 256, in stream data = self.read(amt=amt, decode_content=decode_content) File "C:\Python34\lib\site-packages\pip\_vendor\requests\packages\urllib3\re sponse.py", line 201, in read raise ReadTimeoutError(self._pool, None, 'Read timed out.') pip._vendor.requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPSConnec tionPool(host='pypi.python.org', port=443): Read timed out. C:\Users\Administrator\Documents\GitHub\redis-monitor>python run_monitor.py Traceback (most recent call last): File "run_monitor.py", line 8, in <module> from app import app File "C:\Users\Administrator\Documents\GitHub\redis-monitor\app\__init__.py", line 12, in <module> from app.views import main_views File "C:\Users\Administrator\Documents\GitHub\redis-monitor\app\views\main_vie ws.py", line 9, in <module> from app.utils import RequestUtil, OtherUtil File "C:\Users\Administrator\Documents\GitHub\redis-monitor\app\utils\OtherUti l.py", line 9, in <module> from CJsonEncoder import CJsonEncoder ImportError: No module named 'CJsonEncoder' |
39
50vip OP @raingolee 嗯,是的,但是 monitor 毕竟的调试的,如果用到线上环境,会造成性能问题,对于线上 monitor 过的,可以仅仅关注一些简单的指标。
|
41
50vip OP @tangthis 可以到 github 上提 issue ,安装报错是因为你没有翻墙。。。建议使用 pip 加豆瓣源吧~
|
42
wong2 2015-11-25 18:38:35 +08:00
我科
|
46
sevncz 2015-11-26 10:21:15 +08:00
已 star
|
47
seerhut 2015-11-26 17:17:18 +08:00
已 star
|
48
mingyun 2015-12-15 23:30:36 +08:00
star
|
49
iyaozhen 2016-03-08 20:56:28 +08:00
楼主,你这项目咋又没了呢?
|