Redis集群監控管理軟件:Redis Sentinel

ec3y 9年前發布 | 28K 次閱讀 Redis NoSQL數據庫

Redis Sentinel(Redis集群監控管理軟件)

# Redis-Sentinel的官網地址:http://redis.io/topics/sentinel

# 注意:Redis-Sentinel官網提供不是穩定版!個人感覺這個比keepalived+redis來切換好非常多。

配置環境:

OS: CentOS6.1 x86  *  4

Software: redis-2.6.9

內存: 16G

CPU: E5606  @ 2.13GHz *2

------------------

IP分布情況:

Redis Sentinel   : 192.168.7.46

Redis server主  : 192.168.7.44

Redis server從1: 192.168.7.40

Redis server從2: 192.168.7.142

下面均以尾部表示IP,如 44、46....

結構如圖:

Redis集群監控管理軟件:Redis Sentinel

------------------

配置過程中,如果沒有4臺機器,那只要2臺也可以,其中一臺運行Sentinel,另一臺運行3個不同端口的redis服務即可。

集群最小單位為:1個Sentinel、2個redis;

------------------

開始:

1.1 啟動Redis-server服務

      #redis的安裝配置就不介紹了,不清楚的可以先google,redis的配置文件可以直接用。

      #啟動 Redis server服務 (IP 44、40、142

      redis-server /usr/local/redis-2.6.9/redis.conf   &

      #配置40、142為從庫,分別執行

      redis-cli slaveof 192.168.7.44 6379

      #查看主上的主從狀態

      redis-cli -h 192.168.7.44 -p 6379 info Replication

      #可以看到從狀態

Redis集群監控管理軟件:Redis Sentinel

      #隨意查看一臺從的主從狀態

      redis-cli -h 192.168.7.40 -p 6379 info Replication

Redis集群監控管理軟件:Redis Sentinel

------------------ 
 1.2啟動Redis Sentinel (ip:46)

      # Sentinel 的配置文件為sentinel.conf 復制以下配置,修改IP地址即可。

      cat    /usr/local/redis-2.6.9/sentinel.conf

      sentinel monitor test1 192.168.7.40 6379 1 #修改IP地址,IP可以是集群中的任意一個IP地址。

sentinel down-after-milliseconds test1 5000 #默認1s檢測一次,這里配置超時5000毫秒為宕機。
sentinel failover-timeout test1 900000
sentinel can-failover test1 yes
sentinel parallel-syncs test1 2     

 #啟動 Redis Sentinel 

     redis-server /usr/local/redis-2.6.9/sentinel.conf  --sentinel  &

Redis集群監控管理軟件:Redis Sentinel

      # Sentinel默認端口為26379 ,Sentinel終端打印 :     * slave  從庫信息 @ master-name 主庫信息 

      # 以上信息表明Sentinel 已經啟動成功,并且已經識別到當前的主從情況。

      # 但是這個只會在終端上顯示,如果你關閉當前終端,就無法顯示。

      # 用命令可以更直接顯示當前狀態。

      # 查詢master狀態

      redis-cli -h 192.168.7.46 -p 26379 info Sentinel

Redis集群監控管理軟件:Redis Sentinel

      #通過這里可以獲取到主IP地址

      redis-cli  -h 192.168.7.46 -p 26379  info sentinel| awk -F ',' '/status/ {print $3}'| awk -F '=' '{print $2}'

      # 查詢slave狀態

      redis-cli -h 192.168.7.46 -p 26379 sentinel slaves test1        //test1是sentinel.conf中配置的

Redis集群監控管理軟件:Redis Sentinel

      #圖中顯示了幾個從庫(name數量),從庫的IP地址和狀態,主庫的IP地址和狀態。

      #還有‘runid’ ,redis的從接管主沒有優先級的參數可以配置,默認使用runid的大小來競爭主庫,所以這里也可以預測下一個主是哪臺

      #這里看下一個主為142.  優先級這個以后作者應該會更新吧。

------------------

1.3演示故障

      #目前狀態:

      #Redis Sentinel   : 192.168.7.46

      #Redis server主  : 192.168.7.44

      #Redis server從1: 192.168.7.40

      #Redis server從2: 192.168.7.142 


      #關閉Redis server主  : 192.168.7.44

      redis-cli -h 192.168.7.44 -p 6379 shutdown

Redis集群監控管理軟件:Redis Sentinel

      #查看Sentinel狀態

      redis-cli -h 192.168.7.46 -p 26379 info Sentinel

Redis集群監控管理軟件:Redis Sentinel

      #可以看到Redis server主的IP地址已經變成192.168.7.142。

      #查看192.168.7.40的狀態,如果配置正常,它的主為142 

Redis集群監控管理軟件:Redis Sentinel

      # OK 自動切換已經實現了。

      # 如果不是主宕機,而是從宕機,那么不會發生切換行為,只會把宕機的那臺從集群中剔除。

      # 已宕機的機器,如果再次加入集群,只要它成為了當前主的從機,則Sentinel會自動發現,并將其加入集群成員。

      # 可以自己動手實驗下。

原文地址:http://blog.163.com/a12333a_li/blog/static/87594285201304103257837/

 本文由用戶 ec3y 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!