Berbagi teknologi

Redis seri 7.x [24] Item konfigurasi mode sentinel

2024-07-12

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

Jika ada cara tetapi tidak ada teknik, maka teknik tersebut masih bisa dicari; jika ada teknik tetapi tidak ada cara, maka berhenti pada teknik tersebut.

Redis versi 7.2.5 dari seri ini

Alamat kode sumber: https://gitee.com/pearl-organization/study-redis-demo

1. Perkenalan

Dalam file kode sumber yang didekompresi, Anda dapat melihat file konfigurasi 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. Item konfigurasi

2.1 mode terlindungi

Konfigurasikan apakah akan mengaktifkan mode terproteksi.

protected-mode no
  • 1

Standarnya adalah no , alamat lain selain host lokal juga dapat diakses. Dalam lingkungan produksi, alamat tersebut perlu dilindungi oleh firewall atau cara lain.Sentinel misalnya, dan melarang akses jaringan eksternal.

pelabuhan 2.2

Konfigurasikan port yang berjalan dari node sentinel.

port 26379
  • 1

2.3 daemonisasi

Konfigurasikan apakah akan mengizinkan berjalan di latar belakang (berjalan sebagai proses daemon), defaultnya adalah no , pengaturan yang disarankan adalahyes ,KapanRedis Sentinel Saat dijalankan sebagai daemon, file/var/run/redis-sentinel.pidMenulis sebuahPIDdokumen.

daemonize no
  • 1

2.4 file pid

Konfigurasi Redis Sentinel Saat dijalankan sebagai daemon,PIDLokasi dan nama file.

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

2.5 tingkat log

Konfigurasikan tingkat log.

loglevel notice
  • 1

Item yang dapat dikonfigurasi:

  • debug: Banyak informasi, berguna untuk pengembangan/pengujian
  • verbose: Banyak informasi yang jarang berguna, tetapi tidak samadebugLevelnya sangat membingungkan
  • notice: Verbositas sedang, mungkin yang Anda inginkan dalam lingkungan produksi
  • warning:Hanya mencatat pesan yang sangat penting/kritis
  • nothing:Jangan mencatat apa pun

berkas log 2.6

Konfigurasikan nama file log.Gunakan string kosong untuk memaksaSentinel Masuk ke keluaran standar.

logfile ""
  • 1

2.7 syslog diaktifkan

Konfigurasikan apakah akan mengaktifkan pencatatan sistem.

# syslog-enabled no
  • 1

2.8 syslog-ident

Konfigurasikan identitas log sistem.

# syslog-ident sentinel
  • 1

2.9 fasilitas syslog

Tentukan perangkat untuk log sistem.harusUSER atauLOCAL0-LOCAL7 satu di antaranya.

# syslog-facility local0
  • 1

2.10 pengumuman sentinel-ip、pengumuman sentinel-port

Tentukan arusnyaSentinel SentralIP alamat dan port, yang dapat berguna dalam konfigurasi jaringan atau skenario penerapan tertentu, seperti saat node budak beradaNAT Nanti atau ketika teknologi container/virtualisasi digunakan.

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

2.11 dir

Konfigurasikan direktori kerja, untukRedis SentinelMisalnya, beralih ke /tmp Direktori adalah cara paling sederhana untuk menghindari gangguan pada tugas administratif seperti sistem file lainnya.

dir /tmp
  • 1

Monitor penjaga 2.12

adalah item konfigurasi kunci yang digunakan untuk mendefinisikan a Sentinel dipantauRedis server master, dan hanya jika setidaknya<quorum> individuSentinel Hanya dengan persetujuan barulah dianggap masukO_DOWNStatus (Tujuan offline).

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

Deskripsi Parameter:

  • <master-name>Redis Nama yang ditentukan oleh node masterSentinel Akan digunakan dalam konfigurasi dan notifikasi.
  • <ip> : dari simpul utamaIP alamat.
  • <redis-port> : Port pendengaran dari node master.
  • <quorum>: Definisi Sentinel Jumlah suara minimum yang diperlukan untuk mempertimbangkan server master tidak tersedia (umumnya disarankan lebih dari setengah jumlah penjaga).

