Teknologian jakaminen

Redis 7.x -sarja [24] Sentinel-tilan konfigurointikohteet

2024-07-12

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

Jos on tapa, mutta ei tekniikkaa, tekniikkaa voidaan silti etsiä, jos tekniikkaa on, mutta ei tapaa, se pysähtyy tekniikkaan.

Tämän sarjan Redis-versio 7.2.5

Lähdekoodin osoite: https://gitee.com/pearl-organization/study-redis-demo

1. Esittely

Puretussa lähdekooditiedostossa näet Sentinel-määritystiedoston 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. Asetuskohdat

2.1 suojattu tila

Määritä, otetaanko suojattu tila käyttöön.

protected-mode no
  • 1

Oletus on no , paikallisen isännän lisäksi voidaan käyttää myös muita osoitteita. Tuotantoympäristössä se on suojattava palomuurilla tai muulla tavalla.Sentinel ja estävät pääsyn ulkoiseen verkkoon.

2.2 porttiti

Määritä sentinel-solmun käynnissä oleva portti.

port 26379
  • 1

2.3 demonisoida

Määritä, sallitaanko taustaajo (käyminen demoniprosessina), oletusarvo on no , suositeltu asetus onyes ,kunRedis Sentinel Kun ajetaan demonina,/var/run/redis-sentinel.pidKirjoittaaPIDasiakirja.

daemonize no
  • 1

2.4 pidfile

Kokoonpano Redis Sentinel Kun ajaa demonina,PIDTiedoston sijainti ja nimi.

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

2.5 lokitaso

Määritä lokin taso.

loglevel notice
  • 1

Muokattavat kohteet:

  • debug: Paljon tietoa, hyödyllistä kehitystä/testausta varten
  • verbose: Paljon harvoin hyödyllistä tietoa, mutta ei niindebugTaso on niin hämmentävä
  • notice: Keskinkertainen monisanaisuus, luultavasti mitä haluat tuotantoympäristössä
  • warning: Kirjaa vain erittäin tärkeät/kriittiset viestit
  • nothing: Älä kirjaa mitään

2.6 lokitiedosto

Määritä lokitiedoston nimi.Käytä tyhjää merkkijonoa pakottaaksesiSentinel Kirjaudu sisään vakiolähtöön.

logfile ""
  • 1

2.7 syslog-yhteensopiva

Määritä, otetaanko järjestelmäloki käyttöön.

# syslog-enabled no
  • 1

2.8 syslog-ident

Määritä järjestelmälokin identiteetti.

# syslog-ident sentinel
  • 1

2.9 syslog-toiminto

Määritä laite järjestelmälokeille.täytyy ollaUSER taiLOCAL0-LOCAL7 yksi väliltä.

# syslog-facility local0
  • 1

2.10 sentinel-ilmoitus-ip, sentinel-ilmoitusportti

Määritä virtaSentinel NodalIP osoite ja portti, joista voi olla hyötyä tietyissä verkkokokoonpanoissa tai käyttöönottoskenaarioissa, kuten kun orjasolmu sijaitseeNAT Myöhemmin tai kontti/virtualisointitekniikkaa käytettäessä.

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

2.11 ohj

Määritä työhakemisto forRedis SentinelVaihda esimerkiksi /tmp Hakemistot ovat yksinkertaisin tapa välttää häiriöitä hallinnollisiin tehtäviin, kuten muihin tiedostojärjestelmiin.

dir /tmp
  • 1

2.12 Sentinel monitori

on avainkokoonpano, jota käytetään määrittämään a Sentinel seurataanRedis pääpalvelin, ja vain jos ainakin<quorum> yksilöllinenSentinel Vain suostumuksella sen katsotaan olevan mukanaO_DOWN(Objektiivinen offline) tila.

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

Parametrin kuvaus:

  • <master-name>Redis Pääsolmun määrittämä nimi Tämä nimi onSentinel Käytetään määrityksissä ja ilmoituksissa.
  • <ip> : pääsolmunIP osoite.
  • <redis-port> : Pääsolmun kuunteluportti.
  • <quorum>: Määritelmä Sentinel Vähimmäisäänimäärä, joka vaaditaan, jotta pääpalvelin ei ole käytettävissä (yleensä suositeltava määrä on yli puolet sentinelien määrästä).

Esimerkiksi haluta Sentinel Tarkkaile tiedostoa nimeltä mymaster /Redis pääsolmu, palvelimenIP osoite on192.168.1.1, portti on 6379, ja niitä on oltava vähintään kaksi Sentinel Vain silloin, kun pääpalvelin ei ole käytettävissä, se merkitään objektiivisesti offline-tilaan.

