Compartir tecnología

Serie Redis 7.x [24] Elementos de configuración del modo Sentinel

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Si hay un camino pero no una técnica, aún se puede buscar la técnica; si hay una técnica pero no un camino, se detendrá en la técnica.

Redis versión 7.2.5 de esta serie.

Dirección del código fuente: https://gitee.com/pearl-organization/study-redis-demo

1. Introducción

En el archivo de código fuente descomprimido, puede ver el archivo de configuración de Sentinel. sentinel.conf

# Example sentinel.conf

# By default protected mode is disabled in sentinel mode. Sentinel is reachable
# from interfaces different than localhost. Make sure the sentinel instance is
# protected from the outside world via firewalling or other means.
protected-mode no

# port <sentinel-port>
# The port that this sentinel instance will run on
port 26379

# By default Redis Sentinel does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis-sentinel.pid when
# daemonized.
daemonize no

# When running daemonized, Redis Sentinel writes a pid file in
# /var/run/redis-sentinel.pid by default. You can specify a custom pid file
# location here.
pidfile /var/run/redis-sentinel.pid

# Specify the server verbosity level.
# This can be one of:
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably)
# warning (only very important / critical messages are logged)
# nothing (nothing is logged)
loglevel notice

# Specify the log file name. Also the empty string can be used to force
# Sentinel to log on the standard output. Note that if you use standard
# output for logging but daemonize, logs will be sent to /dev/null
logfile ""

# To enable logging to the system logger, just set 'syslog-enabled' to yes,
# and optionally update the other syslog parameters to suit your needs.
# syslog-enabled no

# Specify the syslog identity.
# syslog-ident sentinel

# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
# syslog-facility local0

# sentinel announce-ip <ip>
# sentinel announce-port <port>
#
# The above two configuration directives are useful in environments where,
# because of NAT, Sentinel is reachable from outside via a non-local address.
#
# When announce-ip is provided, the Sentinel will claim the specified IP address
# in HELLO messages used to gossip its presence, instead of auto-detecting the
# local address as it usually does.
#
# Similarly when announce-port is provided and is valid and non-zero, Sentinel
# will announce the specified TCP port.
#
# The two options don't need to be used together, if only announce-ip is
# provided, the Sentinel will announce the specified IP and the server port
# as specified by the "port" option. If only announce-port is provided, the
# Sentinel will announce the auto-detected local IP and the specified port.
#
# Example:
#
# sentinel announce-ip 1.2.3.4

# dir <working-directory>
# Every long running process should have a well-defined working directory.
# For Redis Sentinel to chdir to /tmp at startup is the simplest thing
# for the process to don't interfere with administrative tasks such as
# unmounting filesystems.
dir /tmp

# sentinel monitor <master-name> <ip> <redis-port> <quorum>
#
# Tells Sentinel to monitor this master, and to consider it in O_DOWN
# (Objectively Down) state only if at least <quorum> sentinels agree.
#
# Note that whatever is the ODOWN quorum, a Sentinel will require to
# be elected by the majority of the known Sentinels in order to
# start a failover, so no failover can be performed in minority.
#
# Replicas are auto-discovered, so you don't need to specify replicas in
# any way. Sentinel itself will rewrite this configuration file adding
# the replicas using additional configuration options.
# Also note that the configuration file is rewritten when a
# replica is promoted to master.
#
# Note: master name should not include special characters or spaces.
# The valid charset is A-z 0-9 and the three characters ".-_".
sentinel monitor mymaster 127.0.0.1 6379 2

# sentinel auth-pass <master-name> <password>
#
# Set the password to use to authenticate with the master and replicas.
# Useful if there is a password set in the Redis instances to monitor.
#
# Note that the master password is also used for replicas, so it is not
# possible to set a different password in masters and replicas instances
# if you want to be able to monitor these instances with Sentinel.
#
# However you can have Redis instances without the authentication enabled
# mixed with Redis instances requiring the authentication (as long as the
# password set is the same for all the instances requiring the password) as
# the AUTH command will have no effect in Redis instances with authentication
# switched off.
#
# Example:
#
# sentinel auth-pass mymaster MySUPER--secret-0123passw0rd