Misalnya ingin Sentinel Pantau file bernama mymaster dariRedis simpul utama, milik serverIP alamatnya adalah192.168.1.1, pelabuhannya adalah 6379, dan setidaknya harus ada dua Sentinel Hanya jika disepakati bahwa server utama tidak tersedia maka server tersebut akan ditandai sebagai offline secara objektif. Konfigurasikan seperti ini:

sentinel monitor mymaster 127.0.0.1 6379 2
  • 1

Tindakan pencegahan:

  • Server budak ditemukan secara otomatis, jadi tidak perlu menentukan node budak dengan cara apa pun.Sentinel sendiri akan mengganti file konfigurasi ini untuk menyertakan node budak dengan menambahkan opsi konfigurasi tambahan.
  • Ketika node budak dipromosikan menjadi node master, file konfigurasi juga ditulis ulang.
  • Nama node master tidak boleh mengandung karakter atau spasi khusus.Kumpulan karakter yang valid adalahA-z 0-9 Dan.-_
  • tanpa memedulikan O_DOWN Kuorumnya perlu diketahuiSentinel Failover tidak dapat dimulai sampai mayoritas terpilih, sehingga failover tidak dapat terjadi pada kasus minoritas.

2.13 kata sandi autentikasi sentinel、kata sandi autentikasi sentinel

Jika Anda ingin memantau Redis Instance ini memiliki kata sandi yang ditetapkan,sentinel auth-pass Tetapkan kata sandi untuk otentikasi dengan node master dan slave. Harap dicatat bahwa kata sandi untuk node master juga digunakan untuk node budak, jadi kata sandi untuk node master dan budak harus konsisten.Jika tidak ada otentikasi yang diaktifkanRedis misalnya, eksekusiAUTHPerintah itu tidak berpengaruh.

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

Anda juga dapat mengonfigurasi nama pengguna:

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

untuk Sentinel Instance memberikan akses minimal dan harus dikonfigurasi sebagai berikutACL

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

di dalam >somepassword kata sandi dikonfigurasi untuk pengguna,clientsubscribeTunggu eksekusi Sentinel Izin untuk perintah minimum yang diperlukan untuk pemantauan,onKata kuncinya menunjukkan bahwa izin ini akan berlaku pada semua database.

2.14 sentinel mati setelah milidetik

ada Sentinel Kirim ke node master-slavePING Setelah perintah, jika tidak ada respon dalam jumlah milidetik tertentu, maka akan ditandai sebagaiS_DOWN Status (secara subyektif offline).

Berapa milidetik untuk dikonfigurasi

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

Nilai defaultnya adalah 30 detik, jika tidak dapat merespons dalam waktu ini,SentinelIni akan dievaluasi lebih lanjut apakah proses failover perlu dipicu.

2.15 pengguna

dari Redis 6.2 Mulai, dukungan mode SentinelACLdaftar kontrol akses), Anda dapat mengkonfigurasi node master-slave ACL Nama pengguna dan izin.

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

Deskripsi parameter dalam contoh:

  • >ffa9203c493aa99 adalah kata sandi pengguna
  • +@admin、+@connectionberarti diberikan kepada pengguna worker Akses ke kumpulan perintah tertentu
  • ~* Mewakili akses ke semua kunci
  • on Menunjukkan bahwa izin ini efektif pada semua database

2.16 acllog-maks-panjang

Konfigurasi ACL Panjang entri maksimum log.

acllog-max-len 128
  • 1

ACL Pelacakan log danACL (Daftar Kontrol Akses) terkait perintah gagal dan peristiwa otentikasi.Untuk penyelidikanACL Perintah gagal yang diblokir sangat berguna.ACL Log disimpan dalam memori dan dapat digunakanACL LOG RESET perintah untuk mendapatkan kembali memori.

Dengan menyesuaikan panjang entri log maksimum, Anda dapat mengontrol jumlah memori yang ditempati oleh log dan mengosongkan memori dengan mengatur ulang log bila diperlukan.Hal ini berguna untuk menjagaRedis Performa dan keamanan server penting karena membantu administrator mendeteksi dan menyelesaikan potensi masalah kontrol akses secara tepat waktu.

2.17 file acl

kecuali di sentinel.conf Selain mengonfigurasi pengguna dalam file, Anda dapat mengonfigurasi pengguna secara eksternalACL file, kedua metode ini tidak dapat dicampur atau server akan menolak untuk memulai.

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

