场景目标
建立覆盖全部计划 broker 和 controller 的看板与规则;在测试对象上验证复制、控制面和消费积压信号,记录告警延迟及采集开销,并确认仅授权采集端能够访问指标端口。
监控与可观测 · 进阶
围绕 Kafka broker、KRaft 控制面与消费积压搭建受限指标采集,形成分级告警和可复核的业务基线。
建立覆盖全部计划 broker 和 controller 的看板与规则;在测试对象上验证复制、控制面和消费积压信号,记录告警延迟及采集开销,并确认仅授权采集端能够访问指标端口。
参考 Kafka 4.1 KRaft、与目标 JVM 匹配的 JMX Exporter 及现有 Prometheus/Grafana;其他版本先核对命令和 MBean。需要只读 Kafka 描述权限、受控主机发布权限、监控配置权限和获准测试主题/消费组。每台 JVM 预留采集 CPU/内存,Prometheus 按实际时间序列、间隔和保留周期核算容量。安排 150 分钟配置与试点窗口;Java agent 首次挂载通常涉及进程重启,滚动发布须另行覆盖副本和 controller 多数检查,完整业务基线至少观察一个代表性周期。保留启动参数和监控配置的前一版本。
将 broker 数据面、KRaft 控制面和消费组积压分层取证,经受限 JMX 指标链路形成看板;独立查询补齐积压来源与监控盲区。
点击组件,在图下方查看职责;连线编号对应流向解读。小屏可横向滚动,或直接展开文字说明。
表达 KRaft 对 broker 的控制关系,不是业务消息传输路径。
从 broker 进程读取经筛选的 JMX 指标。
图中合并表达各进程的 agent,不表示跨进程共享一个 Java agent。
Prometheus 主动向受限端点发起抓取,exporter 返回指标;箭头表示指标响应方向。
看板查询已验证规则与指标,保留实例和角色标签。
通过受限消费组查询取得指定对象的状态,不重置 offset。
人工对照或未来经验证采集均需说明来源,本图不假设自动接入。
由值班人结合测试时间线核验告警触发和恢复,不以看板存在代表通知已送达。
需要重启挂载 agent 时遵守滚动窗口、ISR 和 controller 多数约束,不并行重启整个集群。
broker JMX、客户端指标与消费组查询覆盖范围不同;未知位点或缺失采集不能填成零。
只允许批准来源,按需要启用认证与加密;不把远程 JMX 默认配置当成生产安全配置。
图解是本站基于官方资料整理的逻辑参考;实施前仍需核对实际部署版本、组件支持范围与变更审批。
以 Kafka 4.1 KRaft 集群为参考,JMX Exporter Java agent 暴露 broker 与 controller 指标,Prometheus 采集并执行规则,Grafana 展示复制、吞吐、请求与控制面状态。消费组积压需从有授权的消费组查询或经过验证的独立采集链路补充,不能假定 broker JMX 自动包含所有消费组积压。
该流程尚需在目标环境验证,不覆盖 ZooKeeper 向 KRaft 的迁移,也不在部署监控时改变分区数或消息保留策略。指标名与 MBean 会随版本、角色和 exporter 映射变化,不能直接照搬其他版本看板。远程 JMX 默认安全配置不能当作生产配置;优先在进程内采集,HTTP 指标端口也须限制来源并按需加密认证。
全部计划 broker/controller 端点持续采集,控制面与副本异常可定位,测试消费组积压可独立核对。测试规则能触发和恢复通知,采集资源增量在约定预算内,且未经授权的网络不能读取指标端点。
登记集群 ID、Kafka 与 JVM 版本、broker/controller 角色、监听地址和测试对象,明确独立或混合角色部署。使用仅含必要权限的客户端配置读取元数据 quorum 状态,文件路径替换为已批准配置且不输出凭据。记录 leader、voter 集合和当前滞后,再对照资产清单确认采集范围,不将 broker 数量当作控制面成员数量。
bin/kafka-metadata-quorum.sh --bootstrap-server kafka.example.internal:9092 --command-config /secure/kafka-readonly.properties describe --status角色和成员清单能对应到真实集群,quorum 状态查询成功且没有暴露凭据。控制面 leader、voter 及基线滞后均有记录,未知角色或异常成员已有负责人处理,试点节点选择有明确依据。
只读盘点不改变 Kafka 状态。若凭据权限、版本或成员异常,暂停 exporter 发布并修正清单;保留现有监控,不能通过临时授予管理权限或调整 controller 成员来完成本次监控接入。
使用同一只读身份描述批准的主题和消费组,记录副本、ISR、分区分布及可计算的积压。对刚创建、无已提交 offset 或持续变动的消费组说明读数限制,避免把未知状态标为零积压。示例名称需替换为授权的测试对象;生产大集群采用明确对象范围和合理频率,避免高频全量描述引入控制面负载。
bin/kafka-consumer-groups.sh --bootstrap-server kafka.example.internal:9092 --command-config /secure/kafka-readonly.properties --describe --group approved-test-group关键主题副本与 ISR 有基线,测试消费组分区 offset 与积压可解释。查询权限仅覆盖批准对象,异常或缺失值不会被当作正常值;业务负责人已给出积压增长和消费停滞的初始判断阈值。
本步骤不更改主题或消费位点。若查询明显影响集群则降低频率、缩小范围并记录限制;发现既有复制异常时先处理运行问题,不能重置消费位点或删建主题来获得好看的监控基线。
选择非关键 broker 验证 JMX Exporter Java agent 与 JVM 的兼容性,筛选需要的 MBean 并保存原启动参数。先确定指标端口绑定地址、防火墙来源和 TLS/认证方式,禁止将未认证端口暴露到公共网络;已有远程 JMX 也需独立加固。若挂载 agent 需重启,按滚动窗口逐节点处理,重启前确认 ISR 与 controller 多数仍满足要求。
试点进程正常启动且业务请求无明显退化,授权采集端能读取指标,未授权来源被拒绝。CPU、堆内存和请求时延增量在预算内,控制面多数和分区 ISR 未因监控接入而持续下降。
若 JVM 启动异常或采集超预算,恢复保存的原启动参数并按同一滚动约束重启试点节点,关闭新增指标端口。等待副本和控制面状态恢复到基线后再继续,不能并行重启剩余节点尝试碰运气。
将验证后的端点分批纳入 Prometheus,为集群、角色和实例设置稳定标签,核对 exporter 输出与规则使用的指标名。限制主题、客户端和其他高基数字段,按实际活跃时间序列测算存储及保留预算。为抓取失败、过慢和缺失指标分别设计检查,避免采集端点可达但关键指标未暴露时仍显示集群正常。
计划端点持续抓取成功,关键指标有更新且标签能区分角色。活跃序列数、抓取耗时和存储增长在预算内,缺失指标检查可发现规则映射错误;新增采集不造成现有监控任务明显延迟。
时间序列或抓取开销超出预算时撤回本批采集配置,恢复此前的指标筛选与频率。保留试点数据用于比较,不立即清空整个时序库;继续使用已有监控,并调整范围后重新开展小批量验证。
将吞吐与请求时延、离线分区及副本不足、磁盘与 JVM、KRaft leader 和元数据复制状态分开展示。消费积压接入独立且有授权的来源,并对照只读查询抽样核验。告警同时考虑持续时间、业务时段和恢复条件,附上对象、影响与定位入口;为数据缺失建立单独提示,不让空白图表被误认为无故障。
值班人员能从告警定位到集群、角色及受影响对象,看板值与原始查询相符。每条规则有阈值依据、持续窗口和负责人,消费积压来源清楚,缺失值与正常零值在页面上可以区分。
如果规则映射或阈值造成误报,停用对应的新规则并恢复已验证规则版本,保留已有通知链路。修正看板时不隐藏真实异常,将未能可靠解释的指标标注为待验证并补齐来源核对。
在批准的测试主题和消费组中产生可控积压并恢复消费,核对查询、采集、看板与通知的时间线。使用规则测试或隔离的测试信号检查复制和控制面告警,避免为验证监控直接中断生产 quorum。记录通知延迟、聚合效果和恢复提示,由值班人员依据告警链接完成一次定位,确认规则不是只有创建成功的记录。
测试积压与恢复可在各层一致观察,通知送达正确接收人且恢复信息完整。规则测试覆盖复制和控制面条件,记录能说明哪些项目使用模拟信号,未执行的真实故障演练不标记为已完成。
测试影响超过预期时立即停止新增测试负载,恢复测试消费并等待积压消退;不要重置生产 offset 作为回退。撤回本次错误规则或通知配置,保留时间线和测试记录,修正后再验证闭环。
依据试点结果逐批覆盖其余 broker 与 controller,每批确认采集负载、ISR 和 quorum 状态后再推进。观察一个代表性业务周期,修正阈值并记录容量增长,将证书更新、exporter 版本、指标映射和看板负责人纳入维护清单。交接时明确消费组监测范围及盲区,保留尚未验证的故障项,安排后续验证窗口。
全部计划端点覆盖完成,指标访问限制仍有效,业务周期内采集和存储开销符合预算。值班清单包含维护负责人、规则版本、凭据轮换及恢复入口,剩余监控盲区有明确记录和跟进期限。
扩展期间出现异常就停止下一批,按保存的配置逐批撤回受影响新增接入,保持已验证节点的监控。若业务观察未通过则延后验收,恢复稳定规则并记录缺口,不能用覆盖数量替代质量确认。