Redis服务器监控工具redis-live
目前来说,越来越多的使用多了NOSQL的业务,但是这方面的监控缺不多。今天给大家介绍几个专业监控redis服务的工具,便于大家进行redis性能分析。
一、redmon
这个工具是用ruby语言写的,ruby是小鬼子弄出来的,个人真心觉得比较难用。这个语言的包需要安装rvm(ruby version manager)来管理。所以首先要部署rvm的环境,虽然说不是很复杂,但是真心觉得不想用这个,以后有时间了会给大家介绍这个的。
二、redis-live
Github 下载: RedisLive
Centos 安装 python-pip
1) python-pip 官方: https://pypi.python.org/pypi/pip
2) 直接下载: wget https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz
3) 解压安装: tar zxvf pip-1.5.6.tar.gz ; python setup.py install
Centos 安装 setuptools
1) setuptools 官方: https://pypi.python.org/pypi/setuptools
2) 直接下载: wget https://pypi.python.org/packages/source/s/setuptools/setuptools-5.4.1.tar.gz#md5=3540a44b90017cbb851840934156848e
3) 解压安装: tar zxvf setuptools-5.4.1.tar.gz ; python setup.py install
今天的主要目的是redis-live这个软件。相对于redmon来说,部署相对来说简单的多了,而且功能上面也丝毫不逊色于redmon
安装redis-live:
因为redis-live是基于python开发的,所以首先要部署所需要的python环境
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 install tornado
pip install redis // 需安装,跟redis-server不同
pip install python-dateutil
pip install argparse
环境部署完了之后,就需要开始安装软件了。
RedisLive:https://github.com/sunboy-2050/RedisLive
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.
因为没有打包的安装包,所以只能下载安装git的源码
Install Dependencies
-
tornado
pip install tornado
-
redis.py
pip install redis
-
python-dateutil
pip install python-dateutil
You'll also need argparse if you're running Python < 2.7:
-
argparse
pip install argparse
Get RedisLive
-
Clone the repo
git clone https://github.com/kumarnitin/RedisLive.git
, ordownload the latest release
Configuration
-
edit redis-live.conf :
-
update the value of the key
RedisServers
to the redis instances you want to monitor. You can monitor multiple instances by appending more values to the RedisServers list. -
update the value of the key
RedisStatsServer
to the redis instance you will use to store RedisLive data (this redis instance is different from the redis instances you are monitoring). - passwords can be added as an optional parameter for any redis instance
-
update the value of the key
if you don't have a spare redis instance to use to store Redis Live data, then you can configure to use sqlite by changing "DataStoreType" : "sqlite"
Start RedisLive
-
start the monitoring script
./redis-monitor.py --duration=120
duration is in seconds (see caveat) -
start the webserver
./redis-live.py
-
RedisLive is now running
http://localhost:8888/index.html
Caveat on monitoring redis
Currently the only hook into monitoring a redis instance is Redis MONITOR command, which streams back every command processed and reduces the throughput of the redis instance. It is recommended to run redis-monitor with --duration suitable for your redis deployment and scheduling it to run periodically as a cron job.
安装好之后就可以配置了:
cd RedisLive/src
vi redis-live.conf
{
"RedisServers":
[
{
"server" : "127.0.0.1",
"port" : 6379
}
],
"DataStoreType" : "sqlite",
"RedisStatsServer":
{
"server" : "127.0.0.1",
"port" : 6381
}
"SqliteStatsStore" :
{
"path": "db/redislive.sqlite"
}
}
RedisServers这个是redis服务器的配置
RedisStatsServer是redis服务器的监控信息可以存放在其他的redis服务器中.也就是RedisStatsServe
一般的是把”DataStoreType”改成sqlite类型的,下面的RedisStatsServer就不用配置了
注:因为有些redis服务器是需要密码进行访问的,所以如果有密码的话,需要在RedisServers里面写上密码:如下:
"RedisServers":
[
{
"server" : "127.0.0.1",
"port" : 6379,
"password":"xxxxxx"
}
],
配置好之后,就可以启动服务了。
./redis-monitor.py --duration 120 & ./redis-live.py &
注:启动服务之后,如果访问web页面的话,会在当前终端输出日志,如果不想在终端输出,可以查看redis-live.py的参数
[root@localhost src]# ./redis-live.py --help
Usage: ./redis-live.py [OPTIONS]
Options:
--help show this help information
--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)
可以看到有日志大小,路径,级别等等的选项。
最后来看下监控效果图:
参考推荐:
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2017-04-21 00:29:38
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!