1. 程式人生 > 其它 >14、redis sentinel.conf配置檔案說明

14、redis sentinel.conf配置檔案說明

# 14、redis sentinel.conf配置檔案說明
```Plain Text
# Example sentinel.conf

# *** IMPORTANT ***
# 繫結IP地址
# bind 127.0.0.1 192.168.1.1  # 儘量不要將127.0.0.1放在第一IP
# 保護模式(是否禁止外部連結,除繫結的ip地址外)
# protected-mode no

# port <sentinel-port>
# 此Sentinel例項執行的埠
port 26379

# 預設情況下,Redis Sentinel不作為守護程式執行。 如果需要,可以設定為 yes。
daemonize no

# 啟用守護程序執行後,Redis將在/var/run/redis-sentinel.pid中寫入一個pid檔案
pidfile /var/run/redis-sentinel.pid

# 指定日誌檔名。 如果值為空,將強制Sentinel日誌標準輸出。守護程序下,如果使用標準輸出進行日誌記錄,則日誌將傳送到/dev/null
logfile ""

# sentinel announce-ip <ip>
# sentinel announce-port <port>
#
# 上述兩個配置指令在環境中非常有用,因為NAT可以通過非本地地址從外部訪問Sentinel。
#
# 當提供announce-ip時,Sentinel將在通訊中宣告指定的IP地址,而不是像通常那樣自動檢測本地地址。
#
# 類似地,當提供announce-port 有效且非零時,Sentinel將宣佈指定的TCP埠。
#
# 這兩個選項不需要一起使用,如果只提供announce-ip,Sentinel將宣告指定的IP和“port”選項指定的伺服器埠。
# 如果僅提供announce-port,Sentinel將通告自動檢測到的本地IP和指定埠。
#
# Example:
#
# sentinel announce-ip 1.2.3.4

# dir <working-directory>
# 每個長時間執行的程序都應該有一個明確定義的工作目錄。對於Redis Sentinel來說,/tmp就是自己的工作目錄。
dir /tmp

# sentinel monitor <master-name> <ip> <redis-port> <quorum>
#
# 告訴Sentinel監聽指定主節點,並且只有在至少<quorum>哨兵達成一致的情況下才會判斷它 O_DOWN 狀態。
#
#
# 副本是自動發現的,因此您無需指定副本。
# Sentinel本身將重寫此配置檔案,使用其他配置選項新增副本。另請注意,當副本升級為主副本時,將重寫配置檔案。
#
# 注意:主節點(master)名稱不能包含特殊字元或空格。
# 有效字元可以是 A-z 0-9 和這三個字元 ".-_".
sentinel monitor mymaster 127.0.0.1 6379 2

# 如果redis配置了密碼,那這裡必須配置認證,否則不能自動切換
# Example:
#
# sentinel auth-pass mymaster MySUPER--secret-0123passw0rd

# sentinel down-after-milliseconds <master-name> <milliseconds>
#
# 主節點或副本在指定時間內沒有回覆PING,便認為該節點為主觀下線 S_DOWN 狀態。
#
# 預設是30秒
sentinel down-after-milliseconds mymaster 30000

# sentinel parallel-syncs <master-name> <numreplicas>
#
# 在故障轉移期間,多少個副本節點進行資料同步
sentinel parallel-syncs mymaster 1

# sentinel failover-timeout <master-name> <milliseconds>
#
# 指定故障轉移超時(以毫秒為單位)。 它以多種方式使用:
#
# - 在先前的故障轉移之後重新啟動故障轉移所需的時間已由給定的Sentinel針對同一主伺服器嘗試,是故障轉移超時的兩倍。
#
# - 當一個slave從一個錯誤的master那裡同步資料開始計算時間。直到slave被糾正為向正確的master那裡同步資料時。
#
# - 取消已在進行但未生成任何配置更改的故障轉移所需的時間
#
# - 當進行failover時,配置所有slaves指向新的master所需的最大時間。
#   即使過了這個超時,slaves依然會被正確配置為指向master。
#
# 預設3分鐘
sentinel failover-timeout mymaster 180000

# 指令碼執行
#
# sentinel notification-script和sentinel reconfig-script用於配置呼叫的指令碼,以通知系統管理員或在故障轉移後重新配置客戶端。
# 指令碼使用以下規則執行以進行錯誤處理:
#
# 如果指令碼以“1”退出,則稍後重試執行(最多重試次數為當前設定的10次)。
#
# 如果指令碼以“2”(或更高的值)退出,則不會重試執行。
#
# 如果指令碼因為收到訊號而終止,則行為與退出程式碼1相同。
#
# 指令碼的最長執行時間為60秒。 達到此限制後,指令碼將以SIGKILL終止,並重試執行。

# 通知指令碼
#
# sentinel notification-script <master-name> <script-path>
#
# 為警告級別生成的任何Sentinel事件呼叫指定的通知指令碼(例如-sdown,-odown等)。
# 此指令碼應通過電子郵件,SMS或任何其他訊息傳遞系統通知系統管理員 監控的Redis系統出了問題。
#
# 使用兩個引數呼叫指令碼:第一個是事件型別,第二個是事件描述。
#
# 該指令碼必須存在且可執行,以便在提供此選項時啟動sentinel。
#
# 舉例:
#
# sentinel notification-script mymaster /var/redis/notify.sh

# 客戶重新配置指令碼
#
# sentinel client-reconfig-script <master-name> <script-path>
#
# 當主伺服器因故障轉移而變更時,可以呼叫指令碼執行特定於應用程式的任務,以通知客戶端,配置已更改且主伺服器地址已經變更。
#
# 以下引數將傳遞給指令碼:
#
# <master-name> <role> <state> <from-ip> <from-port> <to-ip> <to-port>
#
# <state> 目前始終是故障轉移 "failover"
# <role> 是 "leader" 或 "observer"
#
# 引數 from-ip, from-port, to-ip, to-port 用於傳遞主伺服器的舊地址和所選副本的新地址。
#
# 舉例:
#
# sentinel client-reconfig-script mymaster /var/redis/reconfig.sh

# 安全
# 避免指令碼重置,預設值yes
# 預設情況下,SENTINEL SET將無法在執行時更改notification-script和client-reconfig-script。
# 這避免了一個簡單的安全問題,客戶端可以將指令碼設定為任何內容並觸發故障轉移以便執行程式。
sentinel deny-scripts-reconfig yes

# REDIS命令重新命名
#
#
# 在這種情況下,可以告訴Sentinel使用不同的命令名稱而不是正常的命令名稱。
# 例如,如果主“mymaster”和相關副本的“CONFIG”全部重新命名為“GUESSME”,我可以使用:
#
# SENTINEL rename-command mymaster CONFIG GUESSME
#
# 設定此類配置後,每次Sentinel使用CONFIG時,它將使用GUESSME。 請注意,實際上不需要尊重命令案例,因此在上面的示例中寫“config guessme”是相同的。
#
# SENTINEL SET也可用於在執行時執行此配置。
#
# 為了將命令設定回其原始名稱(撤消重新命名),可以將命令重新命名為它自身:
#
# SENTINEL rename-command mymaster CONFIG CONFIG


```