
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
kafka_exporter是一个用于Prometheus的Kafka指标导出器,能够收集Kafka集群的关键指标(如Broker状态、Topic分区信息、消费者组滞后等),并通过HTTP端点暴露给Prometheus进行监控。对于Kafka的其他JMX指标,可结合https://github.com/prometheus/jmx_exporter%E4%BD%BF%E7%94%A8%E3%80%82
支持https://kafka.apache.org 0.10.1.0及更高版本。
适用于需要对Kafka集群进行实时监控的场景,包括:
bash# 拉取最新版本 docker pull danielqsj/kafka-exporter:latest # 拉取指定版本(如1.4.1) docker pull danielqsj/kafka-exporter:1.4.1
基础配置(单Kafka节点)
bashdocker run -d \ --name kafka-exporter \ -p 9308:9308 \ danielqsj/kafka-exporter:latest \ --kafka.server=kafka:9092 \ # Kafka服务器地址 --web.listen-address=:9308 # 监听地址(默认:9308)
高级配置(多Kafka节点+SASL认证)
bashdocker run -d \ --name kafka-exporter \ -p 9308:9308 \ danielqsj/kafka-exporter:latest \ --kafka.server=kafka-1:9092 \ --kafka.server=kafka-2:9092 \ # 配置多个Kafka节点 --sasl.enabled=true \ # 启用SASL认证 --sasl.username=admin \ # SASL用户名 --sasl.password=secret \ # SASL密码 --sasl.mechanism=scram-sha512 # SASL认证机制
yamlversion: '3.8' services: kafka-exporter: image: danielqsj/kafka-exporter:latest container_name: kafka-exporter ports: - "9308:9308" command: - --kafka.server=kafka-1:9092 - --kafka.server=kafka-2:9092 - --web.listen-address=:9308 - --refresh.metadata=60s # 元数据刷新间隔 - --kafka.labels=prod-cluster # 集群标识标签 - --topic.filter=^prod-.* # 仅监控prod前缀的topic restart: unless-stopped networks: - kafka-network networks: kafka-network: external: true
| 参数名称 | 默认值 | 描述 |
|---|---|---|
kafka.server | kafka:9092 | Kafka服务器地址(支持多次指定,配置多个节点) |
kafka.version | 1.0.0 | Kafka broker版本(用于协议适配) |
web.listen-address | :9308 | Web服务监听地址(用于暴露指标) |
web.telemetry-path | /metrics | 指标暴露路径 |
refresh.metadata | 30s | Kafka元数据刷新间隔(如topic列表、分区信息) |
kafka.labels | 空 | Kafka集群名称标签(用于多集群监控区分) |
topic.filter | .* | topic过滤正则表达式(仅匹配的topic会被监控) |
group.filter | .* | 消费者组过滤正则表达式(仅匹配的组会被监控) |
| 参数名称 | 默认值 | 描述 |
|---|---|---|
sasl.enabled | false | 是否启用SASL认证 |
sasl.username | 空 | SASL认证用户名(启用时必填) |
sasl.password | 空 | SASL认证密码(启用时必填) |
sasl.mechanism | 空 | SASL认证机制(支持plain、scram-sha512、scram-sha256) |
sasl.handshake | true | 是否启用SASL握手(非Kafka SASL代理时需禁用) |
tls.enabled | false | 是否启用TLS加密连接 |
tls.ca-file | 空 | TLS根证书文件路径(可选) |
tls.cert-file | 空 | TLS客户端证书文件路径(可选) |
tls.key-file | 空 | TLS客户端密钥文件路径(可选) |
tls.insecure-skip-tls-verify | false | 是否跳过TLS证书验证(测试环境使用,生产环境不建议) |
| 参数名称 | 默认值 | 描述 |
|---|---|---|
use.consumelag.zookeeper | false | 是否从ZooKeeper获取消费者组偏移量(适用于旧版Kafka) |
zookeeper.server | localhost:2181 | ZooKeeper服务器地址(当use.consumelag.zookeeper=true时生效) |
offset.show-all | true | 是否显示所有消费者组的偏移量/滞后量(禁用时仅显示活跃组) |
concurrent.enable | false | 是否启用并发指标采集(大型集群建议禁用,避免性能影响) |
topic.workers | 100 | Topic处理工作线程数 |
log.enable-sarama | false | 是否启用Sarama客户端日志(调试用) |
verbosity | 0 | 日志详细程度(0=默认,数值越高日志越详细) |
布尔值参数:采用--<name>启用和--no-<name>禁用的形式。例如:
--sasl.handshake--no-sasl.handshake多值参数:kafka.server支持多次指定,用于监控多节点集群,如--kafka.server=node1:9092 --kafka.server=node2:9092
| 指标名称 | 描述 | 类型 |
|---|---|---|
kafka_brokers | Kafka集群中的Broker数量 | Gauge |
示例输出:
txt# HELP kafka_brokers Number of Brokers in the Kafka Cluster. # TYPE kafka_brokers gauge kafka_brokers 3
| 指标名称 | 描述 | 类型 |
|---|---|---|
kafka_topic_partitions | Topic的分区数量 | Gauge |
kafka_topic_partition_current_offset | Topic分区当前偏移量 | Gauge |
kafka_topic_partition_oldest_offset | Topic分区最旧偏移量 | Gauge |
kafka_topic_partition_in_sync_replica | Topic分区的同步副本数量 | Gauge |
kafka_topic_partition_leader | Topic分区的Leader Broker ID | Gauge |
kafka_topic_partition_leader_is_preferred | 是否使用首选Leader(1=是,0=否) | Gauge |
kafka_topic_partition_replicas | Topic分区的副本总数 | Gauge |
kafka_topic_partition_under_replicated_partition | 是否为欠复制分区(1=是,0=否) | Gauge |
示例输出:
txt# HELP kafka_topic_partitions Number of partitions for this Topic # TYPE kafka_topic_partitions gauge kafka_topic_partitions{topic="order-events"} 8 # 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="order-events"} 3
| 指标名称 | 描述 | 类型 |
|---|---|---|
kafka_consumergroup_current_offset | 消费者组在指定分区的当前偏移量 | Gauge |
kafka_consumergroup_lag | 消费者组在指定分区的滞后量(当前偏移与最新偏移差) | Gauge |
示例输出:
txt# HELP kafka_consumergroup_lag Current Approximate Lag of a ConsumerGroup at Topic/Partition # TYPE kafka_consumergroup_lag gauge kafka_consumergroup_lag{consumergroup="order-service",partition="0",topic="order-events"} 42
官方提供Grafana仪表板模板,支持快速构建可视化监控面板:
使用方法:在Grafana中导入仪表板ID,配置Prometheus数据源即可查看预设监控视图。
本项目基于https://github.com/danielqsj/kafka_exporter/blob/master/LICENSE%E5%BC%80%E6%BA%90%E3%80%82
以下是 danielqsj/kafka-exporter 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务