luar ACL Format filenya adalahredis.conf Format yang digunakan dalam file tersebut sama persis.

2.18 memerlukan pass

Konfigurasi Sentinel Kata sandi itu sendiri perlu diverifikasi, setelah konfigurasiSentineSaya akan mencoba menggunakan kata sandi yang sama seperti kata sandi lainnya Sentinel Otentikasi.

requirepass <password>
  • 1

Dan aclfile konfigurasi danACL LOAD Perintahnya tidak sesuai, itulah penyebabnyarequirepass diabaikan.

2.19 sentinel pengguna sentinel、sentinel pass sentinel

Konfigurasi Sentinel dengan yang lainSentinel Nama pengguna dan kata sandi untuk otentikasi.

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

jika tidak dikonfigurasi sentinel-user , akan menggunakandefault pengguna dansentinel-pass Otentikasi.

2.20 sentinel sinkronisasi paralel

kontrol kapan Redis Sentinel Ketika kegagalan node master terdeteksi dan failover diperlukan, berapa banyak node slave yang diizinkan untuk mencoba melakukan sinkronisasi dengan node master baru pada saat yang bersamaan. Tujuannya adalah untuk menyeimbangkan kecepatan sinkronisasi node primer baru dengan penggunaan sumber daya jaringan selama proses failover.

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

Selama proses failover, node master baru yang terpilih akan mulai menerima operasi penulisan, dan node slave lainnya perlu melakukan sinkronisasi dengan node master baru untuk memperbarui kumpulan datanya. Jika semua node budak mulai melakukan sinkronisasi pada saat yang sama, hal ini dapat memberikan beban besar pada jaringan dan node master baru.

2.21 batas waktu failover sentinel

Menentukan batas waktu failover dalam milidetik, nilai defaultnya adalah 3 menit (yaitu180000 mili detik).

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

Jika dalam waktu yang ditentukan,Sentinel Jika semua langkah yang diperlukan untuk failover tidak dapat diselesaikan (seperti memilih node master baru, memperbarui konfigurasi replikasi node slave, dll.), operasi failover akan dianggap gagal.

2.22 skrip pemberitahuan sentinel

Memungkinkan pengguna untuk menentukan skrip kapan Sentinel Node mendeteksi beberapa peristiwa penting (mis.Redis Ketika sebuah instance mengalami kegagalan subjektif atau kegagalan objektif, dll.), skrip ini akan dipanggil secara otomatis untuk memberi tahu administrator sistem atau melakukan penanganan kesalahan otomatis.

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

untuk siapa pun yang masuk WARNING tingkat yang dihasilkanSentinel peristiwa (misalnya,-sdown-odown dll.), panggil skrip notifikasi yang ditentukan.Skrip ini harus memberi tahu administrator sistem melalui email, SMS, atau sistem pesan lain yang dipantauRedis Ada masalah dengan sistem.

Contoh:

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

Contoh di atas menunjukkan bahwa untuk file bernama mymaster dari server utama, kapanWARNING acara tingkat,Sentinel akan menelepon/var/redis/notify.sh skrip, meneruskan jenis acara dan deskripsi acara sebagai parameter.

Waktu berjalan maksimum untuk skrip notifikasi dan skrip lainnya adalah 60 detik, setelah batas ini tercapai, skrip akan lolosSIGKILL Sinyal berhenti dan mencoba mengeksekusi lagi. Eksekusi skrip mengikuti aturan penanganan kesalahan berikut:

  • Jika skrip diakhiri dengan "1” untuk keluar, eksekusi akan dicoba lagi nanti (jumlah maksimum percobaan ulang saat ini disetel ke10Kelas dua).
  • Jika skrip diakhiri dengan "2” (atau lebih tinggi), eksekusi skrip tidak akan dicoba ulang.
  • Jika skrip dihentikan karena penerimaan sinyal, perilaku dan kode keluarnya akan terpengaruh1Waktu yang sama.

2.23 skrip konfigurasi ulang klien sentinel

