Конфигурация 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, может установить или очистить этот атрибут.
Таким образом вы защитите свой файл конфигурации от записи.