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