Redis Sentinel 配置和主机名

Redis Sentinel 配置和主机名

我有 2 个 sentinel 和 2 个 redis 服务器。我想使用 redis 服务器的主机名配置 sentinel。目前,我在 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
...

但我想保留主机名。我该怎么做?

答案1

Redis Sentinel 需要动态重写其配置文件,重新创建monitor命令。它没有规定在其生成的命令中插入主机名而不是 IP 地址。这也是为什么 Sentinel 文档在此位置明确规定了 IP 地址。

因此,您要求的功能在 Sentinel 的当前版本中无法实现。我建议您重新评估使用主机名进行配置的要求。

答案2

请在 IP 地址下方或上方进行评论。

redis-sentinel 旨在获取集群节点的地址,并在状态发生变化时更新 redis 配置。最好在注释中写下带有 ip 的主机名

答案3

也许您可以尝试将不可变标志设置为配置文件。

chattr +i configurationfile

具有“i”属性的文件无法修改:无法删除或重命名,无法创建指向此文件的链接,也无法向此文件写入任何数据。只有超级用户或拥有 CAP_LINUX_IMMUTABLE 功能的进程才能设置或清除此属性。

这样,您就可以写保护您的配置文件。

相关内容