首页 > 解决方案 > 使用额外的 3rd 方插件运行 kafka 服务器,用于统计收集、日志记录等

问题描述

来自 ActiveMQ 背景。ActiveMQ 使用 spring xml 配置文件来运行代理,我们可以注入任何 3rd 方插件,例如自定义统计收集器,使用 spring 配置文件中的 beans 的自定义日志记录插件。

对于 Kafka,我想重新使用相同的统计信息收集器插件并将其与 Kafka 一起启动以收集其他系统统计信息,如线程、cpu 等。

在仔细阅读 Kafka 文档后,我一直无法找到方法。有没有人对此有可行的解决方案?这甚至可以在不修改 Kafka 源的情况下实现吗?

任何帮助将不胜感激。谢谢!

标签: javapluginsapache-kafkajvm

解决方案


没有可修改的源代码。您可以使用任何 JMX 指标收集器或 Java 代理。

如果您想要 DIY 方法,或者有提供 Java 代理的 DataDog 等供应商产品,Prometheus Java 代理很受欢迎。

对于您使用的任何工具,您可以通过注入运行时参数KAFKA_OPTS

对于 Prometheus JMX 导出器,

export KAFKA_OPTS='-javaagent:/path/to/jmx_prometheus_javaagent-0.9.jar=7071:/path/to/kafka-patterns.yml'
kafka-server-start /path/to/server.properties

日志记录由 SLF4J 处理,因此您可以根据需要对其进行配置,默认记录器为 log4j


推荐阅读