【问题标题】:Where is the error log file destination for Zookeeper distributed with Kafka?与 Kafka 一起分发的 Zookeeper 的错误日志文件目的地在哪里?
【发布时间】:2019-03-15 22:11:33
【问题描述】:

在同一节点上运行 ZK 和 Kafka 时,我对如何配置为 Zookeeper 写入错误日志文件的位置有点困惑。我知道它使用 log4j 并且有一个 zookeeper.properties 文件。我假设它正在使用某种开箱即用的默认值。如果我这样做:

sudo lsof -p 31311 | grep log | grep zoo

我明白了:

java    31311 root    1w      REG              259,1     24962  134739 /home/ec2-user/zookeeper-start-log
java    31311 root    2w      REG              259,1     24962  134739 /home/ec2-user/zookeeper-start-log
java    31311 root    3w      REG              259,1     22350 1050171 /opt/Kafka/kafka_2.11-1.1.0/logs/zookeeper-gc.log.0.current
java    31311 root   94w      REG              259,1  67108880  394260 /var/local/zookeeper/data/version-2/log.1

如果我想明确指定 zookeeper 的错误日志位置,我在 zookeeper.properties 文件中具体指定什么?

【问题讨论】:

    标签: apache-kafka apache-zookeeper


    【解决方案1】:

    如果您使用提供的zookeeper-server-start 脚本,则Kafka 和Zookeeper 共享相同的log4j.properties 文件。

    在那里,您可以根据 Zookeeper 客户端和/或 Kafka 的包名称重新配置 DailyRollingFileAppender 或 ConsoleAppender

    如果你想重新配置 Zookeeper 存储的数据而不是服务日志,Zookeeper 文档应该涵盖这些以及默认值

    【讨论】:

    • 顺便说一句,不建议以 root 身份运行您的服务
    • 我如何指定一个单独的文件用于记录来自 Kafka 消息的 zookeeper 消息?
    • 它们应该已经分开了。代理服务器日志、日志清理器、控制器等都是 log4j 文件中的单独文件,但不建议在生产设置中在与 Zookeeper 相同的服务器上运行代理,因此您不必担心这一点
    • @Ryan 正如回答,Zookeeper 和 Kafka 都只有一个 log4.properties。您是否实际获取文件取决于文件的配置方式。事实上,这适用于几乎所有 Java 服务。 By default, Zookeeper just goes to stdout, while Kafka goes to various files.
    • 换句话说,创建一些zooAppender on this line 并使用像kafkaAppender 这样的DailyRollingFileAppender 对其进行配置。然后你会得到文件。
    猜你喜欢
    • 2017-12-18
    • 1970-01-01
    • 2012-10-01
    • 2014-08-03
    • 1970-01-01
    • 2018-04-26
    • 2017-10-26
    • 2019-03-25
    • 2015-08-31
    相关资源
    最近更新 更多