Конфигурация Redis Sentinel и имена хостов

У меня есть 2 часовых и 2 сервера Redis. Я хочу настроить часовые, используя имена хостов серверов Redis. В настоящее время я определяю каждое имя хоста в файле hosts следующим образом.

10.22.20.156    clsupport1  
10.22.20.157    clsupport2

И я пытаюсь настроить дозорный как это.

daemonize yes
pidfile "/var/run/redis_sentinel_26379.pid"
loglevel notice
logfile "/var/log/redis_sentinel_26379.log"

port 26379
dir "/tmp"

sentinel monitor redis-prod clsupport2 6379 1
sentinel config-epoch redis-prod 3
sentinel leader-epoch redis-prod 4
sentinel known-slave redis-prod clsupport1 6379

После того, как я запустил мой дозорный, он автоматически заменяет имена хостов на IP-адреса. После перезагрузки.

daemonize yes
pidfile "/var/run/redis_sentinel_26379.pid"
loglevel notice
logfile "/var/log/redis_sentinel_26379.log"

port 26379
dir "/tmp"

sentinel monitor redis-prod 10.22.20.157 6379 1
sentinel config-epoch redis-prod 3
sentinel leader-epoch redis-prod 4
sentinel known-slave redis-prod 10.22.20.156 6379
# Generated by CONFIG REWRITE
...

Но я хочу сохранить имена хостов. Как я могу этого достичь?

3 ответа

Решение

Redis Sentinel необходимо динамически переписать свой файл конфигурации, воссоздав monitor команды. В нем нет положений для вставки имен хостов вместо IP-адресов в команды, которые он генерирует. По этой же причине в документации Sentinel явно указывается IP-адрес в этой позиции.

То, что вы просите, невозможно с текущей версией Sentinel. Я предлагаю вам пересмотреть требование использовать имена хостов для конфигурации.

Пожалуйста, просто прокомментируйте ниже или выше IP-адреса.

redis-sentinel предназначен для получения адреса узлов кластера и обновления конфигурации redis после изменения состояния. Ваш лучший шанс - записать имя хоста с ip в комментарии

Может быть, вы можете попытаться установить неизменный флаг в файл конфигурации.

chattr +i configurationfile

Файл с атрибутом "i" не может быть изменен: его нельзя удалить или переименовать, невозможно создать ссылку на этот файл и данные не могут быть записаны в файл. Только суперпользователь или процесс, обладающий возможностью CAP_LINUX_IMMUTABLE, может установить или очистить этот атрибут.

Таким образом вы защитите свой файл конфигурации от записи.

Другие вопросы по тегам