KAFKA监控方法以及核心指标

文章目录

  • [1. 监控指标采集](#1. 监控指标采集)
    • [1.1 部署kafka_exporter](#1.1 部署kafka_exporter)
    • [1.2 prometheus采集kafka_exporter的暴露指标](#1.2 prometheus采集kafka_exporter的暴露指标)
    • [1.3 promethues配置告警规则或者配置grafana大盘](#1.3 promethues配置告警规则或者配置grafana大盘)
  • [2. 核心告警指标](#2. 核心告警指标)
    • [2.1 broker核心指标](#2.1 broker核心指标)
    • [2.2 producer核心指标](#2.2 producer核心指标)
    • [2.3 consumer核心指标](#2.3 consumer核心指标)
  • [3. 参考文章](#3. 参考文章)

探讨kafka的监控数据采集方式以及需要关注的核心指标,便于日常生产进行监控和巡检。


1. 监控指标采集

监控指标的采集方式使用promethues + kafka_exporter的方式采集kafka的指标,并通过promethues协议暴露出来。本文探讨kafka的采集监控方式,以及常用核心监控告警配置。

1.1 部署kafka_exporter

kafka_exporter的 下载地址 选择合适的版本下载,并解压,使用如下方法启动。

bash 复制代码
./kafka_exporter --kafka.server=127.0.0.1:9092 --web.listen-address=":9308"

确定metrics指标暴露出来后,就可以通过prometheus配置target进行指标采集

bash 复制代码
# 通过promethues协议暴露指标
curl http://localhost:9308/metrics

1.2 prometheus采集kafka_exporter的暴露指标

配置prometheus的指标采集任务

bash 复制代码
  - job_name: kafka
    static_configs:
      - targets: ['172.19.0.2:9308','172.19.0.3:9308','172.19.0.4:9308']
        labels:
          instance: kafka

1.3 promethues配置告警规则或者配置grafana大盘

再次不进行扩展。

2. 核心告警指标

kafka的指标很多,相关的指标含义可以参考 官网文档,本文将摘选出核心的指标,作为kafka集群的核心监控并配置相关的告警。

2.1 broker核心指标

Kafka的服务端度量指标是为了监控broker,也是整个消息系统的核心。因为所有消息都通过kafka broker传递,然后被消费,所以对于broker集群上出现的问题的监控和告警就尤为重要。broker性能指标有以下三类:

  • Kafka本身的指标
  • 主机层面的指标
  • JVM垃圾回收指标

kafka层面指标

指标名称 指标说明 参考值 备注
进程 进程 进程存在 == 1
UnderReplicatedPartitions 处于复制状态的parition <= 1 在一个运行健康的集群中,处于同步状态的副本数(ISR)应该与总副本数(简称AR:Assigned Repllicas)完全相等,如果分区的副本远远落后于leader,那这个follower将被ISR池删除,随之而来的是IsrShrinksPerSec(可理解为isr的缩水情况,后面会讲)的增加。由于kafka的高可用性必须通过副本来满足,所有有必要重点关注这个指标,让它长期处于大于0的状态
ActiveControllerCount 活跃的controller数量 >=1 controller的职责是维护partition leader的列表,当遇到这个值等于0且持续了一小段时间(<1秒)的时候,必须发出明确的告警
OfflinePartitionsCount 离线的partition数量 ==0 这个指标报告了没有活跃leader的partition数,任何partition都应该有一个Leader
OfflinePartitionsCount 离线的partition数量 ==0 这个指标报告了没有活跃leader的partition数,任何partition都应该有一个Leader
UncleanLeaderElectionsPerSec 未清理领导选举/每秒 <= 1 这个指标如果存在的话很糟糕,这说明kafka集群在寻找partition leader节点上出现了故障
BytesInPerSec Kafka的吞吐量 根据机器规格调整 不同机器的规格网卡带宽吞吐有差异,根据实际情况调整,如果单个broker的吞吐过高,意味着需要进行扩容了
BytesOutPerSec Kafka的吞吐量 根据机器规格调整 不同机器的规格网卡带宽吞吐有差异,根据实际情况调整,如果单个broker的吞吐过高,意味着需要进行扩容了

机器层面指标( [跳转点: 返回producer核心指标](#跳转点: 返回producer核心指标))

指标名称 指标说明 参考值 备注
Disk usage 磁盘使用情况 <= 70%
CPU usage CPU使用情况 <= 60%
机器网卡入流量 机器网卡入流量 不同机器的规格网卡带宽吞吐有差异,根据实际情况调整,如果单个broker的吞吐过高,意味着需要进行扩容了
机器网卡出流量 机器网卡出流量 不同机器的规格网卡带宽吞吐有差异,根据实际情况调整,如果单个broker的吞吐过高,意味着需要进行扩容了

JVM指标 ( [跳转点: 返回producer核心指标](#跳转点: 返回producer核心指标))

指标名称 指标说明 参考值 备注
MemHeapUsedM/MemHeapMaxM Jvm 堆内内存使用率 <= 60%

2.2 producer核心指标

producer通常不是写入的瓶颈,监控正常的机器指标和JVM指标即可, 参考机器层面指标参考JVM指标

2.3 consumer核心指标

指标名称 指标说明 参考值 备注
kafka_consumergroup_lag 每个消费者的消息延迟 <= 500 这个监控是partition维度,该指标跟topic的数据写入有关系,需要根据实际情况调整

3. 参考文章

相关推荐
lzhlizihang1 分钟前
【Hive sql 面试题】求出各类型专利top 10申请人,以及对应的专利申请数(难)
大数据·hive·sql·面试题
Tianyanxiao5 分钟前
如何利用探商宝精准营销,抓住行业机遇——以AI技术与大数据推动企业信息精准筛选
大数据·人工智能·科技·数据分析·深度优先·零售
大数据编程之光6 分钟前
Hive 查询各类型专利 top10 申请人及专利申请数
大数据·数据仓库·hive·hadoop
GDDGHS_35 分钟前
大数据工具 flume 的安装配置与使用 (详细版)
大数据·flume
Acrelhuang2 小时前
安科瑞5G基站直流叠光监控系统-安科瑞黄安南
大数据·数据库·数据仓库·物联网
皓7412 小时前
服饰电商行业知识管理的创新实践与知识中台的重要性
大数据·人工智能·科技·数据分析·零售
Mephisto.java2 小时前
【大数据学习 | kafka高级部分】kafka的kraft集群
大数据·sql·oracle·kafka·json·hbase
Mephisto.java2 小时前
【大数据学习 | kafka高级部分】kafka的文件存储原理
大数据·sql·oracle·kafka·json
yx9o3 小时前
Kafka 源码 KRaft 模式本地运行
分布式·kafka
ycsdn103 小时前
Caused by: org.apache.flink.api.common.io.ParseException: Row too short:
大数据·flink