# sentinel auth-user <master-name> <username>
#
# This is useful in order to authenticate to instances having ACL capabilities,
# that is, running Redis 6.0 or greater. When just auth-pass is provided the
# Sentinel instance will authenticate to Redis using the old "AUTH <pass>"
# method. When also an username is provided, it will use "AUTH <user> <pass>".
# In the Redis servers side, the ACL to provide just minimal access to
# Sentinel instances, should be configured along the following lines:
#
#     user sentinel-user >somepassword +client +subscribe +publish 
#                        +ping +info +multi +slaveof +config +client +exec on

# sentinel down-after-milliseconds <master-name> <milliseconds>
#
# Number of milliseconds the master (or any attached replica or sentinel) should
# be unreachable (as in, not acceptable reply to PING, continuously, for the
# specified period) in order to consider it in S_DOWN state (Subjectively
# Down).
#
# Default is 30 seconds.
sentinel down-after-milliseconds mymaster 30000

# IMPORTANT NOTE: starting with Redis 6.2 ACL capability is supported for
# Sentinel mode, please refer to the Redis website https://redis.io/topics/acl
# for more details.

# Sentinel's ACL users are defined in the following format:
#
#   user <username> ... acl rules ...
#
# For example:
#
#   user worker +@admin +@connection ~* on >ffa9203c493aa99
#
# For more information about ACL configuration please refer to the Redis
# website at https://redis.io/topics/acl and redis server configuration 
# template redis.conf.

# ACL LOG
#
# The ACL Log tracks failed commands and authentication events associated
# with ACLs. The ACL Log is useful to troubleshoot failed commands blocked 
# by ACLs. The ACL Log is stored in memory. You can reclaim memory with 
# ACL LOG RESET. Define the maximum entry length of the ACL Log below.
acllog-max-len 128

# Using an external ACL file
#
# Instead of configuring users here in this file, it is possible to use
# a stand-alone file just listing users. The two methods cannot be mixed:
# if you configure users here and at the same time you activate the external
# ACL file, the server will refuse to start.
#
# The format of the external ACL user file is exactly the same as the
# format that is used inside redis.conf to describe users.
#
# aclfile /etc/redis/sentinel-users.acl

# requirepass <password>
#
# You can configure Sentinel itself to require a password, however when doing
# so Sentinel will try to authenticate with the same password to all the
# other Sentinels. So you need to configure all your Sentinels in a given
# group with the same "requirepass" password. Check the following documentation
# for more info: https://redis.io/topics/sentinel
#
# IMPORTANT NOTE: starting with Redis 6.2 "requirepass" is a compatibility
# layer on top of the ACL system. The option effect will be just setting
# the password for the default user. Clients will still authenticate using
# AUTH <password> as usually, or more explicitly with AUTH default <password>
# if they follow the new protocol: both will work.
#
# New config files are advised to use separate authentication control for
# incoming connections (via ACL), and for outgoing connections (via
# sentinel-user and sentinel-pass) 
#
# The requirepass is not compatible with aclfile option and the ACL LOAD
# command, these will cause requirepass to be ignored.

# sentinel sentinel-user <username>
#
# You can configure Sentinel to authenticate with other Sentinels with specific
# user name. 

# sentinel sentinel-pass <password>
#
# The password for Sentinel to authenticate with other Sentinels. If sentinel-user
# is not configured, Sentinel will use 'default' user with sentinel-pass to authenticate.

# sentinel parallel-syncs <master-name> <numreplicas>
#
# How many replicas we can reconfigure to point to the new replica simultaneously
# during the failover. Use a low number if you use the replicas to serve query
# to avoid that all the replicas will be unreachable at about the same
# time while performing the synchronization with the master.
sentinel parallel-syncs mymaster 1

# sentinel failover-timeout <master-name> <milliseconds>
#
# Specifies the failover timeout in milliseconds. It is used in many ways:
#
# - The time needed to re-start a failover after a previous failover was
#   already tried against the same master by a given Sentinel, is two
#   times the failover timeout.
#
# - The time needed for a replica replicating to a wrong master according
#   to a Sentinel current configuration, to be forced to replicate
#   with the right master, is exactly the failover timeout (counting since
#   the moment a Sentinel detected the misconfiguration).
#
# - The time needed to cancel a failover that is already in progress but
#   did not produced any configuration change (SLAVEOF NO ONE yet not
#   acknowledged by the promoted replica).
#
# - The maximum time a failover in progress waits for all the replicas to be
#   reconfigured as replicas of the new master. However even after this time
#   the replicas will be reconfigured by the Sentinels anyway, but not with
#   the exact parallel-syncs progression as specified.
#
# Default is 3 minutes.
sentinel failover-timeout mymaster 180000

