Redis監控方案

weixin_34321977發表於2015-07-10

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命令獲取並展示資訊。

相關文章