Zookeeper -命令行

服务端常用命令

在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作 

启动ZK服务:       sh bin/zkServer.sh start ·

查看ZK服务状态: sh bin/zkServer.sh status · 

停止ZK服务:       sh bin/zkServer.sh stop · 

重启ZK服务:       sh bin/zkServer.sh restart

客户端常用命令

使用 zkCli.sh -server 127.0.0.1:2181 连接到 ZooKeeper 服务,连接成功后,系统会输出 ZooKeeper 的相关环境以及配置信息。 命令行工具的一些简单操作如下:

  1. 显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容 
  2. 显示根目录下、文件: ls2 / 查看当前节点数据并能看到更新次数等数据 
  3. 创建文件,并设置初始内容: create /zk "test" 创建一个新的 znode节点“ zk ”以及与它关联的字符串  [-e] [-s] 【-e 零时节点】 【-s 顺序节点】
  4. 获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串  [watch]【watch 监听】
  5. 修改文件内容: set /zk "zkbak" 对 zk 所关联的字符串进行设置 ·
  6. 删除文件: delete /zk 将刚才创建的 znode 删除,如果存在子节点删除失败 
  7. 递归删除:rmr  /zk将刚才创建的 znode 删除,子节点同时删除
  8. 退出客户端: quit ·
  9. 帮助命令: help

ACL命令常用命令

Zookeeper的ACL(Access Control List),分为三个维度:scheme、id、permission

通常表示为:scheme:id:permission

  1. schema:代表授权策略
  2. id:代表用户
  3. permission:代表权限

Scheme

world:

默认方式,相当于全世界都能访问

auth:

代表已经认证通过的用户(可以通过addauth digest user:pwd 来添加授权用户)

digest:

即用户名:密码这种方式认证,这也是业务系统中最常用的

ip:

使用Ip地址认证

id

id是验证模式,不同的scheme,id的值也不一样。

scheme为auth时:

username:password

scheme为digest时:
username:BASE64(SHA1(password))

scheme为ip时:
客户端的ip地址。

scheme为world时
anyone。

Permission

CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、删、改、查、管理权限,这5种权限简写为crwda(即:每个单词的首字符缩写)

CREATE(c):创建子节点的权限

DELETE(d):删除节点的权限

READ(r):读取节点数据的权限

WRITE(w):修改节点数据的权限

ADMIN(a):设置子节点权限的权限

ACL命令

getAcl

获取指定节点的ACL信息

create /testDir/testAcl deer  # 创建一个子节点

getAcl /testDir/testAcl      # 获取该节点的acl权限信息

​​​​​​​setAcl

设置指定节点的ACL信息

setAcl /testDir/testAcl world:anyone:crwa   # 设置该节点的acl权限

getAcl /testDir/testAcl   # 获取该节点的acl权限信息,成功后,该节点就少了d权限

create /testDir/testAcl/xyz xyz-data   # 创建子节点

delete /testDir/testAcl/xyz    # 由于没有d权限,所以提示无法删除

addauth

注册会话授权信息

​​​​​​​Auth

addauth digest user1:123456                # 需要先添加一个用户

setAcl /testDir/testAcl auth:user1:123456:crwa   # 然后才可以拿着这个用户去设置权限

getAcl /testDir/testAcl    # 密码是以密文的形式存储的

create /testDir/testAcl/testa aaa   

delete /testDir/testAcl/testa   # 由于没有d权限,所以提示无法删除

退出客户端后:

ls /testDir/testAcl  #没有权限无法访问

create /testDir/testAcl/testb bbb #没有权限无法访问

addauth digest user1:123456  # 重新新增权限后可以访问了

​​​​​​​Digest

auth与digest的区别就是,前者使用明文密码进行登录,后者使用密文密码进行登录

create /testDir/testDigest  data

addauth digest user1:123456

setAcl /testDir/testDigest digest:user1:HYGa7IZRm2PUBFiFFu8xY2pPP/s=:crwa   # 使用digest来设置权限

注意:这里如果使用明文,会导致该znode不可访问

通过明文获得密文

shell>

java -Djava.ext.dirs=/opt/software/zookeeper-3.4.12/lib -cp /opt/software/zookeeper-3.4.12/zookeeper-3.4.12.jar org.apache.zookeeper.server.auth.DigestAuthenticationProvider user1:123456

user1:123456->user1:HYGa7IZRm2PUBFiFFu8xY2pPP/s=

acl命令行ip

create  /testDir/testIp data

setAcl  /testDir/testIp ip:192.168.30.10:cdrwa

getAcl  /testDir/testIp

常用四字命令

ZooKeeper 支持某些特定的四字命令字母与其的交互。用来获取 ZooKeeper 服务的当前状态及相关信息。可通过 telnet 或 nc 向 ZooKeeper 提交相应的命令 :

当然,前提是安装好了nc

echo stat|nc 127.0.0.1 2181 来查看哪个节点被选择作为follower或者leader ·

使用echo ruok|nc 127.0.0.1 2181 测试是否启动了该Server,若回复imok表示已经启动。 · 

echo dump| nc 127.0.0.1 2181 ,列出未经处理的会话和临时节点。 · 

echo kill | nc 127.0.0.1 2181 ,关掉server · 

echo conf | nc 127.0.0.1 2181 ,输出相关服务配置的详细信息。 · 

echo cons | nc 127.0.0.1 2181 ,列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息 · 

echo envi |nc 127.0.0.1 2181 ,输出关于服务环境的详细信息(区别于 conf 命令)。 · 

echo reqs | nc 127.0.0.1 2181 ,列出未经处理的请求。 · 

echo wchs | nc 127.0.0.1 2181 ,列出服务器 watch 的详细信息。 · 

echo wchc | nc 127.0.0.1 2181 ,通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。 · 

echo wchp | nc 127.0.0.1 2181 ,通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径。

ZooKeeper 日志可视化

前面以及讲了两个非常重要的配置一个是dataDir,存放的快照数据,一个是dataLogDir,存放的是事务日志文件

java -cp /soft/zookeeper-3.4.12/zookeeper-3.4.12.jar:/soft/zookeeper-3.4.12/lib/slf4j-api-1.7.25.jar org.apache.zookeeper.server.LogFormatter log.1

 

java -cp /soft/zookeeper-3.4.12/zookeeper-3.4.12.jar:/soft/zookeeper-3.4.12/lib/slf4j-api-1.7.25.jar org.apache.zookeeper.server.SnapshotFormatter log.1

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值