Redis监控方案
?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版本要大于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?? 即可看到下圖:
? ? 一個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 --verboseredis-stat web模式:
?
redis-stat --server redis-stat --verbose --server=8080 5 redis-stat --server --daemon? 效果如下:
運行web模式
?
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命令獲取并展示信息。
總結
- 上一篇: docsify 如何写博客
- 下一篇: Linux安装 Screen出现的问题