在Centos中部署redis運行狀態圖形化監控工具 — RedisLive


寫在前面

 

前兩天看到張善友老師的一篇文章《先定個小目標, 使用C# 開發的千萬級應用》,里面給出了一張騰訊OA基礎服務中redis運行情況的一張監控圖,然后想到自己的項目中前不久也上了redis緩存,所以也想找個監控工具。搜索一番,決定使用RedisLive來做監控。

 

和RedisLive有關的信息

 

RedisLive是由python編寫的並且開源的圖形化監控工具,非常輕量級,核心服務部分只包含一個web服務和一個基於redis自帶的info命令以及monitor命令的監控服務,界面上只有一個基於BootStrap的web界面,非常簡潔明了。除此之外,它還支持多實例監控,切換方便,而且配置起來也非常容易。監控信息支持redis存儲和持久化存儲(sqlite)兩種方式。開源地址為:https://github.com/nkrode/RedisLive

 

部署過程

 

這里繼續使用之前配置好的centos環境,配置步驟點這里。Linux系統通常都已經裝好了python環境,所以我們就不用額外再裝一次,運行命令:

python –V 

可以查看系統中的python版本。由於RedisLive是依賴於redis服務和web服務的,所以我們要先安裝一些依賴包。

Python中的包管理工具是pip,默認情況下centos是沒有安裝pip的,所以先裝好pip這個工具方便后面使用。

打開Xshell,連接上虛擬機,輸入命令下載安裝包:

wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gz

解壓壓縮包:

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源碼文件有些代碼也能大致猜到是什么意思。再次讓我感受到在編程世界,用什么語言並不重要,重要的是什么語言能滿足實際需要,編程語言雖然不是完全相通的,但還是有太多相似的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM