是否有任何现有工具可以帮助读取Zookeeper事务日志?默认情况下,它是二进制格式,我想以人类可读的形式阅读它。
答案 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
中的详细信息