Redis监控方案

Stella981
• 阅读 671

Redis现在在业务中应用已经很广泛了,但是如何监控redis,实时的观察redis的性能,却很少的提及,现在常见的监控方案基本上都是使用redis自带的info命令和monitor命令获取相关信息,然后提取出来显示。

测试环境:

redis版本:2.4.17

IP:10.20.111.188

1 redis-faina

一个使用redis自带命令monitor的输出结果做分析的python脚本,在命令行下使用,可以做实时分析使用。

官网:https://github.com/Instagram/redis-faina

下载试用:

cd /opt/test
git clone https://github.com/Instagram/redis-faina.git
cd redis-faina/
redis-cli -p 6379 MONITOR | head -n 100 | ./redis-faina.py --redis-version=2.4

测试结果如下:

Redis监控方案

可以看到一些实时的数据,并且有一定的统计数据,可以作为一个命令行工具使用。推荐使用,不过redis版本要大于2.4。

2 redis-live

一个用来监控redis实例,分析查询语句并且有web界面的监控工具,python编写。

官网:https://github.com/nkrode/RedisLive

下载试用:

运行环境依赖包安装:http://www.nkrode.com/article/real-time-dashboard-for-redis

redis-live安装:

cd /root
git clone https://github.com/nkrode/RedisLive.git
cd RedisLive/src
###修改redis-live.conf文件
{
    "RedisServers":
    [ 
        {
              "server": "10.20.111.188",
              "port" : 6379
        }
        
    ],

    "DataStoreType" : "redis",

    "RedisStatsServer":
    {
        "server" : "10.20.111.188",
        "port" : 6380
    },
    
    "SqliteStatsStore" :
    {
        "path":  "to your sql lite file"
    }
}
###修改完毕
###启动监控服务,每30秒监控一次
./redis-monitor.py --duration=30 
###再次开启一个终端,进入/root/RedisLive/src目录,启动web服务
./redis-live.py

在浏览器输入: http://10.20.111.188:8888/index.html   即可看到下图:

Redis监控方案

一个web界面,可以同时监控多个redis实例,做集中监控比较好。

3 redis-stat

一个用ruby写成的监控redis的程序,基于info命令获取信息,而不是通过monitor获取信息,性能应该比monitor要好。

官网:https://github.com/junegunn/redis-stat

运行环境安装:

apt-get install ruby    
apt-get install rubygems

redis-stat安装:

cd /root
git clone https://github.com/junegunn/redis-stat.git
cd /root/redis-stat/bin
###./redis-stat --help 可以看到使用帮助
./redis-stat 1

下面看看redis-stat的具体用法

usage: redis-stat [HOST[:PORT] ...] [INTERVAL [COUNT]]

    -a, --auth=PASSWORD              Password
    -v, --verbose                    Show more info
        --style=STYLE                Output style: unicode|ascii
        --no-color                   Suppress ANSI color codes
        --csv=OUTPUT_CSV_FILE_PATH   Save the result in CSV format

        --server[=PORT]              Launch redis-stat web server (default port: 63790)
        --daemon                     Daemonize redis-stat. Must be used with --server option.

        --version                    Show version
        --help                       Show this message

redis-stat命令行模式:

redis-stat
redis-stat 1
redis-stat 1 10
redis-stat --verbose
redis-stat localhost:6380 1 10
redis-stat localhost localhost:6380 localhost:6381 5
redis-stat localhost localhost:6380 1 10 --csv=/tmp/output.csv --verbose

redis-stat web模式:

redis-stat --server
redis-stat --verbose --server=8080 5
redis-stat --server --daemon

效果如下:

Redis监控方案

运行web模式

cd /root/redis-stat/bin
./redis-stat --server=8080 5 --daemon

在浏览器输入: http://10.20.111.188:8080/  结果如下:

Redis监控方案

不错的工具,既有命令行又有web界面,可以放到后台运行,数据比redis-live感觉直观 ,ruby开发的,唯一的缺点是如果同时监控多个redis实例,不能单独显示每一个实例的数据信息,貌似是总和。

4 redis-monitor

一个国人用java写的,官网的是在win下编译的,看着不错,不过我在linux下没调试起来...

官网:https://github.com/litiebiao2012/redis-monitor

个人感觉,做集中监控可以使用redis-live,在命令行使用可以使用redis-stat,也可以根据自己的情况自行编写,总之就是根据info和monitor命令获取并展示信息。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Karen110 Karen110
3年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在
Stella981 Stella981
3年前
Nginx + lua +[memcached,redis]
精品案例1、Nginxluamemcached,redis实现网站灰度发布2、分库分表/基于Leaf组件实现的全球唯一ID(非UUID)3、Redis独立数据监控,实现订单超时操作/MQ死信操作SelectPollEpollReactor模型4、分布式任务调试Quartz应用
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这