sentinel monitor mymaster 127.0.0.1 6379 2
  • 1

Varotoimenpiteet:

  • Orjat löydetään automaattisesti, joten orjasolmuja ei tarvitse määrittää millään tavalla.Sentinel itse ohittaa tämän määritystiedoston sisällyttääkseen orjasolmuja lisäämällä muita määritysasetuksia.
  • Kun orjasolmu ylennetään pääsolmuksi, myös konfiguraatiotiedosto kirjoitetaan uudelleen.
  • Pääsolmun nimi ei saa sisältää erikoismerkkejä tai välilyöntejä.Kelvolliset merkistöt ovatA-z 0-9 ja.-_
  • riippumatta O_DOWN Päätösvaltaisuus on tiedettäväSentinel Failover ei voi alkaa ennen kuin enemmistö on valittu, joten vika ei voi tapahtua vähemmistön tapauksessa.

2.13 sentinel auth-pass, sentinel auth-user

Jos haluat seurata Redis Ilmentymälle on asetettu salasana,sentinel auth-pass Aseta salasanat isäntä- ja orjasolmujen todennusta varten. Huomaa, että pääsolmun salasanaa käytetään myös orjasolmuissa, joten isäntä- ja orjasolmujen salasanojen on oltava yhdenmukaisia.Jos todennusta ei ole käytössäRedis esimerkiksi teloitusAUTHKomennolla ei ole vaikutusta.

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

Voit myös määrittää käyttäjänimen:

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

jotta Sentinel Ilmentymät tarjoavat minimaalisen pääsyn, ja ne tulee määrittää seuraavastiACL

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

sisään >somepassword käyttäjälle määritetty salasana,clientsubscribeOdota toteutusta Sentinel Valvonnan edellyttämien vähimmäiskomentojen käyttöoikeudet,onAvainsana ilmaisee, että nämä luvat tulevat voimaan kaikissa tietokantoissa.

2,14 vartioaseman jälkeen-millisekuntia

olla olemassa Sentinel Lähetä master-slave-solmuunPING Jos komennon jälkeen ei ole vastausta millisekuntien määrässä, se merkitään nimelläS_DOWN Tila (subjektiivisesti offline-tilassa).

Kuinka monta millisekuntia määritetään

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

Oletusarvo on 30 sekuntia, jos et pysty vastaamaan tämän ajan kuluessa,SentinelLisäksi arvioidaan, onko vikasietoprosessi käynnistettävä.

2.15 käyttäjä

alkaen Redis 6.2 Käynnistys, Sentinel-tilan tukiACLpääsynhallintaluettelo) -toimintoa, voit määrittää master-slave-solmun ACL Käyttäjätunnus ja käyttöoikeudet.

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

Parametrin kuvaus esimerkissä:

  • >ffa9203c493aa99 on käyttäjän salasana
  • +@admin、+@connectionkäyttäjälle annetut keinot worker Pääsy tiettyihin komentosarjoihin
  • ~* Edustaa pääsyä kaikkiin avaimiin
  • on Ilmaisee, että nämä käyttöoikeudet ovat voimassa kaikissa tietokannoissa

2.16 acllog-max-len

Kokoonpano ACL Lokin enimmäispituus.

acllog-max-len 128
  • 1

ACL Lokin seuranta jaACL (Access Control List) liittyvät epäonnistuneet komennot ja todennustapahtumat.Tutkintaa vartenACL Estetyt epäonnistuneet komennot ovat erittäin hyödyllisiä.ACL Lokit tallennetaan muistiin ja niitä voidaan käyttääACL LOG RESET komento muistin palauttamiseksi.

Säätämällä lokin enimmäissyöttöpituutta voit hallita lokin käyttämän muistin määrää ja vapauttaa muistia nollaamalla lokin tarvittaessa.Tästä on hyötyä ylläpidossaRedis Palvelimen suorituskyky ja suojaus ovat tärkeitä, koska niiden avulla järjestelmänvalvojat havaitsevat ja ratkaisevat mahdolliset kulunvalvontaongelmat ajoissa.

2.17 aclfile

paitsi sisään sentinel.conf Käyttäjien määrittämisen lisäksi tiedostoissa voit määrittää käyttäjän ulkoisestiACL tiedostoa, näitä kahta menetelmää ei voi yhdistää tai palvelin kieltäytyy käynnistymästä.

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

ulkoinen ACL Tiedoston muoto onredis.conf Tiedostossa käytetty muoto on täsmälleen sama.

