如何读取Zookeeper的交易日志?

mctunoxg  于 2022-12-09  发布在  Apache
关注(0)|答案(5)|浏览(233)

是否有任何现有的工具可以帮助读取Zookeeper事务日志?默认情况下,它是二进制格式的,我想以人类可读的形式阅读它。

cczfrluj

cczfrluj1#

我不知道你是否解决了这个问题。

答案:

cd the zookeeper dir.

如果要读取快照,请用途:

java -cp zookeeper-3.4.6.jar:lib/log4j-1.2.16.jar:lib/slf4j-log4j12-1.6.1.jar:lib/slf4j-api-1.6.1.jar org.apache.zookeeper.server.SnapshotFormatter version-2/snapshot.xxx

如果要读取日志,请用途:

java -cp zookeeper-3.4.6.jar:lib/log4j-1.2.16.jar:lib/slf4j-log4j12-1.6.1.jar:lib/slf4j-api-1.6.1.jar org.apache.zookeeper.server.LogFormatter version-2/log.xxx
vaqhlq81

vaqhlq812#

你可以用这样的东西
java -cp $ZOOKEEPER_CLASSPATH org.apache.zookeeper.server.LogFormatter [zookeeper log file path]

pwuypxnk

pwuypxnk3#

在前面两个答案的基础上,使用Zookeeper 3.5.6:从包含所有ZK和支持jar的/path/to/zookeeper/lib目录运行:
java -cp * org.apache.zookeeper.server.LogFormatter /path/to/zookeeper/transaction/logs/version-2/log.xxx

fgw7neuy

fgw7neuy4#

自zookeeper 3.6版起,zookeeper发行版中提供了读取事务日志和快照的工具:
对于事务日志:

bin/zkTxnLogToolkit.sh --dump /datalog/version-2/log.f3aa6

对于快照:

./zkSnapShotToolkit.sh -d /data/zkdata/version-2/snapshot.fa01000186d

详见官方文件

ljo96ir5

ljo96ir55#

您可以为ZooKeeper 3.6.o及更高版本启用ZooKeeper审核日志。要启用审核日志,请在conf/zoo.cfg中配置audit.enable=true。
需要记住的一件事是,来自同一集合的不同服务器的日志应该被聚合,因为它们中的每一个都包括仅从连接到该特定服务器的客户端执行的操作。
完整信息:https://zookeeper.apache.org/doc/r3.6.1/zookeeperAuditLogs.html

相关问题