运维监控系统实战笔记
秦晓辉
快猫星云联合创始人,Open-Falcon、Nightingale、Categraf 核心研发
9147 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 25 讲
运维监控系统实战笔记
15
15
1.0x
00:00/00:00
登录|注册

15|组件监控:Kafka的关键指标及采集方法有哪些?

你好,我是秦晓辉。
前面两讲我们介绍了 MySQL 和 Redis 的监控,核心原理就是连到实例上执行特定语句命令拉取数据,类似的还有 MongoDB,这算是一类监控场景。这一讲我们介绍现代分布式系统中非常常用的组件——Kafka,同时引出 JMX 监控场景,丰富你的数据采集工具箱。
要做好 Kafka 的监控,首先要了解 Kafka 的基础概念,比如 Topic(主题)、Partition(分区)、Replica(副本)、AR(Assigned Replicas)、ISR(In-Sync Replicas)、OSR(Out-of-Sync Replicas)、HW(High Watermark)、LEO(Log End Offset)等等。其次是要了解 Kafka 的架构,通过架构才能知道要重点监控哪些组件,下面我们就先来看一下 Kafka 的架构图。

Kafka 架构

图片来自网络
上面绿色部分 PRODUCER(生产者)和下面紫色部分 CONSUMER(消费者)是业务程序,通常由研发人员埋点解决监控问题,如果是 Java 客户端也会暴露 JMX 指标。组件运维监控层面着重关注蓝色部分的 BROKER(Kafka 节点)和红色部分的 ZOOKEEPER。
ZooKeeper 也是 Java 语言写的,监控相对简单,可以复用下面介绍的 JMX 监控方式,另外 ZooKeeper 支持 mntr 四字命令,可以获取 ZooKeeper 内部健康状况。新版 ZooKeeper 连四字命令都不需要了,直接内置暴露了 Prometheus 协议的 metrics 接口,直接抓取即可。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了Kafka监控的重要性以及相关的关键指标和采集方法。首先,文章详细介绍了Kafka的架构和监控重点,包括Producer、Consumer、Broker和ZooKeeper。其次,文章介绍了JMX的概念和Kafka如何开启JMX端口,以及如何为Kafka引入Jolokia支持。文章还提供了Kafka开启Jolokia的具体步骤,并验证了Jolokia是否正常工作。此外,文章还介绍了JVM和Kafka的相关指标的采集规则和重点关注的指标,包括GC情况、内存情况、活跃控制器数量、非同步分区数量等。最后,文章强调了监控系统的重要性,并提供了Categraf的使用方法和相关指标的监控建议。 文章还详细介绍了Lag监控的重要性以及如何监控消费者滞后情况。通过对Lag数据的监控,读者可以及时发现消费者可能遇到的问题,保证监控数据的即时性。此外,文章还介绍了Categraf中如何配置Kafka的Lag监控,以及如何预估队列里的消费时长,从而及时发现问题。 总的来说,本文通过介绍Kafka的监控原理和具体操作,为读者提供了丰富的数据采集工具箱,有助于读者更好地了解和监控Kafka系统。文章内容丰富,涵盖了Kafka监控的各个方面,对于需要深入了解Kafka监控的读者来说,是一份非常有价值的资料。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《运维监控系统实战笔记》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • 龙渊秦五
    置顶
    关于 jmx_exporter 的描述有误,特做勘误,具体测试过程如下:https://mp.weixin.qq.com/s/_RLYGuGdz-gvuqZfg1_rFg 供各位小伙伴参考
    2023-02-10归属地:北京
  • peter
    请教老师几个问题: Q1:流程理解是否对? A categraf部署在kafka上,采集指标数据,然后发送给jolokia,jolokia将数据转换为HTTP协议后发送到监控系统。B categraf和jolokia都位于kafka端,监控系统类似于server端。 这样理解对吗? Q2:怎么知道消费流量? BytesOutPerSec除了包含普通消费者的消费流量,也包含了副本同步流量,那么怎么知道普通消费者的消费流量? Q3:关键指标的仪表盘是Prometheus的吗?

    作者回复: 1,jolokia或者jmx_exporter都是javaagent,注入到kafka的jvm里运行的,jolokia暴露http接口,categraf从这个http接口抓数据,然后上报给监控服务端 2,理论上,进来多少流量,就得同步多少流量给副本,如果只有一个副本,BytesOutPerSec - BytesInPerSec*1 就是业务消费流量,如果有两个副本,BytesOutPerSec - BytesInPerSec*2 就是业务消费流量 3,是夜莺的,不过也是基于PromQL的,可以手工转成Grafana的大盘。Prometheus自身是没有大盘的

    2023-02-10归属地:北京
    1
  • Geek_f31e99
    请问老师! kafka_consumer_lag_millis这个报警值,设置多大比较合适!

    作者回复: 可以先设置为5min,然后慢慢调整为更合理的值

    2023-02-14归属地:上海
  • 冷如冰
    为什么全是语音。。。没视频?

    编辑回复: 因为这不是视频课呀宝子,这是专栏课,是图文+音频形式的哦~

    2023-02-12归属地:广东
  • StackOverflow
    如果是k8s集群部署的 kafka,是不是使能 metrics,然后监控相应指标?
    2023-02-16归属地:上海
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部