
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://travis-ci.com/davidmparrott/kafka_exporter.svg?branch=master](https://travis-ci.org/danielqsj/kafka_exporter) https://img.shields.io/docker/pulls/dparrott/kafka-exporter.svg](https://hub.docker.com/r/dparrott/kafka-exporter) https://img.shields.io/badge/language-Go-red.svg](https://github.com/dparrott/kafka_exporter) https://img.shields.io/badge/license-Apache%202-4EB1BA.svg](https://www.apache.org/licenses/LICENSE-2.0.html)
Prometheus的Kafka指标导出器。如需Kafka的其他指标,请查看https://github.com/prometheus/jmx_exporter%E3%80%82
支持https://kafka.apache.org 0.10.1.0版本及更高版本。
可从https://github.com/davidmparrott/kafka_exporter/releases%E9%A1%B5%E9%9D%A2%E4%B8%8B%E8%BD%BD%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E3%80%82
shellmake
shellmake docker
shelldocker pull dparrott/kafka-exporter:latest
可直接使用此镜像,无需自行构建 https://hub.docker.com/r/dparrott/kafka-exporter
shellkafka_exporter --kafka.server=kafka:9092 [--kafka.server=another-server ...]
shelldocker run -ti --rm -p 9308:9308 dparrott/kafka-exporter --kafka.server=kafka:9092 [--kafka.server=another-server ...]
此镜像可通过不同标志进行配置
| 标志名称 | 默认值 | 描述 |
|---|---|---|
| kafka.server | kafka:9092 | Kafka服务器地址(host:port) |
| kafka.version | 1.0.0 | Kafka broker版本 |
| sasl.enabled | false | 使用SASL/PLAIN进行连接 |
| sasl.handshake | true | 仅在使用非Kafka SASL代理时设置为false |
| sasl.username | SASL用户名 | |
| sasl.password | SASL用户密码 | |
| sasl.mechanism | SASL机制,可选值:plain、scram-sha512、scram-sha256 | |
| tls.enabled | false | 使用TLS进行连接 |
| tls.ca-file | TLS客户端认证的可选证书颁发机构文件 | |
| tls.cert-file | 客户端认证的可选证书文件 | |
| tls.key-file | 客户端认证的可选密钥文件 | |
| tls.insecure-skip-tls-verify | false | 若为true,将不验证服务器证书的有效性 |
| topic.filter | .* | 用于确定要收集哪些主题的正则表达式 |
| group.filter | .* | 用于确定要收集哪些消费者组的正则表达式 |
| web.listen-address | :9308 | 用于Web界面和遥测的监听地址 |
| web.telemetry-path | /metrics | 暴露指标的路径 |
| log.level | info | 仅记录指定级别及以上的日志。有效级别:[debug, info, warn, error, fatal] |
| log.enable-sarama | false | 开启Sarama日志 |
| max.offsets | 1000 | 分区插值表中存储的最大偏移量数量 |
| prune.interval | 30 | 插值表的修剪频率(秒) |
布尔值由https://github.com/alecthomas/kingpin/blob/master/README.md#boolean-values%E7%AE%A1%E7%90%86%EF%BC%8C%E6%AF%8F%E4%B8%AA%E5%B8%83%E5%B0%94%E6%A0%87%E5%BF%97%E9%83%BD%E6%9C%89%E4%B8%80%E4%B8%AA%E5%90%A6%E5%AE%9A%E5%BD%A2%E5%BC%8F%EF%BC%9A%60--和--no-
例如:
若需禁用sasl.handshake,可添加标志--no-sasl.handshake
关于暴露的Prometheus指标说明。
有关底层指标的详细信息,请参见https://kafka.apache.org/documentation%E3%80%82
指标详情
| 名称 | 暴露信息 |
|---|---|
kafka_brokers | Kafka集群中的Broker数量 |
指标输出示例
txt# HELP kafka_brokers Number of Brokers in the Kafka Cluster. # TYPE kafka_brokers gauge kafka_brokers 3
指标详情
| 名称 | 暴露信息 |
|---|---|
kafka_topic_partitions | 主题的分区数量 |
kafka_topic_partition_current_offset | 主题/分区在Broker上的当前偏移量 |
kafka_topic_partition_oldest_offset | 主题/分区在Broker上的最旧偏移量 |
kafka_topic_partition_in_sync_replica | 主题/分区的同步副本数量 |
kafka_topic_partition_leader | 主题/分区的Leader Broker ID |
kafka_topic_partition_leader_is_preferred | 1表示主题/分区使用首选Broker |
kafka_topic_partition_replicas | 主题/分区的副本数量 |
kafka_topic_partition_under_replicated_partition | 1表示主题/分区为欠复制分区 |
指标输出示例
txt# HELP kafka_topic_partitions Number of partitions for this Topic # TYPE kafka_topic_partitions gauge kafka_topic_partitions{topic="__consumer_offsets"} 50 # HELP kafka_topic_partition_current_offset Current Offset of a Broker at Topic/Partition # TYPE kafka_topic_partition_current_offset gauge kafka_topic_partition_current_offset{partition="0",topic="__consumer_offsets"} 0 # HELP kafka_topic_partition_oldest_offset Oldest Offset of a Broker at Topic/Partition # TYPE kafka_topic_partition_oldest_offset gauge kafka_topic_partition_oldest_offset{partition="0",topic="__consumer_offsets"} 0 # HELP kafka_topic_partition_in_sync_replica Number of In-Sync Replicas for this Topic/Partition # TYPE kafka_topic_partition_in_sync_replica gauge kafka_topic_partition_in_sync_replica{partition="0",topic="__consumer_offsets"} 3 # HELP kafka_topic_partition_leader Leader Broker ID of this Topic/Partition # TYPE kafka_topic_partition_leader gauge kafka_topic_partition_leader{partition="0",topic="__consumer_offsets"} 0 # HELP kafka_topic_partition_leader_is_preferred 1 if Topic/Partition is using the Preferred Broker # TYPE kafka_topic_partition_leader_is_preferred gauge kafka_topic_partition_leader_is_preferred{partition="0",topic="__consumer_offsets"} 1 # HELP kafka_topic_partition_replicas Number of Replicas for this Topic/Partition # TYPE kafka_topic_partition_replicas gauge kafka_topic_partition_replicas{partition="0",topic="__consumer_offsets"} 3 # HELP kafka_topic_partition_under_replicated_partition 1 if Topic/Partition is under Replicated # TYPE kafka_topic_partition_under_replicated_partition gauge kafka_topic_partition_under_replicated_partition{partition="0",topic="__consumer_offsets"} 0
指标详情
| 名称 | 暴露信息 |
|---|---|
kafka_consumergroup_current_offset | 消费者组在主题/分区上的当前偏移量 |
kafka_consumergroup_lag | 消费者组在主题/分区上的当前近似延迟 |
指标输出示例
txt# HELP kafka_consumergroup_current_offset Current Offset of a ConsumerGroup at Topic/Partition # TYPE kafka_consumergroup_current_offset gauge kafka_consumergroup_current_offset{consumergroup="KMOffsetCache-kafka-manager-3806276532-ml44w",partition="0",topic="__consumer_offsets"} -1 # HELP kafka_consumergroup_lag Current Approximate Lag of a ConsumerGroup at Topic/Partition # TYPE kafka_consumergroup_lag gauge kafka_consumergroup_lag{consumergroup="KMOffsetCache-kafka-manager-3806276532-ml44w",partition="0",topic="__consumer_offsets"} 1
指标详情
| 名称 | 暴露信息 |
|---|---|
kafka_consumer_lag_millis | 消费者组在主题/分区上的当前近似延迟(毫秒) |
kafka_consumer_lag_extrapolation | 表示消费者组延迟估计使用了外推法 |
kafka_consumer_lag_interpolation | 表示消费者组延迟估计使用了插值法 |
指标输出示例
# HELP kafka_consumer_lag_extrapolation Indicates that a consumer group lag estimation used extrapolation # TYPE kafka_consumer_lag_extrapolation counter kafka_consumer_lag_extrapolation{consumergroup="perf-consumer-74084",partition="0",topic="test"} 1 # HELP kafka_consumer_lag_interpolation Indicates that a consumer group lag estimation used interpolation # TYPE kafka_consumer_lag_interpolation counter kafka_consumer_lag_interpolation{consumergroup="perf-consumer-74084",partition="0",topic="test"} 1 # HELP kafka_consumer_lag_millis Current approximation of consumer lag for a ConsumerGroup at Topic/Partition # TYPE kafka_consumer_lag_millis gauge kafka_consumer_lag_millis{consumergroup="perf-consumer-74084",partition="0",topic="test"} 3.4457231197552e+10
Grafana仪表板ID:7589,名称:Kafka Exporter Overview。
有关仪表板的详细信息,请参见https://grafana.com/dashboards/7589%E3%80%82
消费者组、主题和分区的延迟估计技术借鉴自https://github.com/lightbend/kafka-lag-exporter%E3%80%82
导出器启动后,开始采样要生成的下一个偏移量。插值表由这些样本构建,每个受监控消费者组的当前偏移量与表中的值进行比较。如果表中包含消费者组当前偏移量的上下界,则使用插值法;如果仅包含上界,则使用外推法。
在可配置的间隔prune.interval(默认30秒)内,会执行插值表的修剪操作。任何不再被broker列出的消费者组或主题将被移除。每个分区的偏移量数量会被修剪至max.offsets(默认1000),最旧的偏移量会被优先移除。
插值表的修剪在单独的线程上进行,通过插值表周围的锁确保线程安全。
如需向上游项目贡献,请提交https://github.com/danielqsj/kafka_exporter/pulls%E3%80%82
如需向此分支贡献,请在此提交https://github.com/davidmparrott/kafka_exporter/pulls%E3%80%82
如需向本项目的原始开发者***,请使用以下***链接
代码基于https://github.com/danielqsj/kafka_exporter/blob/master/LICENSE%E8%AE%B8%E5%8F%AF%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 dparrott/kafka-exporter 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: