安装Redis图形监控工具---RedisLiveBywhhuangRedisLive简介RedisLive是一款用Python编写基于WEB的Redis图形监控工具,也是一款实时监控Redis数据的开源软件,以WEB的形式展现出redis中的key的情况,实例数据等信息。RedisLive在github上的地址:官网英文文档地址:的原理很简单,就是通过监控脚本来利用Redis提供的MONITOR命令从被监控Redis实例中获取数据并存储到Redis的监控实例中来做数据分析。RedisLive以可视化的方式展示了Redis实例中的数据,分析查询模式和峰值,下图是官方提供的效果图:安装Python既然RedisLive由Python编写,那么Python环境是必不可少的,一般Linux默认都安装了Python。在终端敲如下命令#python,可以验证是否已经安装了Python,如下图:出现如上信息说明已经安装了Python,否则就要安装Python,这里简单说明一下安装或者升级Python:其实一般情况只需要升级Python,前面已经提到过Linux发行版默认都安装了Python的,所以这里就说一下升级Python的方法。---------------------------------------------------------------------------------------------------------------------------------下载Python源码包,当下流行的2个版本:Python-3.3.3.tar.xz、Python-2.7.6.tar.xz,从RedisLive的redis-monitor.py脚本中可以看出这个脚本是用Python2.7版本编写的,所以安装2.7版本即可。如下图是redis-monitor.py截图:---------------------------------------------------------------------------------------------------------------------------------Python2.7.6的安装方法:1.下载源代码.安装解压、编译、安装命令如下:#xz-dPython-2.7.6.tar.xz#tarxvfPython-2.7.6.tar#cdPython-2.7.6/#./configure--prefix=可以指定安装路径,也可以不指定,默认安装到/usr/local/bin/#make&&makeinstall顺便说一下最新压缩率之王XZ压缩xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具。之前xz使用一直很少,所以几乎没有什么提起。我是在下载linux内核的时候看到这种压缩格式的。最新一段时间会经常听到xz被采用的声音,像是最新的archlinux某些东西就使用xz压缩。不过xz也有一个坏处就是压缩时间比较长,比7z压缩时间还长一些。不过压缩是一次性的,所以可以忽略。xz压缩文件方法或命令:#xz-z要压缩的文件如果要保留被压缩的文件加上参数-k,如果要设置压缩率加入参数-0到-9调节压缩率。如果不设置,默认压缩等级是6。xz解压文件方法或命令:#xz-d要解压的文件同样使用-k参数来保留被解压缩的文件。创建或解压tar.xz文件的方法习惯了tarczvf或tarxzvf的人可能碰到tar.xz也会想用单一命令搞定解压或压缩。其实不行tar里面没有征对xz格式的参数比如z是针对gzip,j是针对bzip2。创建tar.xz文件:只要先tarcvfxxx.tarxxx/这样创建xxx.tar文件先,然后使用xz-zxxx.tar来将xxx.tar压缩成为xxx.tar.xz解压tar.xz文件:先xz-dxxx.tar.xz将xxx.tar.xz解压成xxx.tar然后,再用tarxvfxxx.tar来解包。好了,接下来继续我们RedisLive的安装,Python安装成功后,需要替换原有的/usr/bin/python,方法如下:#养成好习惯,创建连接时先做好备份#mv/usr/bin/python/usr/bin/python.bak-----可以不做备份#sudoln-sf/usr/local/bin/python2.7/usr/bin/python---–这里是做软链接---------------------------------------------------------------------------------------------------------------------------------这里需要注意一个问题:由于yum是基于python2.4的,所以要修改yum配置,不然yum命令就没有用了。如果不太清楚python2.4的位置,可以运行whereis命令找一下,如下图:#whereispython修改yum,首行修改为#!/usr/bin/python2.4(原为#!/usr/bin/python)#vi/usr/bin/yum安装python-setuptools#使用YUM安装python-setuptools#yuminstallpython-setuptools安装python-pip安装python模块我这里使用的pip,如果没有pip需要手动安装一下,当然也可以使用easy_install来安装模块#easy_installpip也可以使用yum安装:yuminstallpython-pip,如图:安装三个依赖组件安装RedisLive,需要安装相关的python模块#pipinstalltornado#pipinstallredis#pipinstallpython-dateutil#pipinstallargparse安装上面3个模块如下图所示:如果是内网环境(无法上网)就要手动下载安装tornado、python-dateutil了,OMG,具体安装教程请点击这里。安装Tornado#wget到此,tornado已安装完成。开启服务,运行helloworld程序#cduser/tornado-1.2.1#ls#ls./demos#vim./demos/helloworld/helloworld.py#./demos/helloworld/helloworld.py此时打开浏览器,地址栏输入:,即可看到hello,world步骤:将工作目录改为tornado所在目录-检查是否存在demos目录-检查demos目录下是否有helloworld-查看helloworld代码-运行程序)安装RedisLive下载RedisLive软件包,下载地址如下:解压nkrode-RedisLive-22e7051.zip文件,配置redis-live.conf。或者使用命令下载:#cd/usr/local/whhuang/#gitclone解释下上面的命令:将会在/usr/local/whhuang目录下建立一个新目录RedisLive,用于存放RedisLive的相关文件。配置RedisLive整理:bywhhuang配置RedisLive的配置文件,src文件夹下的redis-live.conf。第一种配置,Redis:获取到的监控数据记录在Redis里面,这个Redis尽量不要跟监控的Redis是同一个。如下是配置:{RedisServers:[{server:192.168.100.148,port:6380},{server:192.168.100.147,port:6379}--被监控的Redis,可以配置多个],DataStoreType:redis,----监控数据存储方式RedisStatsServer:{server:192.168.100.147,port:6379----存储监控数据的Redis}}第二种配置,sqlite:方式二,数据记录在文件sqlite里面:{RedisServers:[{server:192.168.100.148,port:6380},{server:192.168.100.147,port:6379}--被监控的Redis,可以配置多个],DataStoreType:sqlite,----监控数据存储方式SqliteStatsStore:{path:/usr/local/whhuang/RedisLive/dbs/redislive.sqlite—--数据存储的路径,需要新建redislive.sqlite文件}}注意配置文件的格式:一定要注意逗号和对齐方式,不然可能会报错,上面已经是最简洁的写法了,我没有使用redis来存储数据,而是使用了sqlite,如果redis有密码,可以加一条password即可。这里简单说下配置参数的含义:1)RedisServers为你要监控的redis实例,可以添加多个Redis实例。2)RedisStatsServer是存储RedisLive监控数据的实例,如果没有存储RedisLive数据的实例,需要将DataStoreType改成DataStoreType:sqlite这种设置。启动RedisLive1.启动监控脚本,监控120秒,duration参数是以秒为单位#cd/usr/local/whhuang/RedisLive/src/#./redis-monitor.py--duration=1202.启动webserver。RedisLive使用tornado作为web服务器,所以不需要单独安装服务器。Tornadowebserver是使用Python编写出來的一个极轻量级、高可伸缩性和非阻塞IO的Web服务器软件。#cd/usr/local/whhuang/RedisLive/src/#./redis-live.py然后在你的浏览器中输入:如:浏览后,服务器终端会打屏,如果关闭终端,进程会关闭。使用-h,查询到redis-live.py的帮助./redis-live.py–h可以看出不打屏和不日志可以使用参数--logging=none,这样关闭终端进程依然在。#./redis-live.py--logging=none定时监控整理:bywhhuangRedislive是实时监控的,实时监控对Redis性能会产生影响,所以需要定时启动Redislive的监控脚本来减少影响。定时设置方式一:启用crond服务策略(可以自由控制):定时每分钟执行一次redis-monitor.py脚本,每次监控15