14、redis sentinel.conf配置檔案說明
阿新 • • 發佈:2022-04-14
# 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 ```