使用额外的第三方插件运行kafka服务器以进行统计信息收集,日志记录等

问题描述 投票:0回答:2

来自ActiveMQ背景。 ActiveMQ使用spring xml配置文件来运行代理,我们可以注入任何第三方插件,如自定义统计信息收集器,一个使用spring配置文件中的bean的自定义日志记录插件。

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

在仔细阅读Kafka文档后,我找不到办法。有没有人有这个可行的解决方案?这是否可以在不修改Kafka源的情况下实现?

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

java plugins apache-kafka jvm
2个回答
1
投票

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

如果您想要一种DIY方法,或者有一些供应商产品如DataDog可以提供Java代理,那么Prometheus Java Agent就很受欢迎。

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

对于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


0
投票

我在kafka找到了metrics.reporter配置。我们可以提供和实现MetricsReporter接口。在这个接口的init方法中,我初始化并启动了我的第三方插件以进行统计信息收集。

在服务器属性文件中,我添加了以下属性以启用metrics报告器的自定义实现:

metric.reporters=abc.kafka.plugin.KafkaMetricPlugin

许多其他监控解决方案,如linkedin的巡航控制,汇流控制中心使用这种方法。

© www.soinside.com 2019 - 2024. All rights reserved.