Назад | Перейти на главную страницу

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

У меня есть 2 сервера sentineles и 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
...

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

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

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

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

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

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

chattr +i configurationfile

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

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