Kafka核心技术与实战
胡夕
人人贷计算平台部总监,Apache Kafka Contributor
立即订阅
8408 人已学习
课程目录
已完结 46 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 为什么要学习Kafka?
免费
Kafka入门 (5讲)
01 | 消息引擎系统ABC
02 | 一篇文章带你快速搞定Kafka术语
03 | Kafka只是消息引擎系统吗?
04 | 我应该选择哪种Kafka?
05 | 聊聊Kafka的版本号
Kafka的基本使用 (3讲)
06 | Kafka线上集群部署方案怎么做?
07 | 最最最重要的集群参数配置(上)
08 | 最最最重要的集群参数配置(下)
客户端实践及原理剖析 (14讲)
09 | 生产者消息分区机制原理剖析
10 | 生产者压缩算法面面观
11 | 无消息丢失配置怎么实现?
12 | 客户端都有哪些不常见但是很高级的功能?
13 | Java生产者是如何管理TCP连接的?
14 | 幂等生产者和事务生产者是一回事吗?
15 | 消费者组到底是什么?
16 | 揭开神秘的“位移主题”面纱
17 | 消费者组重平衡能避免吗?
18 | Kafka中位移提交那些事儿
19 | CommitFailedException异常怎么处理?
20 | 多线程开发消费者实例
21 | Java 消费者是如何管理TCP连接的?
22 | 消费者组消费进度监控都怎么实现?
深入Kafka内核 (5讲)
23 | Kafka副本机制详解
24 | 请求是怎么被处理的?
25 | 消费者组重平衡全流程解析
26 | 你一定不能错过的Kafka控制器
27 | 关于高水位和Leader Epoch的讨论
管理与监控 (12讲)
28 | 主题管理知多少?
29 | Kafka动态配置了解下?
30 | 怎么重设消费者组位移?
31 | 常见工具脚本大汇总
32 | KafkaAdminClient:Kafka的运维利器
33 | Kafka认证机制用哪家?
34 | 云环境下的授权该怎么做?
35 | 跨集群备份解决方案MirrorMaker
36 | 你应该怎么监控Kafka?
37 | 主流的Kafka监控框架
38 | 调优Kafka,你做到了吗?
39 | 从0搭建基于Kafka的企业级实时日志流处理平台
高级Kafka应用之流处理 (3讲)
40 | Kafka Streams与其他流处理平台的差异在哪里?
41 | Kafka Streams DSL开发实例
42 | Kafka Streams在金融领域的应用
结束语 (1讲)
结束语 | 以梦为马,莫负韶华!
特别放送 (2讲)
加餐 | 搭建开发环境、阅读源码方法、经典学习资料大揭秘
用户故事 | 黄云:行百里者半九十
Kafka核心技术与实战
登录|注册

36 | 你应该怎么监控Kafka?

胡夕 2019-08-24
你好,我是胡夕。今天我要和你分享的主题是:如何监控 Kafka。
监控 Kafka,历来都是个老大难的问题。无论是在我维护的微信公众号,还是 Kafka QQ 群里面,大家问得最多的问题,一定是 Kafka 的监控。大家提问的内容看似五花八门,但真正想了解的,其实都是监控这点事,也就是我应该监控什么,怎么监控。那么今天,我们就来详细聊聊这件事。
我个人认为,和头疼医头、脚疼医脚的问题类似,在监控 Kafka 时,如果我们只监控 Broker 的话,就难免以偏概全。单个 Broker 启动的进程虽然属于 Kafka 应用,但它也是一个普通的 Java 进程,更是一个操作系统进程。因此,我觉得有必要从 Kafka 主机、JVM 和 Kafka 集群本身这三个维度进行监控。

主机监控

