1介绍:
RedisLive是一款用Python编写的Redis图形监控工具,其源码在这里,英文文档在这里。RedisLive的原理很简单,就是通过监控脚本来利用Redis提供的MONITOR命令从被监控Redis实例中获取数据并存储到Redis的监控实例中来做数据分析。RedisLive以可视化的方式展示了Redis实例中的数据,分析查询模式和峰值
2安装:
# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/python-pip-0.8-1.el6.noarch.rpm
# rpm -ivh python-pip-0.8-1.el6.noarch.rpm
# pip-python install tornado
# pip-python install redis
# pip-python install python-dateutil
# pip-python install argparse
# git clone https://github.com/kumarnitin/RedisLive.git
Initialized empty Git repository in /root/RedisLive/.git/
remote: Counting objects: 715, done.
remote: Compressing objects: 100% (377/377), done.
remote: Total 715 (delta 338), reused 699 (delta 323)
Receiving objects: 100% (715/715), 2.59 MiB | 353 KiB/s, done.
Resolving deltas: 100% (338/338), done.
#cd RedisLive/sr
#vim redis-live.conf
{
"RedisServers":
[
{
"server": "192.168.131.128",
"port" : 6379,
"password":""
},
{
"server": "192.168.131.128",
"port" : 6380,
"password":""
}
],
"DataStoreType" : "redis",
"RedisStatsServer":
{
"server" : "192.168.131.128",
"port" : 6381,
"password":""
}
}
ps:这里需要注意的就是各个字段间是否有逗号,否者就会报错,当有多个实例时之间的大括号之间使用逗号隔开最后一个不使用逗号,括号内的各个字段也是一样
否者报如下错误修改监控和被监控Redis实例的配置信息并分别启动这三个Redis实例。
RedisServer是被监控Redis实例的配置,RedisStatsServer是监控Redis实例的配置,如果不希望将监控信息存储在Redis中,则需要将DataStoreType由redis改为sqlite类型即可,这样RedisStatsServer也就不用配置了。
如果被监控Redis需要密码才能访问,则需要在RedisServers加入password字段,但是我在测试的时候redis没有设置密码使用时仍会检测password字段报错,报错信息如下
这时可以加入password字段 密码部分可以为空如上面的配置
如果以上都配置完成后我们就可以启动redislive了
A)开启监控脚本
#./redis-monitor.py --duration 120 &
B)开启webserver
#./redis-live.py &
C)在浏览器中输入如下地址来查看RedisLive
http://ip:8888/index.html
启动服务之后,如果访问web页面,则会在当前终端输出日志,如果不想在终端输出,可以查看redis-live.py的参数
#./redis-live.py --help
Usage: ./redis-live.py [OPTIONS]
Options:
--debug debug mode (default 0)
--help show this help information
--port run on the given port (default 8888)
/usr/lib/python2.6/site-packages/tornado/log.py options:
--log_file_max_size max size of log files before rollover
(default 100000000)
--log_file_num_backups number of log files to keep (default 10)
--log_file_prefix=PATH Path prefix for log files. Note that if you
are running multiple tornado processes,
log_file_prefix must be different for each
of them (e.g. include the port number)
--log_to_stderr Send log output to stderr (colorized if
possible). By default use stderr if
--log_file_prefix is not set and no other
logging is configured.
--logging=debug|info|warning|error|none
Set the Python log level. If 'none', tornado
won't touch the logging configuration.
(default info)
可以到有日志文件大小、备份日志文件数、日志文件路径、错误日志输出、日志等级等信息。
需要注意的是:监控开启后会影响到Redis的性能,所以建议定时监控而不是实时监控。