# SCRIPTS EXECUTION
#
# sentinel notification-script and sentinel reconfig-script are used in order
# to configure scripts that are called to notify the system administrator
# or to reconfigure clients after a failover. The scripts are executed
# with the following rules for error handling:
#
# If script exits with "1" the execution is retried later (up to a maximum
# number of times currently set to 10).
#
# If script exits with "2" (or an higher value) the script execution is
# not retried.
#
# If script terminates because it receives a signal the behavior is the same
# as exit code 1.
#
# A script has a maximum running time of 60 seconds. After this limit is
# reached the script is terminated with a SIGKILL and the execution retried.

# NOTIFICATION SCRIPT
#
# sentinel notification-script <master-name> <script-path>
# 
# Call the specified notification script for any sentinel event that is
# generated in the WARNING level (for instance -sdown, -odown, and so forth).
# This script should notify the system administrator via email, SMS, or any
# other messaging system, that there is something wrong with the monitored
# Redis systems.
#
# The script is called with just two arguments: the first is the event type
# and the second the event description.
#
# The script must exist and be executable in order for sentinel to start if
# this option is provided.
#
# Example:
#
# sentinel notification-script mymaster /var/redis/notify.sh

# CLIENTS RECONFIGURATION SCRIPT
#
# sentinel client-reconfig-script <master-name> <script-path>
#
# When the master changed because of a failover a script can be called in
# order to perform application-specific tasks to notify the clients that the
# configuration has changed and the master is at a different address.
# 
# The following arguments are passed to the script:
#
# <master-name> <role> <state> <from-ip> <from-port> <to-ip> <to-port>
#
# <state> is currently always "start"
# <role> is either "leader" or "observer"
# 
# The arguments from-ip, from-port, to-ip, to-port are used to communicate
# the old address of the master and the new address of the elected replica
# (now a master).
#
# This script should be resistant to multiple invocations.
#
# Example:
#
# sentinel client-reconfig-script mymaster /var/redis/reconfig.sh

# SECURITY
#
# By default SENTINEL SET will not be able to change the notification-script
# and client-reconfig-script at runtime. This avoids a trivial security issue
# where clients can set the script to anything and trigger a failover in order
# to get the program executed.

sentinel deny-scripts-reconfig yes

# REDIS COMMANDS RENAMING (DEPRECATED)
#
# WARNING: avoid using this option if possible, instead use ACLs.
#
# Sometimes the Redis server has certain commands, that are needed for Sentinel
# to work correctly, renamed to unguessable strings. This is often the case
# of CONFIG and SLAVEOF in the context of providers that provide Redis as
# a service, and don't want the customers to reconfigure the instances outside
# of the administration console.
#
# In such case it is possible to tell Sentinel to use different command names
# instead of the normal ones. For example if the master "mymaster", and the
# associated replicas, have "CONFIG" all renamed to "GUESSME", I could use:
#
# SENTINEL rename-command mymaster CONFIG GUESSME
#
# After such configuration is set, every time Sentinel would use CONFIG it will
# use GUESSME instead. Note that there is no actual need to respect the command
# case, so writing "config guessme" is the same in the example above.
#
# SENTINEL SET can also be used in order to perform this configuration at runtime.
#
# In order to set a command back to its original name (undo the renaming), it
# is possible to just rename a command to itself:
#
# SENTINEL rename-command mymaster CONFIG CONFIG

# HOSTNAMES SUPPORT
#
# Normally Sentinel uses only IP addresses and requires SENTINEL MONITOR
# to specify an IP address. Also, it requires the Redis replica-announce-ip
# keyword to specify only IP addresses.
#
# You may enable hostnames support by enabling resolve-hostnames. Note
# that you must make sure your DNS is configured properly and that DNS
# resolution does not introduce very long delays.
#
SENTINEL resolve-hostnames no

# When resolve-hostnames is enabled, Sentinel still uses IP addresses
# when exposing instances to users, configuration files, etc. If you want
# to retain the hostnames when announced, enable announce-hostnames below.
#
SENTINEL announce-hostnames no