主机级别的监控,往往是揭示线上问题的第一步。所谓主机监控,指的是监控 Kafka 集群 Broker 所在的节点机器的性能。通常来说,一台主机上运行着各种各样的应用进程,这些进程共同使用主机上的所有硬件资源,比如 CPU、内存或磁盘等。
常见的主机监控指标包括但不限于以下几种:
机器负载(Load)
CPU 使用率
内存使用率,包括空闲内存(Free Memory)和已使用内存(Used Memory)
磁盘 I/O 使用率,包括读使用率和写使用率
网络 I/O 使用率
TCP 连接数
打开文件数
inode 使用情况
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Kafka核心技术与实战》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(16)

  • 蒙开强
    老师,你好,你说的这些监控项,可以用监控工具演练一下么,不然只知道却没看到落地实现。
    2019-08-26
    6
  • r
    老师总结的真好。我有个疑问,没找到相关资料做支撑。就是一套kafka集群,最多能容纳多少个topic-partition,这个是集群规模有关吗,

    作者回复: 根据社区的报告,Kafka 1.1.0之后可以支持单集群20万个分区。和集群规模不能说没有关系,但其实和集群总的物理硬件资源有很大关系。

    2019-08-24
    3
  • 我已经设置了昵称
    要怎么看到JMX指标呢,能否讲下

    作者回复: 无论是Broker端还是Clients端启动前要先设置JMX_PORT,然后使用任何能够连接JMX MBean Server的工具或框架连接(如JConsole)就能看到了

    2019-09-04
    2
  • 追光者
    老师,您好,想请教一个关于  Metricbeat 采集 kafka 数据的问题:
    配置好 modules.d/kafka.yml 启动 metricbeat 采集不到数据,提示信息:
    2019-08-29T16:13:33.827+0800 INFO kafka/log.go:53 kafka message: Successful SASL handshake
    2019-08-29T16:13:33.828+0800 INFO kafka/log.go:53 SASL authentication successful with broker 10.162.7.2:9092:4 - [0 0 0 0]
    2019-08-29T16:13:33.828+0800 INFO kafka/log.go:53 Connected to broker at 10.162.7.2:9092 (unregistered)
    2019-08-29T16:13:33.832+0800 INFO kafka/log.go:53 Closed connection to broker 10.162.7.2:9092
    system 的可以采集到,请问这是什么原因呀
    配置文件:
    - module: kafka
    metricsets:
    - partition
    - consumergroup
    period: 10s
    hosts: ["10.162.3.90:9092"]
    client_id: xl
    retries: 3
    backoff: 250ms
    topics: []
    username: "admin"
    password: "admin"

    作者回复: 这里都是IINFO日志看不出有什么问题,有其他日志吗?

    2019-08-30
    1
    1
  • wxr
    怎样比较好的监控消费延时呢

    作者回复: 这个取决于你对消费延时的定义。从Kafka的角度,当poll方法返回后,消息已经算是被消费了,但通常我们获取到消息后还要对消息进行处理,如果你认为处理完成后才算是消费就要加上这部分的时间,但处理逻辑、工具、方法都不尽相同,因此你需要自己来监控消息处理的总时间。

    2019-08-24
    4
    1
  • 外星人
    你好,单个topic可以支撑的最多partition个数多少啊?我们生产上有个topic超级大,占了整个集群的一半以上的流量,这种情况是需要拆分吗?

    作者回复: 如果性能okay而仅仅是你觉得不太好,那么我认为先不用拆分。单个topic最多能有多少partition没有定数,主要还是看底层物理资源。当然分区数过多,使得broker上平均分区数增加的确会降低Kafka的TPS。

    2019-08-24
    1
  • 风中花
    老师你的公众号怎么找到呢

    作者回复: 大数据Kafka技术分享

    2019-11-30
  • frenco
    老师好, 请教个问题: 按您之前有个推荐的配置kafka内存的说法,一般堆内存配置6G就好了。 那新生代和老年代默认2:1 分配。 如果只需要6G的内存, 我们生产的机器一般都是64G以上内存, 那机器是不是有很大浪费呢。

    作者回复: 那就单台多broker吧,不过网卡最好万兆

    2019-11-08
  • 皇甫
    老师,您好,最近遇到一个实践问题,通过调用kafka manage提供的api获取topic的流入消息数量,有时候有延时,在生产者流量激增的情况下,api不能及时返回消息流入数量,想问下这是什么原因,有啥解决办法吗?谢谢

    作者回复: 不太清楚kafka manager API是怎么实现的。你可以用下jmxtool工具去实时监控下Kafka提供的JMX,看看是否有延迟呢?

    2019-11-04
  • godtrue
    感觉离开平台自己真的什么都不是,公司内部的监控挺全的,单机的CPU/硬盘/内存/网络/jvm等都有,也有针对方法级别的性能/可用率/调用次数,针对MQ有流入/流出/积压等,这里的每个监控工具都有专门的团队来负责,分工比较细,现在想一想业务开发,如果对业务不精通真是没有什么存在感和价值的。
    感觉监控最大的痛点是怎么获取到对应的监控信息,只要能获取监控信息,剩下的就是怎么聚合和汇总展示的问题了。
    2019-09-24
  • Geek_72a3d3
    “同时,Load 值一直在增加,也说明这台主机上的负载越来越大。”
    老师,您好,Load值好像是越来越小。??

    作者回复: 3个值的排序是过去1分钟,5分钟和15分钟,因此表明load越来越大

    2019-09-17
    1
  • given
    请教下老师,我们最近遇到一个监控问题,监控各个topic的消息堆积,发现如果业务方由于服务下线,不使用某个consume group了,结果这个group的消息堆积会一直增加,运维就会收到监控告警,但是运维并不好判断哪个group已经不使用了,这个能有什么自动化的手段吗

    作者回复: 如果group不使用了,它的状态就是nonactive了,一段时间之后Kafka会自动删除的它数据。如果判断状态的话,新一点版本的Kafka可以使用kafka-consumer-groups --describe --group *** 来查看group状态。

    2019-08-29
  • 13761642169
    确实很经典
    2019-08-26
  • ykkk88
    有什么好的开源的监控工具么

    作者回复: 我觉得Kafka Manager就挺不错的

    2019-08-25
  • 丰富
    请问老师,kafka支持snmp吗?

    作者回复: 不确定您指的支持是什么意思。Kafka有开源的Connect组件接收SNMP traps,但如果是指Kafka的请求协议的话,那么Kafka是自己设计的一套二进制协议,底层用TCP。没有用到SNMP

    2019-08-24
    1
  • 许童童
    老师总结得很好,跟着老师一起精进。
    2019-08-24
收起评论
16
返回
顶部