CentOS 7 使用Docker方式搭建Zookeeper 3.6.1 三节点集群,并配置zookeeper-ui可视化管理界面

开整!!

第一步,准备3台虚拟机,系统为CentOS 7,如下

IP 角色
172.16.31.191 zookeeper-1
172.16.31.192 zookeeper-2
172.16.31.193 zookeeper-3

第二步,在虚拟机上装好docker并启动(不会使用 docker 的话请先百度了解一下),3台虚拟机都要

第三步,创建存储目录 /usr/local/docker/zookeeper,3台虚拟机都要,如下

mkdir /usr/local/docker/zookeeper

并创建相关挂载目录,3台虚拟机都要,如下

mkdir /usr/local/docker/zookeeper/config
mkdir /usr/local/docker/zookeeper/data

第四步,在 /usr/local/docker/zookeeper/config 目录下新建 zoo.cfg 配置文件,3台虚拟机都要,内容一样,如下

vim /usr/local/docker/zookeeper/config/zoo.cfg

zoo.cfg

clientPort=2181
dataDir=/data
dataLogDir=/data/log
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
4lw.commands.whitelist=*
server.1=172.16.31.191:2888:3888
server.2=172.16.31.192:2888:3888
server.3=172.16.31.193:2888:3888

另外,还要在 /usr/local/docker/zookeeper/data 目录下新建 myid 配置文件,里面的内容编号不能重复,3台虚拟机都要,如下

172.16.31.191

# 创建 myid 配置文件
touch /usr/local/docker/zookeeper/data/myid
# 添加配置 1 ,此编号代表选举的时候的编号
echo 1 > /usr/local/docker/zookeeper/data/myid

172.16.31.192

# 创建 myid 配置文件
touch /usr/local/docker/zookeeper/data/myid
# 添加配置 2 ,此编号代表选举的时候的编号
echo 2 > /usr/local/docker/zookeeper/data/myid

172.16.31.193

# 创建 myid 配置文件
touch /usr/local/docker/zookeeper/data/myid
# 添加配置 3 ,此编号代表选举的时候的编号
echo 3 > /usr/local/docker/zookeeper/data/myid

第五步,docker方式启动 Zookeeper 3.6.1,3台虚拟机都要,如下

172.16.31.191

docker run --network host -v /usr/local/docker/zookeeper/data:/data -v /usr/local/docker/zookeeper/conf/zoo.cfg:/conf/zoo.cfg --name zookeeper-1 -d zookeeper:3.6.1

172.16.31.192

docker run --network host -v /usr/local/docker/zookeeper/data:/data -v /usr/local/docker/zookeeper/conf/zoo.cfg:/conf/zoo.cfg --name zookeeper-2 -d zookeeper:3.6.1

172.16.31.193

docker run --network host -v /usr/local/docker/zookeeper/data:/data -v /usr/local/docker/zookeeper/conf/zoo.cfg:/conf/zoo.cfg --name zookeeper-3 -d zookeeper:3.6.1

第五步,任选一台虚拟机配置 zookeeper-ui 可视化管理界面,我选的是 172.16.31.191,虚拟机需要配置好 jdk 环境!如下

1、上 GitHub 拉取最新代码: https://github.com/DeemOpen/zkui

git clone https://github.com/DeemOpen/zkui.git

2、打开项目,进入根目录进行编译打包

mvn clean install

3、打包完后将 target 目录下的 zkui-2.0-SNAPSHOT-jar-with-dependencies.jar 包上传到 /usr/local/docker/zookeeper/zookeeper-ui 目录下

4、进入 /usr/local/docker/zookeeper/zookeeper-ui 目录,创建 config.cfg 配置文件,如下

cd /usr/local/docker/zookeeper/zookeeper-ui
vim config.cfg

config.cfg

#Server Port
serverPort=9090
#Comma seperated list of all the zookeeper servers
zkServer=172.16.31.191:2181,172.16.31.192:2181,172.16.31.193:2181
#Http path of the repository. Ignore if you dont intent to upload files from repository.
scmRepo=http://myserver.com/@rev1=
#Path appended to the repo url. Ignore if you dont intent to upload files from repository.
scmRepoPath=//appconfig.txt
#if set to true then userSet is used for authentication, else ldap authentication is used.
ldapAuth=false
ldapDomain=mycompany,mydomain
#ldap authentication url. Ignore if using file based authentication.
ldapUrl=ldap://<ldap_host>:<ldap_port>/dc=mycom,dc=com
#Specific roles for ldap authenticated users. Ignore if using file based authentication.
ldapRoleSet={"users": [{ "username":"domain\\user1" , "role": "ADMIN" }]}
userSet = {"users": [{ "username":"admin" , "password":"admin","role": "ADMIN" },{ "username":"appconfig" , "password":"appconfig","role": "USER" }]}
#Set to prod in production and dev in local. Setting to dev will clear history each time.
env=prod
jdbcClass=org.h2.Driver
jdbcUrl=jdbc:h2:zkui
jdbcUser=root
jdbcPwd=manager
#If you want to use mysql db to store history then comment the h2 db section.
#jdbcClass=com.mysql.jdbc.Driver
#jdbcUrl=jdbc:mysql://localhost:3306/zkui
#jdbcUser=root
#jdbcPwd=manager
loginMessage=Please login using admin/manager or appconfig/appconfig.
#session timeout 5 mins/300 secs.
sessionTimeout=300
#Default 5 seconds to keep short lived zk sessions. If you have large data then the read will take more than 30 seconds so increase this accordingly. 
#A bigger zkSessionTimeout means the connection will be held longer and resource consumption will be high.
zkSessionTimeout=5
#Block PWD exposure over rest call.
blockPwdOverRest=false
#ignore rest of the props below if https=false.
https=false
keystoreFile=/home/user/keystore.jks
keystorePwd=password
keystoreManagerPwd=password
# The default ACL to use for all creation of nodes. If left blank, then all nodes will be universally accessible
# Permissions are based on single character flags: c (Create), r (read), w (write), d (delete), a (admin), * (all)
# For example defaultAcl={"acls": [{"scheme":"ip", "id":"192.168.1.192", "perms":"*"}, {"scheme":"ip", id":"192.168.1.0/24", "perms":"r"}]
defaultAcl=
# Set X-Forwarded-For to true if zkui is behind a proxy
X-Forwarded-For=false

5、保存后启动项目,如下

 nohup java -jar zkui-2.0-SNAPSHOT-jar-with-dependencies.jar &

第六步,访问 172.16.31.191:9090 查看集群状态,如下

注意,账号密码在 config.cfg 里面的 userSet 配置选项,我配置为 admin/admin,如下能查到各个节点的信息,则表示集群部署成功

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354