Zookeeper集群部署及给dubbo节点加auth认证
起因:安全漏洞扫描 zookeeper 没有设置任何安全验证
环境:System:Centos7 Java:1.8 Zookeeper:3.6
Server.1 |
192.168.45.243 |
Server.2 |
192.168.44.24 |
Server.3 |
192.168.44.117 |
一、zk集群部署
1.1 部署jdk
把jdk包分别上传至三台节点/opt/app目录下解压
tar -xf jdk1.8.0_77.tar.gz
设置环境变量,在.bash_profile文件里添加如下设置
vim ~/.bash_profile export JAVA_HOME=/opt/app/jdk1.8.0_77 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar source ~/.bash_profile
验证java环境
java -version
1.2 部署zk集群
下载zk包至/opt/app目录(三台节点执行相同的操作) cd /opt/app 下载zk wget https://archive.apache.org/dist/zookeeper/zookeeper-3.6.0/apache-zookeeper-3.6.0-bin.tar.gz # 解压 tar -xf apache-zookeeper-3.6.0-bin.tar.gz # 修改名字 mv apache-zookeeper-3.6.0-bin zookeeper # 创建data目录 cd /opt/app/zookeeper mkdir data # 在data目录下创建myid文件 touch myid
在server.1节点myid文件输入1
在server.2节点myid文件输入2
在server.3节点myid文件输入3
# 修改配置文件
cd /opt/app/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
1.3 关闭防火墙
此项是为了防止查看zk集群状态时出现“Error contacting service. It is probably not running.”错误,不关闭防火墙前提需要配置防火墙规则。
查看firewalld运行状态
systemctl status firewalld.service
关闭firewalld
systemctl stop firewalld.service
永久关闭
systemctl disable firewalld.service
1.4 启动zk
分别启动三台节点
cd /opt/app/zookeeper/bin
./ zkServer.sh start
查看集群状态
./zkServer.sh status
server.1
server.2
server.3
此时server.3为领导者
1.5 停止zk
cd /opt/app/zookeeper/bin
./zkServer.sh stop
1.6 重启后查看集群选举是否正常
server.1
server.2
server.3
此时server.2为领导者,集群选举正常
1.7 zk客户端使用
cd /opt/app/zookeeper/bin
./zkCli.sh -server 192.168.45.243:2181 //连本地节点
./zkCli.sh -server 192.168.45.243 //不带端口就采用默认2181端口
./zkCli.sh //不带参数回车默认连接本地IP和2181端口
./zkCli.sh -server 192.168.44.24 //也可以连接节点2的zk
二、Zookeeper给dubbo节点加auth认证
2.1 登陆Zookeeper客户端
执行命令: ./zkCli.sh -server localhost:2181
2.2 查看Zookeeper下节点
执行命令:ls /
注:如没有dubbo节点,则可执行create /dubbo来创建dubbo节点
执行命令:create /dubbo
2.3 添加用户名、密码
执行命令: addauth digest admin:P@ssw0rd
2.4 授予/dubbo auth权限
执行命令: setAcl /dubbo auth:admin:P@ssw0rd:rwadc
2.5 修改dubbo-config.xml配置文件
vim dubbo-config.xml
原
<dubbo:registry protocol="zookeeper" address="${zookeeper.ip}" client="curator"/>
修改为:
<dubbo:registry protocol="zookeeper" address="${zookeeper.ip}" username="admin" password="P@ssw0rd" client="curator"/>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY