写在前面

前两天看到张善友老师的一篇文章《先定个小目标, 使用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. ActiveMQ笔记(3):基于Networks of Brokers的HA方案

    上一篇介绍了基于ZK的ActiveMQ HA方案,虽然理解起来比较容易,但是有二个不足: 1)  占用的节点数过多,1个zk集群至少3个节点,1个activemq集群也至少得3个节点,但其实正常运行时 ...

  2. [LeetCode] Longest Increasing Subsequence 最长递增子序列

    Given an unsorted array of integers, find the length of longest increasing subsequence. For example, ...

  3. [LeetCode] Paint Fence 粉刷篱笆

    There is a fence with n posts, each post can be painted with one of the k colors. You have to paint ...

  4. NPOI操作EXCEL(五)——含合并单元格复杂表头的EXCEL解析

    我们在第三篇文章中谈到了那些非常反人类的excel模板,博主为了养家糊口,也玩命做出了相应的解析方法... 我们先来看看第一类复杂表头: ...... 博主称这类excel模板为略复杂表头模板(蓝色部 ...

  5. NPOI操作EXCEL(三)——反射机制进行excel表格数据的解析

    我们先来回忆回忆上篇文章讲到的通过xml配置文件实现excel批量模板解析的整体思路: 1.对每个excel模板制定xml配置规则集,实现xml配置文件的解析服务 2.为每个excel模板制定DTO, ...

  6. 跨域请求——WebClient通过get和post请求api

    AJAX不可以实现跨域请求,经过特殊处理才行.一般后台可以通过WebClient实现跨域请求~ //get 请求        string url = string.Format("htt ...

  7. adb devices 偵測不到 手機

    現象: system 有偵測到 mobile phone, xxx@xxx-ThinkPad-T460p:~/.android$ lsusb Bus Device : ID 1d6b: Linux F ...

  8. Android 使用代码主动去调用控件的点击事件(模拟人手去触摸控件)

    使用代码主动去调用控件的点击事件(模拟人手去触摸控件) //View 可以是LinearLayout,Button,TextView View.performClick();

  9. win10使用技巧之如何打出偏僻字母

    一.背景 有时需要在打出一些希腊字母,诸如ɛ.μ等字符,如果输入法不支持该怎么办呢?在很多国产拼音软件中,都会提供扩展方便用户寻找这类字符,但是如果用户换过一款软件,可能要在一定时间找到这些字符就没那 ...

  10. Socket编程实践(2) Socket API 与 简单例程

    在本篇文章中,先介绍一下Socket编程的一些API,然后利用这些API实现一个客户端-服务器模型的一个简单通信例程.该例子中,服务器接收到客户端的信息后,将信息重新发送给客户端. socket()函 ...