如何读取Zookeeper事务日志?

时间:2013-07-27 06:03:43

标签: apache-zookeeper

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

5 个答案:

答案 0 :(得分:26)

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

答案:

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

答案 1 :(得分:7)

你可以使用这样的东西

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

答案 2 :(得分: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

答案 3 :(得分:0)

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

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

此处提供完整信息:https://zookeeper.apache.org/doc/r3.6.1/zookeeperAuditLogs.html

答案 4 :(得分:0)

从zookeeper 3.6版开始,有一些工具可以在zookeeper分发中读取事务日志和快照:

对于事务日志:

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

对于快照:

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

查看official docs

中的详细信息