Redis现在在业务中应用已经很广泛了,但是如何监控redis,实时的观察redis的性能,却很少的提及,现在常见的监控方案基本上都是使用redis自带的info命令和monitor命令获取相关信息,然后提取出来显示。
测试环境:
redis版本:2.4.17
IP:10.20.111.188
1 redis-faina
一个使用redis自带命令monitor的输出结果做分析的python脚本,在命令行下使用,可以做实时分析使用。
官网:
下载试用:
1
2
|
cd
/
opt
/
testgit clone https:
/
/
github.com
/
Instagram
/
redis
-
faina.gitcd redis
-
faina
/
redis
-
cli
-
p
6379
MONITOR | head
-
n
100
| .
/
redis
-
faina.py
-
-
redis
-
version
=
2.4
|
测试结果如下:
可以看到一些实时的数据,并且有一定的统计数据,可以作为一个命令行工具使用。推荐使用,不过redis版本要大于2.4。
2 redis-live
一个用来监控redis实例,分析查询语句并且有web界面的监控工具,python编写。
官网:
下载试用:
运行环境依赖包安装:
redis-live安装:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
cd
/
root
git clone https:
/
/
github.com
/
nkrode
/
RedisLive.gitcd RedisLive
/
src
###修改redis-live.conf文件{ "RedisServers":
[
{
"server"
:
"10.20.111.188"
,
"port"
:
6379
}
],
"DataStoreType"
:
"redis"
,
"RedisStatsServer"
:
{
"server"
:
"10.20.111.188"
,
"port"
:
6380
},
"SqliteStatsStore"
:
{
"path"
:
"to your sql lite file"
}
}
###修改完毕###启动监控服务,每30秒监控一次./redis-monitor.py --duration=30 ###再次开启一个终端,进入/root/RedisLive/src目录,启动web服务./redis-live.py
|
在浏览器输入: http://10.20.111.188:8888/index.html 即可看到下图:
一个web界面,可以同时监控多个redis实例,做集中监控比较好。
3 redis-stat
一个用ruby写成的监控redis的程序,基于info命令获取信息,而不是通过monitor获取信息,性能应该比monitor要好。
官网:
运行环境安装:
1
2
|
apt
-
get install ruby
apt
-
get install rubygems
|
redis-stat安装:
1
2
3
4
|
cd
/
root
git clone https:
/
/
github.com
/
junegunn
/
redis
-
stat.gitcd
/
root
/
redis
-
stat
/
bin
###./redis-stat --help 可以看到使用帮助
.
/
redis
-
stat
1
|
下面看看redis-stat的具体用法
1
2
3
|
usage: redis
-
stat [HOST[:PORT] ...] [INTERVAL [COUNT]]
-
a,
-
-
auth
=
PASSWORD Password
-
v,
-
-
verbose Show more info
-
-
style
=
STYLE Output style:
unicode
|ascii
-
-
no
-
color Suppress ANSI color codes
-
-
csv
=
OUTPUT_CSV_FILE_PATH Save the result
in
CSV
format
-
-
server[
=
PORT] Launch redis
-
stat web server (default port:
63790
)
-
-
daemon Daemonize redis
-
stat. Must be used with
-
-
server option.
-
-
version Show version
-
-
help
Show this message
|
redis-stat命令行模式:
1
2
|
redis
-
statredis
-
stat
1redis
-
stat
1
10redis
-
stat
-
-
verbose
redis
-
stat localhost:
6380
1
10redis
-
stat localhost localhost:
6380
localhost:
6381
5redis
-
stat localhost localhost:
6380
1
10
-
-
csv
=
/
tmp
/
output.csv
-
-
verbose
|
redis-stat web模式:
1
|
redis
-
stat
-
-
serverredis
-
stat
-
-
verbose
-
-
server
=
8080
5redis
-
stat
-
-
server
-
-
daemon
|
效果如下:
运行web模式
1
|
cd
/
root
/
redis
-
stat
/
bin
.
/
redis
-
stat
-
-
server
=
8080
5
-
-
daemon
|
在浏览器输入: http://10.20.111.188:8080/ 结果如下:
不错的工具,既有命令行又有web界面,可以放到后台运行,数据比redis-live感觉直观 ,ruby开发的,
4 redis-monitor
一个国人用java写的,官网的是在win下编译的,看着不错,不过我在linux下没调试起来...
官网:https://github.com/litiebiao2012/redis-monitor
个人感觉,做集中监控可以使用redis-live,在命令行使用可以使用redis-stat,也可以根据自己的情况自行编写,总之就是根据info和monitor命令获取并展示信息。