Memungkinkan pengguna untuk menentukan skrip, di Sentinel Skrip ini secara otomatis dipanggil setelah failover node master selesai. Skrip ini dapat melakukan operasi yang diperlukan untuk memberi tahu klien bahwa konfigurasi telah berubah.

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

Fungsi utama dari script ini biasanya antara lain:

  • Perbarui konfigurasi klien agar dapat terhubung ke node master baru.
  • Lakukan beberapa pekerjaan pembersihan, seperti menghapus konfigurasi atau sumber daya terkait dari node master lama.
  • Mengirimkan pemberitahuan atau peringatan untuk memberi tahu administrator sistem bahwa failover telah selesai.

Kapan Sentineaku menelepon sentinel client-reconfig-script Saat menentukan skrip, serangkaian parameter diteruskan ke skrip. Parameter ini berisi informasi hasil failover, biasanya termasuk:

  • : Nama simpul utama.
  • : Peran node master baru.
  • : Status atau hasil failover.
  • : dari node master lama IP alamat.
  • : Nomor port dari node master lama.
  • : dari node master baru IP alamat.
  • : Nomor port dari node master baru.

Contoh:

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

Contoh di atas menunjukkan bahwa ketika namanya adalah mymaster Ketika server utama diubah karena failover,Sentinel akan menelepon/var/redis/reconfig.sh skrip, meneruskannya nama server master, peran, status, dan server master asliIP dan port, server master baruIP dan parameter pelabuhan.

2.24 sentinel menolak skrip konfigurasi ulang

Digunakan untuk mengontrol apakah akan mengizinkan lewat SENTINEL SET Modifikasi perintahnotification-script Danclient-reconfig-script konfigurasi.

sentinel deny-scripts-reconfig yes
  • 1

Ditetapkan sebagai yes (default), menunjukkan bahwa passing dilarangSENTINEL SET Perintah untuk mengubah konfigurasi skrip membantu meningkatkan keamanan sistem dan mencegah modifikasi yang tidak sah.

2.25 sentinel menolak skrip konfigurasi ulang

Ganti nama perintah (tidak digunakan lagi).

SENTINEL rename-command mymaster CONFIG GUESSME
  • 1

2.26 SENTINEL menyelesaikan nama-host

biasanya Sentinel Gunakan hanya alamat IP dan butuhkanSENTINEL MONITOR tentukan aIP alamat.Selain itu, hal ini memerlukanRedis darireplica-announce-ip Tentukan sajaIP alamat.

Dapat diaktifkan oleh resolve-hostnames untuk mendukung nama host (hostname), Sentinel akan mencoba menyelesaikan nama host daripada menggunakannya secara langsungIP alamat untuk diidentifikasiRedis Contoh.

SENTINEL resolve-hostnames no
  • 1

Perhatikan bahwa Anda harus memastikan bahwa Anda DNS dikonfigurasi dengan benar, danDNS Parsing tidak menyebabkan penundaan yang lama.Saat menggunakan penerapan dalam container sepertiDocker atauKubernetes), Dan Redis contohIP Alamat dapat berubah, aktifkanSENTINEL resolve-hostnames Mungkin solusi yang bagus.

2.27 SENTINEL umumkan nama host

Digunakan untuk mengontrol apakah Sentinel menggunakan nama host (hostnames) alih-alih IP alamat.

SENTINEL announce-hostnames no
  • 1

Saat diaktifkan resolve-hostnames jam,Sentinel Masih digunakan saat mengekspos instance ke pengguna, profil, dll.IP alamat.Jika opsi ini disetel keno Saat Sentinel menerbitkan pemberitahuan perubahan node master-slave atau informasi terkait lainnya, Sentinel akan menggunakannyaIP alamat, bukan nama host.

2.28 SENTINEL master-reboot-down-setelah-periode

Konfigurasikan jumlah milidetik yang harus ditunggu oleh sentinel sebelum menganggap node master tidak dapat dijangkau untuk sementara karena restart. Redis Hal ini sangat berguna dalam skenario server.

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

Dalam situasi tertentu, seperti reboot sistem atau masalah jaringan singkat,Redis Server mungkin tidak dapat dijangkau untuk sementara, bukannya benar-benar tidak berfungsi.Konfigurasi ini menentukanSentinel Lamanya waktu yang harus ditunggu sebelum menandai server master sebagai offline secara objektif.