java编写监控redis集群,Redis监控方案

Redis现在在业务中应用已经很广泛了,但是如何监控redis,实时的观察redis的性能,却很少的提及,现在常见的监控方案基本上都是使用redis自带的info命令和monitor命令获取相关信息,然后提取出来显示。

测试环境:

redis版本:2.4.17

IP:10.20.111.188

1 redis-faina

一个使用redis自带命令monitor的输出结果做分析的python脚本,在命令行下使用,可以做实时分析使用。

下载试用:

cd /opt/test

git clone https://github.com/Instagram/redis-faina.git

cd redis-faina/

redis-cli -p 6379 MONITOR | head -n 100 | ./redis-faina.py --redis-version=2.4

测试结果如下:

871b5d7f30de4cc8048ebacb72ee854b.gif

可以看到一些实时的数据,并且有一定的统计数据,可以作为一个命令行工具使用。推荐使用,不过redis版本要大于2.4。

2 redis-live

一个用来监控redis实例,分析查询语句并且有web界面的监控工具,python编写。

下载试用:

redis-live安装:

cd /root

git clone https://github.com/nkrode/RedisLive.git

cd 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

即可看到下图:

15261c129f65457d56e5bb88e0be7421.png

一个web界面,可以同时监控多个redis实例,做集中监控比较好。

3 redis-stat

一个用ruby写成的监控redis的程序,基于info命令获取信息,而不是通过monitor获取信息,性能应该比monitor要好。

运行环境安装:

apt-get install ruby

apt-get install rubygems

redis-stat安装:

cd /root

git clone https://github.com/junegunn/redis-stat.git

cd /root/redis-stat/bin

###./redis-stat --help 可以看到使用帮助

./redis-stat 1

下面看看redis-stat的具体用法

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命令行模式:

redis-stat

redis-stat 1

redis-stat 1 10

redis-stat --verbose

redis-stat localhost:6380 1 10

redis-stat localhost localhost:6380 localhost:6381 5

redis-stat localhost localhost:6380 1 10 --csv=/tmp/output.csv --verbose

redis-stat web模式:

redis-stat --server

redis-stat --verbose --server=8080 5

redis-stat --server --daemon

效果如下:

b49d2670fa6678cee9958d13af357963.png

运行web模式

cd /root/redis-stat/bin

./redis-stat --server=8080 5 --daemon

在浏览器输入:

http://10.20.111.188:8080/

结果如下:

016fef3c418d926d557c3f30fa5ee9a3.png

不错的工具,既有命令行又有web界面,可以放到后台运行,数据比redis-live感觉直观 ,ruby开发的,唯一的缺点是如果同时监控多个redis实例,不能单独显示每一个实例的数据信息,貌似是总和。

4 redis-monitor

一个国人用java写的,官网的是在win下编译的,看着不错,不过我在linux下没调试起来...

官网:https://github.com/litiebiao2012/redis-monitor

个人感觉,做集中监控可以使用redis-live,在命令行使用可以使用redis-stat,也可以根据自己的情况自行编写,总之就是根据info和monitor命令获取并展示信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值