java - 使用额外的 3rd 方插件运行 kafka 服务器,用于统计收集、日志记录等
问题描述
来自 ActiveMQ 背景。ActiveMQ 使用 spring xml 配置文件来运行代理,我们可以注入任何 3rd 方插件,例如自定义统计收集器,使用 spring 配置文件中的 beans 的自定义日志记录插件。
对于 Kafka,我想重新使用相同的统计信息收集器插件并将其与 Kafka 一起启动以收集其他系统统计信息,如线程、cpu 等。
在仔细阅读 Kafka 文档后,我一直无法找到方法。有没有人对此有可行的解决方案?这甚至可以在不修改 Kafka 源的情况下实现吗?
任何帮助将不胜感激。谢谢!
解决方案
没有可修改的源代码。您可以使用任何 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
推荐阅读
- c# - 如何绘制正常和粗体字体并使整个字符串居中对齐
- mysql - 如何在phpmyadmin中将作为字符串的整个列转换为日期?
- python-3.x - 为什么我调用 Minio 的 get_object(self._bucket_name, object_name) 会变空?
- nginx - 在反向代理中重写和缓存响应 URL
- symfony - Symfony 3.4:在实例化的服务中使用应用程序参数
- java - 通过 Stream API 迭代和减少 Java 映射的值
- java - Android DatePicker 如何更改样式,不显示数字?
- aws-load-balancer - 是否可以确定哪个 AWS LoadBalancer 是源?
- javascript - FullscreenBookBlock - 在页面上时的活动类
- python - 反复听键盘并根据Bottle中按下的键显示变化