• 在Centos中部署redis运行状态图形化监控工具 — RedisLive


    写在前面

     

    前两天看到张善友老师的一篇文章《先定个小目标, 使用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源码文件有些代码也能大致猜到是什么意思。再次让我感受到在编程世界,用什么语言并不重要,重要的是什么语言能满足实际需要,编程语言虽然不是完全相通的,但还是有太多相似的。

  • 相关阅读:
    js解码
    node.js关于传送数据的二三事
    node下新建工程
    mysql配置
    mongodb配置及简单示例
    vue使用watch 观察路由变化,重新获取内容
    vue 封装方法
    ES6,import时如何正确使用花括号'{ }'
    css字体图标的制作
    vue实现淘宝商品详情页属性选择功能
  • 原文地址:https://www.cnblogs.com/hohoa/p/5860896.html
Copyright © 2020-2023  润新知