# When master_reboot_down_after_period is set to 0, Sentinel does not fail over
# when receiving a -LOADING response from a master. This was the only supported
# behavior before version 7.0.
#
# Otherwise, Sentinel will use this value as the time (in ms) it is willing to
# accept a -LOADING response after a master has been rebooted, before failing
# over.

SENTINEL master-reboot-down-after-period mymaster 0

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362

2. Elementos de configuración

2.1 modo protegido

Configure si desea habilitar el modo protegido.

protected-mode no
  • 1

El valor predeterminado es no , también se puede acceder a otras direcciones además del host local. En un entorno de producción, es necesario protegerlo mediante un firewall u otros medios.Sentinel por ejemplo, y prohibir el acceso a la red externa.

Puerto 2.2

Configure el puerto de ejecución del nodo centinela.

port 26379
  • 1

2.3 demonizar

Configure si desea permitir la ejecución en segundo plano (ejecutándose como un proceso demonio), el valor predeterminado es no , la configuración recomendada esyes ,cuandoRedis Sentinel Cuando se ejecuta como un demonio, el/var/run/redis-sentinel.pidEscribe unPIDdocumento.

daemonize no
  • 1

2.4 archivo pid

Configuración Redis Sentinel Cuando se ejecuta como un demonio,PIDLa ubicación y el nombre del archivo.

pidfile /var/run/redis-sentinel.pid
  • 1

2.5 nivel de registro

Configurar el nivel de registro.

loglevel notice
  • 1

Elementos configurables:

  • debug: Toneladas de información, útil para desarrollo/pruebas.
  • verbose: Mucha información rara vez útil, pero no tandebugEl nivel es tan confuso.
  • notice: Verbosidad media, probablemente lo que desea en un entorno de producción.
  • warning:Solo registre mensajes muy importantes/críticos
  • nothing:No registres nada

2.6 archivo de registro

Configure el nombre del archivo de registro.Utilice una cadena vacía para forzarSentinel Inicie sesión en la salida estándar.

logfile ""
  • 1

2.7 habilitado para syslog

Configure si desea habilitar el registro del sistema.

# syslog-enabled no
  • 1

2.8 ident. de syslog

Configure la identidad del registro del sistema.

# syslog-ident sentinel
  • 1

2.9 Instalación de syslog

Especifique el dispositivo para los registros del sistema.debe serUSER oLOCAL0-LOCAL7 uno en el medio.

# syslog-facility local0
  • 1

2.10 dirección IP de anuncio de Sentinel y puerto de anuncio de Sentinel

Especifique el actualSentinel NodalIP dirección y puerto, que pueden ser útiles en ciertas configuraciones de red o escenarios de implementación, como cuando se encuentra el nodo esclavoNAT Más adelante o cuando se utilice tecnología de contenedor/virtualización.

sentinel announce-ip <ip>
sentinel announce-port <port>
  • 1
  • 2

2.11 directorioectorio

Configure el directorio de trabajo, paraRedis SentinelPor ejemplo, cambie a /tmp Los directorios son la forma más sencilla de evitar interferir con tareas administrativas como otros sistemas de archivos.

dir /tmp
  • 1

2.12 monitor centinela

es un elemento de configuración clave que se utiliza para definir un Sentinel monitoreadoRedis servidor maestro, y sólo si al menos<quorum> individualSentinel Sólo con consentimiento se considera que está enO_DOWNEstado (Objetivo fuera de línea).

# sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel monitor mymaster 127.0.0.1 6379 2
  • 1
  • 2

Descripción de parámetros:

  • <master-name>Redis El nombre especificado por el nodo maestro. Este nombre está en.Sentinel Se utilizará en configuración y notificación.
  • <ip> : del nodo maestroIP DIRECCIÓN.
  • <redis-port> : El puerto de escucha del nodo maestro.
  • <quorum>: Definición Sentinel El número mínimo de votos necesarios para considerar que un servidor maestro no está disponible (generalmente se recomienda más de la mitad del número de centinelas).

Por ejemplo, quiero Sentinel Supervisar un archivo llamado mymaster deRedis nodo maestro, el servidorIP La dirección es192.168.1.1, el puerto es 6379, y es necesario que haya al menos dos Sentinel Sólo cuando se acuerde que el servidor principal no está disponible se marcará como objetivamente fuera de línea. Configúrelo así:

sentinel monitor mymaster 127.0.0.1 6379 2
  • 1

