寫在前面html
前兩天看到張善友老師的一篇文章《先定個小目標, 使用C# 開發的千萬級應用》,裏面給出了一張騰訊OA基礎服務中redis運行狀況的一張監控圖,而後想到本身的項目中前不久也上了redis緩存,因此也想找個監控工具。搜索一番,決定使用RedisLive來作監控。python
和RedisLive有關的信息git
RedisLive是由python編寫的而且開源的圖形化監控工具,很是輕量級,核心服務部分只包含一個web服務和一個基於redis自帶的info命令以及monitor命令的監控服務,界面上只有一個基於BootStrap的web界面,很是簡潔明瞭。除此以外,它還支持多實例監控,切換方便,並且配置起來也很是容易。監控信息支持redis存儲和持久化存儲(sqlite)兩種方式。開源地址爲:https://github.com/nkrode/RedisLive。github
部署過程web
這裏繼續使用以前配置好的centos環境,配置步驟點這裏。Linux系統一般都已經裝好了python環境,因此咱們就不用額外再裝一次,運行命令:redis
python –V
能夠查看系統中的python版本。因爲RedisLive是依賴於redis服務和web服務的,因此咱們要先安裝一些依賴包。sql
Python中的包管理工具是pip,默認狀況下centos是沒有安裝pip的,因此先裝好pip這個工具方便後面使用。shell
打開Xshell,鏈接上虛擬機,輸入命令下載安裝包:編程
wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gz
解壓壓縮包:json
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源碼文件有些代碼也能大體猜到是什麼意思。再次讓我感覺到在編程世界,用什麼語言並不重要,重要的是什麼語言能知足實際須要,編程語言雖然不是徹底相通的,但仍是有太多類似的。