22

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

4

5 回答 5

37

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

回答:

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
于 2015-11-25T07:24:32.453 回答
7

你可以使用这样的东西

java -cp $ZOOKEEPER_CLASSPATH org.apache.zookeeper.server.LogFormatter [zookeeper log file path]

于 2013-10-09T04:41:12.007 回答
1

在前两个答案的基础上,使用 Zookeeper 3.5.6:从/path/to/zookeeper/lib包含所有 ZK 和支持 jar 的目录运行:

java -cp * org.apache.zookeeper.server.LogFormatter /path/to/zookeeper/transaction/logs/version-2/log.xxx

于 2020-05-15T18:17:22.057 回答
0

从 zookeeper 3.6 版开始,zookeeper 发行版中有读取事务日志和快照的工具:

对于事务日志:

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

对于快照:

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

详见官方文档

于 2020-11-30T09:24:49.193 回答
0

您可以为 ZooKeeper 3.6.o 及更高版本启用 ZooKeeper 审计日志。要启用审计日志,请在 conf/zoo.cfg 中配置 audit.enable=true。

要记住的一件事是,应该汇总来自同一集合的不同服务器的日志,因为它们中的每一个都包含仅从连接到该特定服务器的客户端执行的操作。

完整信息在这里:https ://zookeeper.apache.org/doc/r3.6.1/zookeeperAuditLogs.html

于 2020-06-20T15:16:16.733 回答