Precauciones:

  • Los servidores esclavos se descubren automáticamente, por lo que no es necesario especificar nodos esclavos de ninguna manera.Sentinel por sí mismo anulará este archivo de configuración para incluir nodos esclavos agregando opciones de configuración adicionales.
  • Cuando un nodo esclavo asciende a nodo maestro, el archivo de configuración también se reescribe.
  • El nombre del nodo maestro no debe contener caracteres ni espacios especiales.Los juegos de caracteres válidos sonA-z 0-9 y.-_
  • a pesar de todo O_DOWN Es necesario conocer el quórumSentinel La conmutación por error no puede comenzar hasta que se elija una mayoría, por lo que la conmutación por error no puede ocurrir en el caso de una minoría.

2.13 contraseña de autenticación de centinela, usuario de autenticación de centinela

Si quieres monitorear Redis La instancia tiene una contraseña establecida,sentinel auth-pass Establezca contraseñas para la autenticación con nodos maestros y esclavos. Tenga en cuenta que la contraseña para el nodo maestro también se utiliza para los nodos esclavos, por lo que las contraseñas para los nodos maestro y esclavo deben ser coherentes.Si no hay ninguna autenticación habilitadaRedis instancia, ejecuciónAUTHEl comando no tiene ningún efecto.

sentinel auth-pass <master-name> <password>
  • 1

También puedes configurar el nombre de usuario:

sentinel auth-user <master-name> <username>
  • 1

con el fin de Sentinel Las instancias proporcionan un acceso mínimo y deben configurarse de la siguiente maneraACL

user sentinel-user >somepassword +client +subscribe +publish 
+ping +info +multi +slaveof +config +client +exec on
  • 1
  • 2

en >somepassword la contraseña configurada para el usuario,clientsubscribeEsperar la ejecución Sentinel Permisos para los comandos mínimos requeridos para el monitoreo,onLa palabra clave indica que estos permisos tendrán efecto en todas las bases de datos.

2.14 centinela caído después de milisegundos

existir Sentinel Enviar al nodo maestro-esclavoPING Después del comando, si no hay respuesta dentro de un cierto número de milisegundos, se marcará comoS_DOWN Estado (subjetivamente fuera de línea).

¿Cuántos milisegundos configurar?

# sentinel down-after-milliseconds <master-name> <milliseconds>
sentinel down-after-milliseconds mymaster 30000
  • 1
  • 2

El valor predeterminado es 30 segundos, si no puede responder dentro de este tiempo,SentinelSe evaluará más a fondo si es necesario activar un proceso de conmutación por error.

2.15 usuario

de Redis 6.2 Inicio, compatibilidad con el modo SentinelACLlista de control de acceso), puede configurar el nodo maestro-esclavo ACL Nombre de usuario y permisos.

# user <用户名> ... ACL规则 ...
# user <username> ... acl rules ...
user worker +@admin +@connection ~* on >ffa9203c493aa99
  • 1
  • 2
  • 3

Descripción del parámetro en el ejemplo:

  • >ffa9203c493aa99 es la contraseña del usuario
  • +@admin、+@connectionmedios entregados al usuario worker Acceso a ciertos conjuntos de comandos
  • ~* Representa el acceso a todas las claves.
  • on Indica que estos permisos son efectivos en todas las bases de datos.

2.16 longitud máxima del registro aclog

Configuración ACL La longitud máxima de entrada del registro.

acllog-max-len 128
  • 1

ACL Seguimiento de registros yACL (Lista de control de acceso) relacionados con comandos fallidos y eventos de autenticación.para la investigacionACL Los comandos fallidos bloqueados son muy útiles.ACL Los registros se almacenan en la memoria y se pueden utilizarACL LOG RESET comando para recuperar memoria.

Al ajustar la longitud máxima de entrada del registro, puede controlar la cantidad de memoria ocupada por el registro y liberar memoria restableciendo el registro cuando sea necesario.Esto es útil para mantenerRedis El rendimiento y la seguridad del servidor son importantes porque ayudan a los administradores a detectar y resolver posibles problemas de control de acceso de manera oportuna.

2.17 archivo acl

excepto en sentinel.conf Además de configurar usuarios en archivos, puede configurar un usuario externamenteACL archivo, estos dos métodos no se pueden mezclar o el servidor se negará a iniciarse.

