zoukankan      html  css  js  c++  java
  • Redis监控方案

    Redis监控方案

    http://my.oschina.net/guol/blog/182265

        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

       下载试用:

    1
    2
    3
    4
    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版本要大于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安装:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    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   即可看到下图:

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


    3 redis-stat

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

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

           运行环境安装:

    1
    2
    apt-get install ruby   
    apt-get install rubygems
            redis-stat安装:
    1
    2
    3
    4
    5
    cd /root
    git clone https://github.com/junegunn/redis-stat.git
    cd /root/redis-stat/bin
    ###./redis-stat --help 可以看到使用帮助
    ./redis-stat 1
      下面看看redis-stat的具体用法
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    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命令行模式:
    1
    2
    3
    4
    5
    6
    7
    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模式:
    1
    2
    3
    redis-stat --server
    redis-stat --verbose --server=8080 5
    redis-stat --server --daemon

      效果如下:

    运行web模式

    1
    2
    cd /root/redis-stat/bin
    ./redis-stat --server=8080 5 --daemon
        在浏览器输入: http://10.20.111.188:8080/  结果如下:


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

    4 redis-monitor

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

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

       

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

  • 相关阅读:
    缓存算法之LRU与LFU
    银行家算法
    死锁,死锁的四个必要条件以及处理策略
    找出无序数组中位数的方法
    HTTP状态码
    进程调度算法
    宽字节wchar_t和窄字节char的相互转换
    胜天半子
    ? 题目 一道超难的奥数题,猜生日. A告诉B他生日的月份,告诉C他生日的日期 B说:“如果我不知道A的生日,那C肯定也不知道." C说:”本来我不知道,现在我知道了.“ B说:”哦,那我也知道了.
    有对夫妇生有一男一女,一天晚上,成员中的一个杀了另一个,剩下2个成员,1个是帮凶1个是目击者
  • 原文地址:https://www.cnblogs.com/zhengah/p/4635985.html
Copyright © 2011-2022 走看看