gpt4 book ai didi

Redis Slave Master 连接失败 Slave 日志显示 : Unable to connect to MASTER: Permission denied

转载 作者:可可西里 更新时间:2023-11-01 11:13:21 26 4
gpt4 key购买 nike

我已按照有关如何设置 Redis 主服务器集群的说明进行操作,但完成后我无法看到为什么服务器无法相互看到。这是我组装的第二个版本,我被困在同一个地方。我真的可以使用一些以前从未在 REDIS 上工作过的帮助,我可以使用一些指导。

使用CENTOS7 Redis版本

当我检查 redis 从属日志时,我得到以下信息

[20671] 12 Jan 15:48:02.369 * Connecting to MASTER 10.10.10.10:6379

[20671] 12 Jan 15:48:02.369 # Unable to connect to MASTER: Permission denied

配置文件对主机和从机使用完全相同的密码。只是为了测试,我给了默认目录对 redis 工作目录文件和文件夹的完全控制权经过测试的端口,它们工作正常,

当我连接到 REDIS Slave 时运行 INFO 时,我也会得到以下信息

Replication

role:slave
master_host:10.10.10.11.
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_repl_offset:1
master_link_down_since_seconds:1452631759
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

来自主节点的信息:

Replication

role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

两台服务器都运行在CENTOS 7

最佳答案

我在 AWS 的 CentOS 7 上设置 Redis 集群时遇到了同样的问题,这实际上是由于启用了 SELinux。您可以通过检查 /var/log/audit.log 的内容来验证这是您的问题。

要允许使用 SELinux 进行 Redis 复制,请以 root 身份运行以下命令以更新安全策略。由于您可能会使用 Sentinel 来管理集群,因此还包括 Sentinel master 和 slaves 的必要策略。

策略文件的文件夹

Location to save new policy files

mkdir -p ~/.selinux

Redis 复制策略

Allow data replication to slaves, include on master as well as it may become a slave at some point

cat <<SELINUX > ~/.selinux/redis_repl.te
# create new
module redis_repl 1.0;

require {
type redis_port_t;
type redis_t;
class tcp_socket name_connect;
}

#============= redis_t ==============
allow redis_t redis_port_t:tcp_socket name_connect;
SELINUX

checkmodule -m -M -o ~/.selinux/redis_repl.mod ~/.selinux/redis_repl.te
semodule_package --outfile ~/.selinux/redis_repl.pp --module ~/.selinux/redis_repl.mod
semodule -i ~/.selinux/redis_repl.pp

Redis Sentinel 主/从策略,所有 Redis 节点

Allow Sentinel HA traffic on the Redis master/slave nodes

cat <<SELINUX > ~/.selinux/redis_ha.te
# create new
module redis_ha 1.0;

require {
type etc_t;
type redis_t;
class file write;
}

#============= redis_t ==============
allow redis_t etc_t:file write;
SELINUX

checkmodule -m -M -o ~/.selinux/redis_ha.mod ~/.selinux/redis_ha.te
semodule_package --outfile ~/.selinux/redis_ha.pp --module ~/.selinux/redis_ha.mod
semodule -i ~/.selinux/redis_ha.pp

Redis Sentinel 服务器策略,所有 Sentinel 节点

Allow Sentinel HA traffic from the Sentinel nodes.

Note that you may need to change the Sentinel port if you aren't using the 26379 default.

# Allow Sentinel Port
semanage port -a -t redis_port_t -p tcp 26379

# Allow Sentinel Server
cat <<SELINUX > ~/.selinux/redis_sentinel.te
# create new
module redis_sentinel 1.0;

require {
type redis_port_t;
type etc_t;
type redis_t;
class tcp_socket name_connect;
class file write;
}

#============= redis_t ==============
allow redis_t redis_port_t:tcp_socket name_connect;
allow redis_t etc_t:file write;
SELINUX

checkmodule -m -M -o ~/.selinux/redis_sentinel.mod ~/.selinux/redis_sentinel.te
semodule_package --outfile ~/.selinux/redis_sentinel.pp --module ~/.selinux/redis_sentinel.mod
semodule -i ~/.selinux/redis_sentinel.pp

重启 Redis 和 Sentinel

service restart redis
service restart redis-sentinel

关于Redis Slave Master 连接失败 Slave 日志显示 : Unable to connect to MASTER: Permission denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34906127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com