# aclfile /etc/redis/sentinel-users.acl
  • 1

externo ACL El formato del archivo esredis.conf El formato utilizado en el archivo es exactamente el mismo.

2.18 requiere pase

Configuración Sentinel La contraseña en sí debe verificarse después de la configuración.SentineIntentaré usar la misma contraseña que todos los demás. Sentinel Autenticar.

requirepass <password>
  • 1

y aclfile configuración yACL LOAD Los comandos son incompatibles, provocanrequirepass ser ignorado.

2.19 centinela centinela-usuario, centinela centinela-contraseña

Configuración Sentinel con otroSentinel Nombre de usuario y contraseña para autenticación.

sentinel sentinel-user <username>
sentinel sentinel-pass <password>
  • 1
  • 2

si no está configurado sentinel-user , utilizarádefault usuarios ysentinel-pass Autenticar.

2.20 sincronizaciones paralelas de Sentinel

controlar cuando Redis Sentinel Cuando se detecta una falla en el nodo maestro y se requiere una conmutación por error, ¿cuántos nodos esclavos pueden intentar sincronizarse con el nuevo nodo maestro al mismo tiempo? El objetivo es equilibrar la velocidad de sincronización del nuevo nodo primario con el uso de los recursos de la red durante el proceso de conmutación por error.

# sentinel parallel-syncs <master-name> <numreplicas>
sentinel parallel-syncs mymaster 1
  • 1
  • 2

Durante el proceso de conmutación por error, el nuevo nodo maestro elegido comenzará a aceptar operaciones de escritura y otros nodos esclavos deberán sincronizarse con el nuevo nodo maestro para actualizar sus conjuntos de datos. Si todos los nodos esclavos comienzan a sincronizarse al mismo tiempo, puede suponer una gran carga para la red y el nuevo nodo maestro.

2.21 Tiempo de espera de conmutación por error de Sentinel

Especifica el tiempo de espera de conmutación por error en milisegundos; el valor predeterminado es 3 minutos (es decir180000 milisegundo).

sentinel failover-timeout <master-name> <milliseconds>
  • 1

Si dentro del tiempo especificado,Sentinel Si no se pueden completar todos los pasos necesarios para la conmutación por error (como elegir un nuevo nodo maestro, actualizar la configuración de replicación del nodo esclavo, etc.), la operación de conmutación por error se considerará fallida.

2.22 script de notificación centinela

Permite al usuario especificar un script cuando Sentinel El nodo detecta algún evento importante (p. ej.Redis Cuando una instancia experimenta una falla subjetiva o una falla objetiva, etc.), se llamará automáticamente a este script para notificar al administrador del sistema o realizar un manejo automatizado de fallas.

sentinel notification-script <master-name> <script-path>
  • 1

para cualquiera en WARNING nivel generadoSentinel evento (por ejemplo,-sdown-odown etc.), llame al script de notificación especificado.Este script debe notificar al administrador del sistema por correo electrónico, SMS o cualquier otro sistema de mensajería que el sistema monitoreadoRedis Hay un problema con el sistema.

Ejemplo:

sentinel notification-script mymaster /var/redis/notify.sh
  • 1

El ejemplo anterior muestra que para un archivo llamado mymaster del servidor principal, cuandoWARNING evento de nivel,Sentinel llamará/var/redis/notify.sh script, pasándole el tipo de evento y la descripción del evento como parámetros.

El tiempo máximo de ejecución para los scripts de notificación y otros scripts es 60 segundos, después de alcanzar este límite, el script pasaráSIGKILL La señal termina e intenta ejecutarse nuevamente. La ejecución del script sigue las siguientes reglas de manejo de errores:

  • Si el guión termina con "1”para salir, la ejecución se reintentará más tarde (el número máximo de reintentos actualmente está establecido en10De segunda categoría).
  • Si el guión termina con "2” (o superior), no se volverá a intentar la ejecución del script.
  • Si el script finaliza debido a la recepción de una señal, su comportamiento y código de salida son1Mismo tiempo.

2.23 Script de reconfiguración del cliente Sentinel

Permite al usuario especificar un script, en Sentinel Este script se llama automáticamente después de que se completa una conmutación por error de un nodo maestro. Este script puede realizar las operaciones necesarias para notificar a los clientes que la configuración ha cambiado.

