Document

sentinel.conf配置

1.常用的配置

  1. port 26379
  2. # sentinel announce-ip <ip>
  3. # sentinel announce-port <port>
  4. dir /tmp
  5.  
  6. ################################# master001 #################################
  7. sentinel monitor master001 192.168.110.101 6379 2
  8. # sentinel auth-pass <master-name> <password>
  9. sentinel down-after-milliseconds master001 30000
  10. sentinel parallel-syncs master001 1
  11. sentinel failover-timeout master001 180000
  12. # sentinel notification-script <master-name> <script-path>
  13. # sentinel client-reconfig-script <master-name> <script-path>
  14.  
  15. # 可以配置多个master节点
  16. ################################# master002 #################################
配置文件说明:
1. port :当前Sentinel服务运行的端口
 
2. dir : Sentinel服务运行时使用的临时文件夹
 
3.sentinel monitor master001 192.168.110.101 6379 2:Sentinel去监视一个名为master001的主redis实例,这个主实例的IP地址为本机地址192.168.110.101,端口号为6379,而将这个主实例判断为失效至少需要2个 Sentinel进程的同意,只要同意Sentinel的数量不达标,自动failover就不会执行
 
4.sentinel down-after-milliseconds master001 30000:指定了Sentinel认为Redis实例已经失效所需的毫秒数。当实例超过该时间没有返回PING,或者直接返回错误,那么Sentinel将这个实例标记为主观下线。只有一个 Sentinel进程将实例标记为主观下线并不一定会引起实例的自动故障迁移:只有在足够数量的Sentinel都将一个实例标记为主观下线之后,实例才会被标记为客观下线,这时自动故障迁移才会执行
 
5.sentinel parallel-syncs master001 1:指定了在执行故障转移时,最多可以有多少个从Redis实例在同步新的主实例,在从Redis实例较多的情况下这个数字越小,同步的时间越长,完成故障转移所需的时间就越长
 
6.sentinel failover-timeout master001 180000:如果在该时间(ms)内未能完成failover操作,则认为该failover失败
 
7.sentinel notification-script <master-name> <script-path>:指定sentinel检测到该监控的redis实例指向的实例异常时,调用的报警脚本。该配置项可选,但是很常用

