写在前面

前两天看到张善友老师的一篇文章《先定个小目标, 使用C# 开发的千万级应用》,里面给出了一张腾讯OA基础服务中redis运行情况的一张监控图,然后想到自己的项目中前不久也上了redis缓存,所以也想找个监控工具。搜索一番,决定使用RedisLive来做监控。

和RedisLive有关的信息

RedisLive是由python编写的并且开源的图形化监控工具,非常轻量级,核心服务部分只包含一个web服务和一个基于redis自带的info命令以及monitor命令的监控服务,界面上只有一个基于BootStrap的web界面,非常简洁明了。除此之外,它还支持多实例监控,切换方便,而且配置起来也非常容易。监控信息支持redis存储和持久化存储(sqlite)两种方式。开源地址为:https://github.com/nkrode/RedisLive

部署过程

这里继续使用之前配置好的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, 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源码文件有些代码也能大致猜到是什么意思。再次让我感受到在编程世界,用什么语言并不重要,重要的是什么语言能满足实际需要,编程语言虽然不是完全相通的,但还是有太多相似的。

在Centos中部署redis运行状态图形化监控工具 — RedisLive的更多相关文章

  1. redis运行状态图形化监控工具 — RedisLive

    在Centos中部署redis运行状态图形化监控工具 — RedisLive   写在前面 前两天看到张善友老师的一篇文章<先定个小目标, 使用C# 开发的千万级应用>,里面给出了一张腾讯 ...

  2. centOS 中安装 Redis

    之前安装过了 jdk,mysql,tomcat,这次安装 Redis,最开始是将 redis 安装在 windows 下 run 的,这时安装在 Linux 里面试试. 1 . 首先得安装 c环境,用 ...

  3. 在项目中部署redis的读写分离架构(包含节点间认证口令)

    #### 在项目中部署redis的读写分离架构(包含节点间认证口令) ##### 1.配置过程 ---  1.此前就是已经将redis在系统中已经安装好了,redis utils目录下,有个redis ...

  4. Centos中部署NetCore项目(二)

    前言 在centos中部署程序,一般都不会是使用控制台进程直接启动,或者是后台运行.而是一些守护进程管理工具进行管理,例如supervisor. 部署Web相关程序,使用nginx是比较普遍的, 安装 ...

  5. 在 Kubernetes 中部署 Redis 集群

    在 Kubernetes 中部署 Redis 集群 在Kubernetes中部署Redis集群面临挑战,因为每个 Redis 实例都依赖于一个配置文件,该文件可以跟踪其他集群实例及其角色.为此,我们需 ...

  6. 在centos中部署jenkins

    在centos中部署jenkins,需要的环境:安装jdk,Apache-tomcat 这两步我前面文章里已写,再次忽略 到官网下载最新的jenkins 我这里的是  jenkins.war 把该文件 ...

  7. CentOS中搭建Redis伪分布式集群【转】

    解压redis 先到官网https://redis.io/下载redis安装包,然后在CentOS操作系统中解压该安装包: tar -zxvf redis-3.2.9.tar.gz 编译redis c ...

  8. .NetCore中的程序通过Docker在CentOS中部署

    基础说明 安装Docker过程就略过了 创建一个Asp.Net Core程序 启用Docker支持,会生成Dockerfile文件,接下来看下这个文件,当然不同的版本生成的具体可能不一致 FROM m ...

  9. Redis笔记 -- 在 Centos7.4单机中部署Redis集群(二)

    0x00--背景和目的 在单台PC服务器上部署Redis集群,通过不同的TCP端口启动多实例,模拟多台独立PC组成集群. 0x01--环境描述: Centos版本:CentOS Linux relea ...

随机推荐

  1. [LeetCode] Reorder List 链表重排序

    Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do th ...

  2. 类EF框架Chloe.ORM升级:只为更完美

    扯淡 Chloe.ORM:一款轻量.高效的.NET C#数据库访问框架(ORM).查询接口借鉴 Linq(但不支持 Linq).借助 lambda 表达式,可以完全用面向对象的方式就能轻松执行多表连接 ...

  3. js封装的三级联动菜单(使用时只需要一行js代码)

    前言 在实际的项目开发中,我们经常需要三级联动,比如省市区的选择,商品的三级分类的选择等等. 而网上却找不到一个代码完整.功能强大.使用简单的三级联动菜单,大都只是简单的讲了一下实现思路. 下面就给大 ...

  4. CCF 201512-4 送货(错误)

    直接用DFS深搜,检查了好久没能发现错误,贴上来以后慢慢看... /* DFS深度优先搜索 Edge保存边 u{v,been} cnt记录走过的街道 如果没有就return ;继续递归 */ #inc ...

  5. UIButton快速点击,只执行最后一次

    button快速点击时,会导致,同一动作执行多次,常用解决办法: 第一种方法:推荐 //取消执行 [[self class] cancelPreviousPerformRequestsWithTarg ...

  6. cmd常用命令

    2016.12.18 0:07 (持续更新) cd 目录名:打开文件目录, cd .. 返回上一目录 cd ... 返回上上级目录 cd \ 返回根目录 cls 清除当前cmd页面所有的记录 md 名 ...

  7. Azure AD Connect 手动同步

    我们目前采用工具Azure AD Connect 目录同步工具将本地域控制器的用户信息同步至office365和Azure 在之前目录同步工具中使用Windows 任务计划程序或单独的 Windows ...

  8. ASP.NET MVC 应用,站点发布到本地IIS

    材料准备 visual studio 2013 , iis 7 具体步骤 1.以管理员身份启动visual studio 2.新建项目 web app 或者站点 3.编译项目 4.右击项目选择publ ...

  9. List Map Set 的用法和区别

    参考 http://blog.csdn.net/vstar283551454/article/details/8682655

  10. 82.Android之MVP+Retrofit+RxJava实践小结

    转载:http://wuxiaolong.me/2016/06/12/mvpRetrofitRxjava/ 关于MVP.Retrofit.RxJava,之前已经分别做了分享,如果您还没有阅读过,可以猛 ...