写在前面

前两天看到张善友老师的一篇文章《先定个小目标, 使用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. eclipse安装版本

    http://www.08kan.com/gwk/MzAwOTE3NDY5OA/203521023/1/cdf557d3a1d4535a6c691ce756c3f8b1.html

  2. UOJ #221 【NOI2016】 循环之美

    题目链接:循环之美 这道题感觉非常优美--能有一个这么优美的题面和较高的思维难度真的不容易-- 为了表示方便,让我先讲一下两个符号.\([a]\)表示如果\(a\)为真,那么返回\(1\),否则返回\ ...

  3. [LeetCode] Implement Queue using Stacks 用栈来实现队列

    Implement the following operations of a queue using stacks. push(x) -- Push element x to the back of ...

  4. 20145215&20145307《信息安全系统设计基础》实验五 网络通信

    小组成员:20145215卢肖明.20145307陈俊达 实验报告链接:信息安全系统设计基础--实验五实验报告

  5. [Java]使用HttpClient实现一个简单爬虫,抓取煎蛋妹子图

    第一篇文章,就从一个简单爬虫开始吧. 这只虫子的功能很简单,抓取到”煎蛋网xxoo”网页(http://jandan.net/ooxx/page-1537),解析出其中的妹子图,保存至本地. 先放结果 ...

  6. FineUI(开源版)v4.2.2发布(8年125个版本,官网示例突破300个)!

    开源版是 FineUI 的基石,从 2008 年至今已经持续发布了 120 多个版本,拥有会员 15,000 多位,捐赠会员达到 1,200 多位.   FineUI(开源版)v4.2.2 是 8 年 ...

  7. asp.net 正则获取url参数

    现在有一种场景:Url是数据库里面的,里面带有很多参数,如何获取具体参数的值呢? var uri = new Uri(pageUrl); var queryString = uri.Query; va ...

  8. Java递归目录结构

    import java.io.File; public class FileTree { public static void main(String[] args) { printFileTree( ...

  9. 如何把家里的pc改装成linux服务器

    家里有一台pc笔记本闲置在家,最近想搭建一个ubuntu系统玩一下kvm. 这个方法能避免家里宽带每隔一段时间ip自动变换. 我用到了: 1.亚马逊的aws(ec2) 2.家里的路由器 3.aws里装 ...

  10. 14 Generator

    Generator 就是可以返回多个结果,也是支持 Iterator 接口. function* helloWorldGenerator() { yield 'hello'; yield 'world ...