2.官方完整的配置

  1. # Example sentinel.conf
  2. # port <sentinel-port>
  3. # The port that this sentinel instance will run on
  4. # sentinel实例运行的端口
  5. port 26379
  6. # sentinel announce-ip <ip>
  7. # sentinel announce-port <port>
  8. #
  9. # The above two configuration directives are useful in environments where,
  10. # because of NAT, Sentinel is reachable from outside via a non-local address.
  11. #
  12. # When announce-ip is provided, the Sentinel will claim the specified IP address
  13. # in HELLO messages used to gossip its presence, instead of auto-detecting the
  14. # local address as it usually does.
  15. #
  16. # Similarly when announce-port is provided and is valid and non-zero, Sentinel
  17. # will announce the specified TCP port.
  18. #
  19. # The two options don't need to be used together, if only announce-ip is
  20. # provided, the Sentinel will announce the specified IP and the server port
  21. # as specified by the "port" option. If only announce-port is provided, the
  22. # Sentinel will announce the auto-detected local IP and the specified port.
  23. #
  24. # Example:
  25. #
  26. # sentinel announce-ip 1.2.3.4
  27. # dir <working-directory>
  28. # Every long running process should have a well-defined working directory.
  29. # For Redis Sentinel to chdir to /tmp at startup is the simplest thing
  30. # for the process to don't interferer with administrative tasks such as
  31. # unmounting filesystems.
  32. dir /tmp
  33. # sentinel monitor <master-name> <ip> <redis-port> <quorum>
  34. # master-name : master Redis Server名称
  35. # ip : master Redis Server的IP地址
  36. # redis-port : master Redis Server的端口号
  37. # quorum : 主实例判断为失效至少需要 quorum 个 Sentinel 进程的同意,只要同意 Sentinel 的数量不达标,自动failover就不会执行
  38. #
  39. # Tells Sentinel to monitor this master, and to consider it in O_DOWN
  40. # (Objectively Down) state only if at least <quorum> sentinels agree.
  41. #
  42. # Note that whatever is the ODOWN quorum, a Sentinel will require to
  43. # be elected by the majority of the known Sentinels in order to
  44. # start a failover, so no failover can be performed in minority.
  45. #
  46. # Slaves are auto-discovered, so you don't need to specify slaves in
  47. # any way. Sentinel itself will rewrite this configuration file adding
  48. # the slaves using additional configuration options.
  49. # Also note that the configuration file is rewritten when a
  50. # slave is promoted to master.
  51. #
  52. # Note: master name should not include special characters or spaces.
  53. # The valid charset is A-z 0-9 and the three characters ".-_".
  54. #
  55. sentinel monitor mymaster 127.0.0.1 6379 2
  56. # sentinel auth-pass <master-name> <password>
  57. #
  58. # Set the password to use to authenticate with the master and slaves.
  59. # Useful if there is a password set in the Redis instances to monitor.
  60. #
  61. # Note that the master password is also used for slaves, so it is not
  62. # possible to set a different password in masters and slaves instances
  63. # if you want to be able to monitor these instances with Sentinel.
  64. #
  65. # However you can have Redis instances without the authentication enabled
  66. # mixed with Redis instances requiring the authentication (as long as the
  67. # password set is the same for all the instances requiring the password) as
  68. # the AUTH command will have no effect in Redis instances with authentication
  69. # switched off.
  70. #
  71. # Example:
  72. #
  73. # sentinel auth-pass mymaster MySUPER--secret-0123passw0rd
  74. # sentinel down-after-milliseconds <master-name> <milliseconds>
  75. #
  76. # Number of milliseconds the master (or any attached slave or sentinel) should
  77. # be unreachable (as in, not acceptable reply to PING, continuously, for the
  78. # specified period) in order to consider it in S_DOWN state (Subjectively
  79. # Down).
  80. # 选项指定了 Sentinel 认为Redis实例已经失效所需的毫秒数。当实例超过该时间没有返回PING,或者直接返回错误, 那么 Sentinel 将这个实例标记为主观下线(subjectively down,简称 SDOWN )
  81. #
  82. # Default is 30 seconds.
  83. sentinel down-after-milliseconds mymaster 30000
  84. # sentinel parallel-syncs <master-name> <numslaves>
  85. #
  86. # How many slaves we can reconfigure to point to the new slave simultaneously
  87. # during the failover. Use a low number if you use the slaves to serve query
  88. # to avoid that all the slaves will be unreachable at about the same
  89. # time while performing the synchronization with the master.
  90. # 选项指定了在执行故障转移时, 最多可以有多少个从Redis实例在同步新的主实例, 在从Redis实例较多的情况下这个数字越小,同步的时间越长,完成故障转移所需的时间就越长。
  91. sentinel parallel-syncs mymaster 1
  92. # sentinel failover-timeout <master-name> <milliseconds>
  93. #
  94. # Specifies the failover timeout in milliseconds. It is used in many ways:
  95. #
  96. # - The time needed to re-start a failover after a previous failover was
  97. # already tried against the same master by a given Sentinel, is two
  98. # times the failover timeout.
  99. #
  100. # - The time needed for a slave replicating to a wrong master according
  101. # to a Sentinel current configuration, to be forced to replicate
  102. # with the right master, is exactly the failover timeout (counting since
  103. # the moment a Sentinel detected the misconfiguration).
  104. #
  105. # - The time needed to cancel a failover that is already in progress but
  106. # did not produced any configuration change (SLAVEOF NO ONE yet not
  107. # acknowledged by the promoted slave).
  108. #
  109. # - The maximum time a failover in progress waits for all the slaves to be
  110. # reconfigured as slaves of the new master. However even after this time
  111. # the slaves will be reconfigured by the Sentinels anyway, but not with
  112. # the exact parallel-syncs progression as specified.
  113. # 如果在该时间(ms)内未能完成failover操作,则认为该failover失败
  114. #
  115. # Default is 3 minutes.
  116. sentinel failover-timeout mymaster 180000
  117. # SCRIPTS EXECUTION
  118. #
  119. # sentinel notification-script and sentinel reconfig-script are used in order
  120. # to configure scripts that are called to notify the system administrator
  121. # or to reconfigure clients after a failover. The scripts are executed
  122. # with the following rules for error handling:
  123. #
  124. # If script exits with "1" the execution is retried later (up to a maximum
  125. # number of times currently set to 10).
  126. #
  127. # If script exits with "2" (or an higher value) the script execution is
  128. # not retried.
  129. #
  130. # If script terminates because it receives a signal the behavior is the same
  131. # as exit code 1.
  132. #
  133. # A script has a maximum running time of 60 seconds. After this limit is
  134. # reached the script is terminated with a SIGKILL and the execution retried.
  135. # NOTIFICATION SCRIPT
  136. #
  137. # sentinel notification-script <master-name> <script-path>
  138. #
  139. # Call the specified notification script for any sentinel event that is
  140. # generated in the WARNING level (for instance -sdown, -odown, and so forth).
  141. # This script should notify the system administrator via email, SMS, or any
  142. # other messaging system, that there is something wrong with the monitored
  143. # Redis systems.
  144. #
  145. # The script is called with just two arguments: the first is the event type
  146. # and the second the event description.
  147. #
  148. # The script must exist and be executable in order for sentinel to start if
  149. # this option is provided.
  150. # 指定sentinel检测到该监控的redis实例指向的实例异常时,调用的报警脚本。该配置项可选,但是很常用。
  151. #
  152. # Example:
  153. #
  154. # sentinel notification-script mymaster /var/redis/notify.sh
  155. # CLIENTS RECONFIGURATION SCRIPT
  156. #
  157. # sentinel client-reconfig-script <master-name> <script-path>
  158. #
  159. # When the master changed because of a failover a script can be called in
  160. # order to perform application-specific tasks to notify the clients that the
  161. # configuration has changed and the master is at a different address.
  162. #
  163. # The following arguments are passed to the script:
  164. #
  165. # <master-name> <role> <state> <from-ip> <from-port> <to-ip> <to-port>
  166. #
  167. # <state> is currently always "failover"
  168. # <role> is either "leader" or "observer"
  169. #
  170. # The arguments from-ip, from-port, to-ip, to-port are used to communicate
  171. # the old address of the master and the new address of the elected slave
  172. # (now a master).
  173. #
  174. # This script should be resistant to multiple invocations.
  175. #
  176. # Example:
  177. #
  178. # sentinel client-reconfig-script mymaster /var/redis/reconfig.sh
posted @ 2017-08-11 09:21  从未被超越  阅读(1102)  评论(0编辑  收藏  举报