写在前面
前两天看到张善友老师的一篇文章《》,里面给出了一张腾讯 OA 基础服务中 redis 运行情况的一张监控图,然后想到自己的项目中前不久也上了 redis 缓存,所以也想找个监控工具。搜索一番,决定使用 RedisLive 来做监控。
和 RedisLive 有关的信息
RedisLive 是由 python 编写的并且开源的图形化监控工具,非常轻量级,核心服务部分只包含一个 web 服务和一个基于 redis 自带的 info 命令以及 monitor 命令的监控服务,界面上只有一个基于 BootStrap 的 web 界面,非常简洁明了。除此之外,它还支持多实例监控,切换方便,而且配置起来也非常容易。监控信息支持 redis 存储和持久化存储 (sqlite) 两种方式。开源地址为:。
部署过程
这里继续使用之前配置好的 centos 环境,配置步骤点。Linux 系统通常都已经装好了 python 环境,所以我们就不用额外再装一次,运行命令:
- python–V
可以查看系统中的 python 版本。由于 RedisLive 是依赖于 redis 服务和 web 服务的,所以我们要先安装一些依赖包。
Python 中的包管理工具是 pip,默认情况下 centos 是没有安装 pip 的,所以先装好 pip 这个工具方便后面使用。
打开 Xshell,连接上虚拟机,输入命令下载安装包:
- wget--no - check - certificate https: //github.com/pypa/pip/archive/1.5.5.tar.gz
解压压缩包:
- 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,
- infrom 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
也可以在本地下载好压缩包然后传到虚拟机上,下载地址:
下载完成后可以看到源码结构为:
其中 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端口
然后在浏览器中打开,就可以看到监控信息了:
数据会 30 秒刷新一次,因为我们在启动了时候设置了心跳时间。在页面右上角有一个下拉列表,里面是在配置文件里设置好的 redis 实例,可以轻松切换。其他功能可以在页面中慢慢感受。
由于我的项目现在没有具体业务在跑所以监控数据不是很多,最后再来一张官网给出的效果图:
至此,部署成功!
总结
虽然并不懂 python 语言也从来没有接触过,但凭借着这三年写代码的感觉丝毫不影响整个部署过程,打开 python 源码文件有些代码也能大致猜到是什么意思。再次让我感受到在编程世界,用什么语言并不重要,重要的是什么语言能满足实际需要,编程语言虽然不是完全相通的,但还是有太多相似的。
来源: http://www.cnblogs.com/hohoa/p/5860896.html