Редіс забезпечує високу доступність через Редіс Сентинел розподілена система. Страж допомагає контролювати Редіс екземпляри, виявляти збої та автоматично змінюватиме ролі, що дозволяє Редіс розгортання для протистояння будь -яким збоям.
Він має можливість моніторингу Редіс екземпляри (майстер та репліки), підтримує сповіщення про інші служби/процеси або системного адміністратора за допомогою сценарію, автоматичне перемикання на рекламувати репліку майстру, коли майстер спускається і надає клієнтам конфігурацію для виявлення поточного майстра, що пропонує певну обслуговування.
У цій статті показано, як налаштувати Редіс для високої доступності з Редіс Сентинел в CentOS 8, включаючи налаштування вартових, перевірку стану налаштування та тестування a Страж відновлення після відмови.
Майстер -сервер і сторожовий1: 10.42.0.247. Репліки Redis1 і Sentinel2: 10.42.0.21. Репліки Redis2 і Sentinel3: 10.42.0.34.
Відповідно з Редіс Сентинел документації, потрібно не менше трьох Страж екземпляри для надійного розгортання. Враховуючи наше налаштування вище, якщо майстер зазнає невдач, Вартові 2 та Страж 3 погодиться з помилкою і зможе авторизувати відмову після відмови, завдяки чому клієнтські операції можуть продовжуватися.
1. Увімкнено CentOS 8, Редіс Сентинел служба встановлена поряд з Редіс сервер (що ми вже зробили в Налаштування реплікації Redis).
Щоб розпочати Редіс sentinel і ввімкніть його для автоматичного запуску під час завантаження системи, скористайтесь наступним systemctl команди. Також перевірте, чи він запущений, перевіривши його статус (зробіть це на всіх вузлах):
# systemctl початок redis-sentinel. # systemctl увімкнути redis-sentinel. # systemctl статус redis-sentinel.
2. У цьому розділі ми пояснюємо, як налаштувати Страж на всіх наших вузлах. Страж сервіс має такий же формат конфігурації, як і Редіс сервер. Щоб його налаштувати, скористайтеся /etc/redis-sentinel.conf самодокументований файл конфігурації.
Спочатку створіть резервну копію вихідного файлу та відкрийте його для редагування.
# cp /etc/redis-sentinel.conf /etc/redis-sentinel.conf.orig. # vi /etc/redis-sentinel.conf.
3. За замовчуванням Sentinel прослуховує порт 26379, перевірте це на всіх примірниках. Зверніть увагу, що ви повинні залишити прив'язувати параметр прокоментовано (або встановлено на 0.0.0.0).
порт 26379.
4. Далі, розкажіть Страж стежити за нашими майстер, і розглядати це в розділі “Об'єктивно вниз”, Лише якщо 2 члени кворуму згодні. Ви можете замінити "майстер”Із користувацькою назвою.
#На головному сервері та Sentinel1. вартовий монітор mymaster 127.0.0.1 6379 2 #На Replica1 і Sentinel2. вартовий монітор mymaster 10.42.0.247 6379 2 #На Replica1 і Sentinel3. сторожовий монітор mymaster 10.42.0.247 6379 2.
Важливо: Оператор дозорного монітора ПОВИНЕН розміщуватись перед сторожовим auth-pass заява, щоб уникнути помилки "Немає такого майстра з зазначеним іменем.”При перезапуску дозорної служби.
5. Якщо Редіс майстер для моніторингу має встановлений пароль (у нашому випадку майстер має), надайте пароль, щоб екземпляр Sentinel міг автентифікуватись із захищеним екземпляром.
дозорний майстер-авторизатор [захищена електронною поштою]
6. Потім встановіть кількість мілісекунд, до яких майстер (або будь -яка додана репліка чи дозор) не повинні бути доступні, щоб розглядати це у розділі “Суб'єктивно Вниз”Держава.
Наступна конфігурація означає, що майстер вважатиметься невдалим, як тільки ми не отримаємо відповіді від наших пінгів протягом 5 секунд (1 секунда еквівалентна 1000 мілісекунд).
sentinel down-after-milliseconds mymaster 5000.
7. Далі встановіть тайм -аут аварійного відключення в мілісекундах, який визначає багато речей (прочитайте документацію параметра у файлі конфігурації).
дозорний майстер-майстер-тайм-аут 180000.
8. Потім встановіть кількість реплік, які можна переналаштувати для використання нового майстра після одночасного відмови. Оскільки у нас є дві репліки, ми встановимо одну репліку, оскільки інша буде підвищена до нового майстра.
дозорний паралельно-синхронізований майстер 1.
Зауважте, що файли конфігурації на Репліка Redis1 та Сентинел2, і Репліка Reddis1 та Сентинел2 повинні бути ідентичними.
9. Далі перезапустіть Страж служби на всіх вузлах, щоб застосувати останні зміни.
# systemctl перезавантажте redis-sentinel.
10. Далі відкрийте порт 26379 у брандмауері на всіх вузлах, щоб увімкнути Страж екземпляри, щоб почати розмову, отримати зв'язок від іншого Страж екземпляри, використовуючи брандмауер-cmd.
# firewall-cmd --zone = public --permanent --add-port = 26379/tcp. # firewall-cmd --reload.
11. Усі репліки будуть автоматично виявлені. Важливо, Страж автоматично оновить конфігурацію з додатковою інформацією про репліки. Ви можете підтвердити це, відкривши файл Страж конфігураційний файл для кожного екземпляра та перегляньте його.
Наприклад, коли ви дивитесь у кінець файлу конфігурації майстра, ви повинні побачити файл відомі сторожі та відома-репліка заяви, як показано на наступному скріншоті.
Це має бути той самий випадок репліка1 та репліка 2.
Зауважте, що Страж Конфігурація також переписується/оновлюється щоразу, коли репліка підвищується до стану майстра під час відмови, і кожного разу, коли в налаштуваннях виявляється новий сторожовий.
12. Тепер перевірте Страж статус/інформацію про майстра, використовуючи дозорна інформація команду наступним чином.
# redis -cli -p 26379 інформація вартовий.
З результатів команди, як показано на наведеному нижче скріншоті, ми маємо дві репліки/підлеглих і трьох дозорних.
13. Щоб показати детальну інформацію про майстер (називається майстер), використовувати вартовий майстер команду.
# redis -cli -p 26379 дозорний майстер майстер.
14. Щоб показати детальну інформацію про раби та вартові, використовувати вартові раби команду і вартові сторожові команду відповідно.
# redis -cli -p 26379 майстер панів -рабів. # redis -cli -p 26379 дозорний дозорний майстер.
15. Далі запитайте адресу майстра за назвою у підлеглих екземплярів за допомогою sentinel get-master-addr-by-name команду наступним чином.
Вихідними даними повинні бути IP -адреса та порт поточного головного екземпляра:
# redis-cli -p 26379 sentinel get-master-addr-by-name mymaster.
16. Нарешті, давайте перевіримо автоматичне відновлення після відмови в нашому Страж налаштування. На Редіс/Сентинел майстер, зробіть Редіс master (працює на порту 6379) для сну 60 секунд. Потім запитайте адресу поточного майстра у репліках/підлеглих пристроях наступним чином.
# redis -cli -p 6379. 127.0.0.1:6379> АВТ [захищена електронною поштою]
127.0.0.1:6379> налагодження сну 60. # redis-cli -p 26379 sentinel get-master-addr-by-name mymaster. # redis-cli -p 26379 sentinel get-master-addr-by-name mymaster.
З результатів для запиту новий майстер тепер репліка/раб2 з IP -адресою 10.42.0.34 як видно на наступному скріншоті.
Ви можете отримати більше інформації з Документація Redis Sentinel. Але якщо у вас є якісь думки чи запитання, форма зворотного зв'язку нижче є вашим входом до нас.
У наступній і останній частині цієї серії ми розглянемо, як це зробити налаштувати кластер Redis у CentOS 8. Це буде незалежна стаття з перших двох.