写在前面html
前两天看到张善友老师的一篇文章《先定个小目标, 使用C# 开发的千万级应用》,里面给出了一张腾讯OA基础服务中redis运行状况的一张监控图,而后想到本身的项目中前不久也上了redis缓存,因此也想找个监控工具。搜索一番,决定使用RedisLive来作监控。python
和RedisLive有关的信息git
RedisLive是由python编写的而且开源的图形化监控工具,很是轻量级,核心服务部分只包含一个web服务和一个基于redis自带的info命令以及monitor命令的监控服务,界面上只有一个基于BootStrap的web界面,很是简洁明了。除此以外,它还支持多实例监控,切换方便,并且配置起来也很是容易。监控信息支持redis存储和持久化存储(sqlite)两种方式。开源地址为:https://github.com/nkrode/RedisLive。github
部署过程web
这里继续使用以前配置好的centos环境,配置步骤点这里。Linux系统一般都已经装好了python环境,因此咱们就不用额外再装一次,运行命令:redis
python –V
能够查看系统中的python版本。因为RedisLive是依赖于redis服务和web服务的,因此咱们要先安装一些依赖包。sql
Python中的包管理工具是pip,默认状况下centos是没有安装pip的,因此先装好pip这个工具方便后面使用。shell
打开Xshell,链接上虚拟机,输入命令下载安装包:编程
wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gz
解压压缩包:json
tar zvxf 1.5.5.tar.gz #解压文件
进入到pip文件目录:
cd pip-1.5.5
执行安装命令:
python setup.py install
而后会看到一大堆的安装信息快速闪过,看到最后输出
Finished processing dependencies for pip==1.5.5
就表示安装成功了。
若是看到安装失败输出错误信息:
Traceback (most recent call last): File "setup.py", line 31, in <module> from setuptools import setup, find_packages ImportError: No module named setuptools
说明有一个依赖工具setuptools缺失,返回根目录下载setuptools安装包:
cd ~ //返回根目录 wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg //下载安装包
而后执行:
sh setuptools-0.6c11-py2.7.egg
安装完setuptools后,再次运行“python setup.py install”就能成功安装pip了。
而后开始安装RedisLive的依赖项。先装好python中的web服务器tornado:
pip install tornado
再安装redis的python版SDK:
pip install redis
最后安装一个时间工具:
pip install python-dateutil
若是你的python版本小于2.7,还须要安装argparse :
pip install argparse
到如今为止,准备工做已经完成了,而后开始正式部署RedisLive。
先下载好RedisLive的源码,能够直接在虚拟机上使用git命令从github上下载(推荐):
git clone https://github.com/kumarnitin/RedisLive.git
也能够在本地下载好压缩包而后传到虚拟机上,下载地址:
https://codeload.github.com/nkrode/RedisLive/legacy.zip/master
下载完成后能够看到源码结构为:
其中redis-live.conf.example是做者给出的一个示例配置文件,启动服务以前把.example后缀删掉变成.conf文件(由于官网给的信息是编辑redis-live.conf来作配置,实际上从github上clone的代码里并无redis-live.conf这个文件,当时一直找.cong结尾的文件始终找不到,仔细一看原来是redis-live.conf.example,有点坑啊~),打开redis-live.conf,配置好redis实例的信息:
整个配置其实是一个json对象,RedisServers是redis服务器的信息,因为是数组类型因此配置多个redis实例。DataStoreType是监控信息的存储方式,有”redis”和” sqlite”两种方式,分别对应下面RedisStatsServer和SqliteStatsStore,编辑完成后保存。
redis-live.py是用来启动web服务的,默认端口是8888 。redis-monitor.py就是redis监控的核心服务。
到此为止全部准备工做都完成了,最后来启动服务:
./redis-monitor.py --duration=30 //启动监控,duration是心跳时间 ./redis-live.py //启动web服务,默认监听8888端口
而后在浏览器中打开http://192.168.3.222:8888/index.html,就能够看到监控信息了:
数据会30秒刷新一次,由于咱们在启动了时候设置了心跳时间。在页面右上角有一个下拉列表,里面是在配置文件里设置好的redis实例,能够轻松切换。其余功能能够在页面中慢慢感觉。
因为个人项目如今没有具体业务在跑因此监控数据不是不少,最后再来一张官网给出的效果图:
至此,部署成功!
总结
虽然并不懂python语言也历来没有接触过,但凭借着这三年写代码的感受丝绝不影响整个部署过程,打开python源码文件有些代码也能大体猜到是什么意思。再次让我感觉到在编程世界,用什么语言并不重要,重要的是什么语言能知足实际须要,编程语言虽然不是彻底相通的,但仍是有太多类似的。