2.18 vaadittava passi

Kokoonpano Sentinel Itse salasana on tarkistettava määrityksen jälkeenSentineYritän käyttää samaa salasanaa kuin kaikki muutkin Sentinel Todentaa.

requirepass <password>
  • 1

ja aclfile kokoonpano jaACL LOAD Komennot ovat yhteensopimattomia, ne aiheuttavatrequirepass jättää huomiotta.

2.19 sentinel sentinel-user, sentinel sentinel-pass

Kokoonpano Sentinel toisen kanssaSentinel Käyttäjätunnus ja salasana todennusta varten.

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

jos ei ole määritetty sentinel-user , käyttäädefault käyttäjät jasentinel-pass Todentaa.

2.20 sentinel-rinnakkaissynkronointi

valvoa milloin Redis Sentinel Kun pääsolmun vika havaitaan ja vikasietoa tarvitaan, kuinka monta orjasolmua saa yrittää synkronoida uuden pääsolmun kanssa samanaikaisesti. Tarkoituksena on tasapainottaa uuden ensisijaisen solmun synkronointinopeus ja verkkoresurssien käyttö vikasietoprosessin aikana.

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

Viansiirtymisprosessin aikana valittu uusi pääsolmu alkaa hyväksyä kirjoitustoimintoja, ja muiden orjasolmujen on synkronoitava uuden pääsolmun kanssa datajoukkojensa päivittämiseksi. Jos kaikki orjasolmut alkavat synkronoida samaan aikaan, se voi kuormittaa verkkoa ja uutta isäntäsolmua suuresti.

2.21 sentinel-vikaover-aikakatkaisu

Määrittää vikasietoajan aikakatkaisun millisekunteina, oletusarvo on 3 minuuttia (esim.180000 millisekunti).

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

Jos määritetyn ajan kuluessa,Sentinel Jos kaikkia vikasietovaiheita ei voida suorittaa (kuten uuden pääsolmun valitseminen, orjasolmun replikointimäärityksen päivittäminen jne.), vikasietotoiminto katsotaan epäonnistuneen.

2.22 Sentinel-ilmoitusskripti

Antaa käyttäjän määrittää komentosarjan milloin Sentinel Solmu havaitsee jonkin tärkeän tapahtuman (esim.Redis Kun ilmentymä kokee subjektiivisen vian tai objektiivisen virheen jne.), tämä komentosarja kutsutaan automaattisesti ilmoittamaan järjestelmänvalvojalle tai suorittamaan automaattisen viankäsittelyn.

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

kenelle tahansa sisään WARNING luotu tasoSentinel tapahtuma (esim.-sdown-odown jne.), kutsu määritettyä ilmoitusskriptiä.Tämän komentosarjan tulee ilmoittaa järjestelmänvalvojalle sähköpostitse, tekstiviestillä tai muulla viestijärjestelmällä, jota valvojaRedis Järjestelmässä on ongelma.

Esimerkki:

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

Yllä oleva esimerkki osoittaa, että tiedosto nimeltä mymaster pääpalvelimesta, milloinWARNING tason tapahtuma,Sentinel aikoo soittaa/var/redis/notify.sh komentosarja, välittäen sille tapahtumatyypin ja tapahtuman kuvauksen parametreina.

Ilmoitusskriptien ja muiden komentosarjojen enimmäiskesto on 60 sekuntia, kun tämä raja on saavutettu, komentosarja menee läpiSIGKILL Signaali katkeaa ja yrittää suorittaa uudelleen. Komentosarjan suoritus noudattaa seuraavia virheenkäsittelysääntöjä:

  • Jos skripti päättyy "1" poistuaksesi, suoritusta yritetään myöhemmin uudelleen (uudelleenyritysten enimmäismäärä on tällä hetkellä asetettu10toisen luokan).
  • Jos skripti päättyy "2” (tai uudempi), komentosarjan suoritusta ei yritetä uudelleen.
  • Jos komentosarja päättyy signaalin vastaanottamisen vuoksi, sen käyttäytyminen ja poistumiskoodi ovat1Samaan aikaan.

2.23 sentinel client-reconfig-script

Antaa käyttäjän määrittää skriptin Sentinel Tämä komentosarja kutsutaan automaattisesti, kun pääsolmun vikasieto on suoritettu. Tämä komentosarja voi suorittaa tarvittavat toiminnot ilmoittaakseen asiakkaille, että kokoonpano on muuttunut.

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