sentinel client-reconfig-script <master-name> <script-path>
  • 1

Las funciones principales de este script suelen incluir:

  • Actualice la configuración del cliente para que pueda conectarse al nuevo nodo maestro.
  • Realice algunos trabajos de limpieza, como eliminar configuraciones o recursos relacionados del antiguo nodo maestro.
  • Envía una notificación o alerta para informar al administrador del sistema que la conmutación por error se completó.

cuando Sentinellamo sentinel client-reconfig-script Al especificar una secuencia de comandos, se pasan una serie de parámetros a la secuencia de comandos. Estos parámetros contienen información sobre el resultado de la conmutación por error, que generalmente incluye:

  • : El nombre del nodo maestro.
  • : La función del nuevo nodo maestro.
  • : el estado o resultado de la conmutación por error.
  • : del antiguo nodo maestro IP DIRECCIÓN.
  • : El número de puerto del antiguo nodo maestro.
  • : del nuevo nodo maestro IP DIRECCIÓN.
  • : El número de puerto del nuevo nodo maestro.

Ejemplo:

sentinel client-reconfig-script mymaster /var/redis/reconfig.sh
  • 1

El ejemplo anterior muestra que cuando el nombre es mymaster Cuando se cambia el servidor principal debido a una conmutación por error,Sentinel llamará/var/redis/reconfig.sh script, pasándole el nombre, la función, el estado y el nombre del servidor maestro original.IP y puerto, nuevo servidor maestroIP y parámetros del puerto.

2.24 Sentinel denegación de scripts de reconfiguración

Se utiliza para controlar si se permite el paso. SENTINEL SET Modificación de comandonotification-script yclient-reconfig-script configuración.

sentinel deny-scripts-reconfig yes
  • 1

Establecer como yes (predeterminado), indica que está prohibido adelantarSENTINEL SET Los comandos para modificar las configuraciones de los scripts ayudan a aumentar la seguridad del sistema y evitar modificaciones no autorizadas.

2.25 Reconfiguración de scripts de denegación de Sentinel

Cambie el nombre del comando (en desuso).

SENTINEL rename-command mymaster CONFIG GUESSME
  • 1

2.26 Resolución de nombres de host de SENTINEL

generalmente Sentinel Utilice sólo direcciones IP y soliciteSENTINEL MONITOR especificar unIP DIRECCIÓN.Además, requiereRedis dereplica-announce-ip Especificar soloIP DIRECCIÓN.

Puede ser habilitado por resolve-hostnames para admitir nombres de host (hostname), Sentinel Intentará resolver el nombre de host en lugar de usarlo directamente.IP dirección para identificarRedis Ejemplo.

SENTINEL resolve-hostnames no
  • 1

Tenga en cuenta que debe asegurarse de que su DNS configurado correctamente yDNS El análisis no introduce retrasos muy prolongados.Cuando se utilizan implementaciones en contenedores comoDocker oKubernetes), y Redis instanciaIP La dirección puede cambiar, habilitarSENTINEL resolve-hostnames Podría ser una buena solución.

2.27 Nombres de host de anuncio de SENTINEL

Se utiliza para controlar si Sentinel usa el nombre de host (hostnames) en lugar de IP DIRECCIÓN.

SENTINEL announce-hostnames no
  • 1

Cuando está habilitado resolve-hostnames hora,Sentinel Todavía se usa al exponer instancias a usuarios, perfiles, etc.IP DIRECCIÓN.Cuando esta opción está configurada enno Cuando Sentinel publique una notificación de cambio de nodo maestro-esclavo u otra información relacionada, utilizaráIP dirección en lugar de nombre de host.

2.28 Reinicio maestro de SENTINEL después del período

Configure la cantidad de milisegundos que el centinela debe esperar antes de considerar que el nodo maestro es temporalmente inaccesible debido a un reinicio. Esto es útil para manejar la necesidad de reiniciar debido al mantenimiento o actualizaciones del sistema. Redis Esto es especialmente útil en escenarios de servidor.

SENTINEL master-reboot-down-after-period mymaster 0
  • 1

En determinadas situaciones, como reinicios del sistema o problemas breves de red,Redis Es posible que el servidor esté temporalmente inaccesible en lugar de funcionar mal.Esta configuración especificaSentinel El tiempo que se debe esperar antes de marcar el servidor maestro como objetivamente fuera de línea.