У меня есть 2 сигнальных метки и 2 сервера советов. Я хочу настроить сигнальные метки с помощью имен хостов серверов советов. В настоящее время я определяю каждое имя хоста в файле 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. Я предлагаю вам заново оценить требование использовать имена хостов для конфигурации.
.Может быть, вы попробуете установить неизменяемый флаг в конфигурационном файле.
chattr +i configurationfile
Файл с атрибутом 'i' не может быть изменен: он не может быть удалено или переименовано, ссылка на этот файл не может быть создана и нет данных. можно записать в файл. Только суперпользователь или процесс обладая возможностью CAP_LINUX_IMMUTABLE, можно установить или очистить следующее атрибут.
Таким образом, вы защитите свой конфигурационный файл от записи.
.Прокомментируйте, пожалуйста, ниже или выше IP-адресов.
redis-sentinel предназначены для получения адресов узлов кластера и обновления конфигураций redis после изменения статуса. Ваш лучший шанс - записать имя хоста с ip в комментарии