【问题标题】:Is it possible to log all incoming messages in Apache Kafka是否可以在 Apache Kafka 中记录所有传入消息
【发布时间】:2019-07-29 07:30:16
【问题描述】:

我需要知道是否可以为 Apache Kafka 代理配置日志记录以写入所有生产/消费主题及其消息。 我一直在查看 log4j.properties,但建议的属性似乎都不能满足我的需要。

提前致谢。

查看 Kafka 生成的日志文件,它们似乎都没有记录不同主题中写入的消息。

更新: 不完全是我要找的东西,但对于任何看起来相似的人,我发现:https://github.com/kafka-lens/kafka-lens 它提供了一个友好的 GUI 来查看不同主题的消息。

【问题讨论】:

  • 我有兴趣;为什么要记录它们?这是调试用的吗?
  • 是的,它用于调试。例如,我需要查看某个主题的消息是否已发布

标签: apache-kafka


【解决方案1】:

我觉得“日志”这个词有些混乱。

当您谈论 log4j 时,我假设您谈论的是我所说的“应用程序日志”。 Kafka 不会将其处理的记录写入 application/log4j 日志。在 Kafka 中,log4j 日志仅用于跟踪错误并提供有关代理正在执行的工作的一些上下文。

另一方面,Kafka 将记录写入/读取其“log”,即 Kafka 日志。这些存储在log.dirs(默认为/tmp/kafka-logs)指定的路径中,不能直接读取。您可以根据需要使用DumpLogSegments 工具读取这些文件,例如:

bin/kafka-run-class.sh kafka.tools.DumpLogSegments \
    -f /tmp/kafka-logs/topic-0/00000000000000000000.log

【讨论】:

  • 谢谢 Mickael,也许我有点困惑。我有两个应用程序,一个将消息发布到主题中,另一个在该主题中侦听。例如,如果我需要调试一条消息是否被有效地生成并发送到一个主题,我唯一的选择是查看生产者应用程序是否发送了它。卡夫卡不可能记录以下内容:收到的消息:...关于主题:...?再次感谢!
  • 您不会在 log4j 日志中找到消息,但如果您使用 DumpLogSegments 工具,您可以尝试在 Kafka 日志中找到您的消息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-17
  • 1970-01-01
  • 2017-04-07
相关资源
最近更新 更多