Tämän skriptin päätoiminnot sisältävät yleensä:

  • Päivitä asiakkaan kokoonpano, jotta se voi muodostaa yhteyden uuteen pääsolmuun.
  • Suorita puhdistustöitä, kuten poista vanhan pääsolmun kokoonpanot tai resurssit.
  • Lähettää ilmoituksen tai hälytyksen ilmoittaakseen järjestelmänvalvojalle, että vikasieto on valmis.

kun Sentinesoitan sentinel client-reconfig-script Komentosarjaa määritettäessä sarja parametreja välitetään komentosarjalle. Nämä parametrit sisältävät vikasietotulostietoja, mukaan lukien yleensä:

  • : Pääsolmun nimi.
  • : Uuden pääsolmun rooli.
  • : Viansiirron tila tai tulos.
  • : vanhasta pääsolmusta IP osoite.
  • : Vanhan pääsolmun porttinumero.
  • : uudesta pääsolmusta IP osoite.
  • : Uuden pääsolmun porttinumero.

Esimerkki:

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

Yllä oleva esimerkki osoittaa, että kun nimi on mymaster Kun ensisijainen palvelin vaihtuu vikasietotilanteen vuoksi,Sentinel aikoo soittaa/var/redis/reconfig.sh komentosarja, välittäen sille pääpalvelimen nimen, roolin, tilan ja alkuperäisen pääpalvelimenIP ja portti, uusi pääpalvelinIP ja portin parametrit.

2.24 sentinel deny-scripts-reconfig

Käytetään ohjaamaan, sallitaanko läpikulku SENTINEL SET Komennon muutosnotification-script jaclient-reconfig-script kokoonpano.

sentinel deny-scripts-reconfig yes
  • 1

Asettaa yes (oletus), mikä tarkoittaa, että ohittaminen on kiellettySENTINEL SET Komentosarjamäärityksiä muuttavat komennot lisäävät järjestelmän turvallisuutta ja estävät luvattomat muutokset.

2.25 sentinel deny-scripts-reconfig

Nimeä komento uudelleen (vanhentunut).

SENTINEL rename-command mymaster CONFIG GUESSME
  • 1

2.26 SENTINEL ratkaisee isäntänimet

yleensä Sentinel Käytä vain IP-osoitteita ja vaadiSENTINEL MONITOR määritä aIP osoite.Lisäksi se vaatiiRedis /replica-announce-ip Määritä vainIP osoite.

Voidaan ottaa käyttöön resolve-hostnames tukea isäntänimiä (hostname), Sentinel yrittää ratkaista isäntänimen sen sijaan, että käyttäisi sitä suoraanIP osoite tunnistettavaksiRedis Esimerkki.

SENTINEL resolve-hostnames no
  • 1

Huomaa, että sinun on varmistettava, että sinun DNS määritetty oikein jaDNS Jäsentäminen ei aiheuta kovin pitkiä viiveitä.Käytettäessä konttikäyttöisiä käyttöönottoja, kutenDocker taiKubernetes), ja Redis ilmentymäIP Osoite voi muuttua, ota käyttöönSENTINEL resolve-hostnames Voisi olla hyvä ratkaisu.

2.27 SENTINEL ilmoittaa isäntänimiä

Käytetään ohjaamaan käyttääkö Sentinel isäntänimeä (hostnames) sijaan IP osoite.

SENTINEL announce-hostnames no
  • 1

Kun käytössä resolve-hostnames tunnin,Sentinel Käytetään edelleen, kun esiintymiä paljastetaan käyttäjille, profiileille jne.IP osoite.Kun tämä vaihtoehto on asetettuno Kun Sentinel julkaisee master-slave-solmun muutosilmoituksen tai muita asiaan liittyviä tietoja, se käyttääIP osoite isäntänimen sijaan.

2.28 SENTINEL-master-reboot-down-ajanjakson jälkeen

Määritä, kuinka monta millisekuntia vartijan tulee odottaa ennen kuin se katsoo, että pääsolmu ei ole tilapäisesti tavoitettavissa uudelleenkäynnistyksen vuoksi. Tämä on hyödyllistä järjestelmän ylläpidon tai päivitysten takia. Redis Tämä on erityisen hyödyllistä palvelinskenaarioissa.

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

Tietyissä olosuhteissa, kuten järjestelmän uudelleenkäynnistyessä tai lyhyissä verkko-ongelmissa,Redis Palvelin saattaa olla tilapäisesti tavoittamaton pikemminkin kuin todellisuudessa viallinen.Tämä kokoonpano määrittääSentinel Aika, jonka pitäisi odottaa ennen kuin pääpalvelin merkitään objektiivisesti offline-tilaan.