文档首页/ MapReduce服务 MRS/ 用户指南/ MRS集群运维/ MRS集群告警处理参考/ ALM-38009 Kafka Topic过载(适用于MRS 3.1.0及之前版本)
更新时间:2025-08-09 GMT+08:00

ALM-38009 Kafka Topic过载(适用于MRS 3.1.0及之前版本)

告警解释

系统每60秒周期性检测Kafka各个Topic的过载情况,当检测到某个Topic在过载磁盘上的Partition数占比超出阈值(默认40%)时,产生该告警。

平滑次数为1,当某个Topic在过载磁盘上的Partition数占比低于阈值(默认40%)时,告警恢复。

过载磁盘定义:磁盘分区的IO使用率大于80%的磁盘认为是过载磁盘。

例如:

某TopicA的Partition分布在三个Broker上,其中两个Broker上Partition所在磁盘分区的IO使用率大于80%。

那么,在过载磁盘上的Partition占比等于2/3,大于40%,触发告警。

告警属性

告警ID

告警级别

是否自动清除

38009

重要

告警参数

参数名称

参数含义

来源

产生告警的集群名称。

服务名

产生告警的服务名称。

角色名

产生告警的角色名称。

主机名

产生告警的主机名。

主题名

产生告警的Kafka Topic。

对系统的影响

Partition所在的磁盘分区IO过于繁忙,产生告警的Kafka Topic上可能无法写入数据。

可能原因

  • Topic副本数配置过多。
  • 生产者消息批量写入磁盘的参数设置不合理。该Topic承担的业务流量过大,当前Partition的设置不合理。

处理步骤

检查Topic副本数配置。

  1. 在FusionInsight Manager首页,选择“运维 > 告警 > 告警”,单击此告警所在行的,查看定位信息中上报告警的“主机名”。
  2. 在FusionInsight Manager首页,选择“集群 > 服务 > Kafka > KafkaTopic监控”,搜索发生告警的Topic,查看副本数量。
  3. 如果副本数量值大于3,则考虑减少该Topic的复制因子(减少为3)。

    在集群客户端执行以下命令对Kafka Topic的副本进行重新规划:

    kafka-reassign-partitions.sh --zookeeper {zk_host}:{port}/kafka --reassignment-json-file {manual assignment json file path} --execute

    Kafka客户端安装与使用请参考使用Kafka客户端

    例如:

    /opt/client/Kafka/kafka/bin/kafka-reassign-partitions.sh --zookeeper 10.149.0.90:2181,10.149.0.91:2181,10.149.0.92:2181/kafka --reassignment-json-file expand-cluster-reassignment.json --execute

    在“expand-cluster-reassignment.json”文件中描述该Topic的Partition迁移到哪些Broker,json文件中的内容格式为:

    {"partitions":[{"topic": "topicName","partition": 1,"replicas": [1,2,3] }],"version":1}。

  4. 观察一段时间,看告警是否清除。

    • 是,操作结束。
    • 否,执行步骤 5

检查Topic的Partition规划设置

  1. 在“KafkaTopic监控”页面单击每一个Topic的“Topic的字节流量 > Topic输入的字节流量”,统计出“Topic输入的字节流量”值最大的Topic。查看该Topic有哪些Partition以及这些Partition所在的主机信息。
  2. 登录到步骤 5查询到的主机,执行命令查看每个磁盘的最后一个指标“%util”:

    iostat -d -x
    • 各个磁盘的“%util”指标都超出阈值(默认值为80%),则考虑对Kafka磁盘进行扩容,扩容后参考步骤 3对Topic的Partition重新规划。
    • 各个磁盘的“%util”指标差别较大,查看Kafka的磁盘分区配置信息。

      例如: ${BIGDATA_HOME}/FusionInsight_HD_*/1_14_Broker/etc/server.properties文件中的log.dirs配置值。

      执行如下命令查看命令输出的Filesystem信息:

      df -h log.dirs配置值

      执行结果如下:

    • Filesystem所在的分区与“%util”指标比较高的分区相匹配,则考虑在空闲的磁盘上规划Kafka分区,并将log.dirs设置为空闲磁盘目录,然后参考步骤 3,对Topic的Partition重新规划,保证该Topic的Partition均匀分布到各个磁盘。

  3. 观察一段时间,检查告警是否清除。

    • 是,操作结束。
    • 否,重复执行步骤 5~步骤 6三次。重复执行次数达到上限后,执行步骤 8

  4. 观察一段时间,检查告警是否清除。

    • 是,操作结束。
    • 否,执行步骤 9

收集故障信息。

  1. 在FusionInsight Manager界面,选择“运维 > 日志 > 下载”。
  2. 在“服务”中勾选待操作集群的“Kafka”。
  3. 单击右上角的设置日志收集的“开始时间”和“结束时间”分别为告警产生时间的前后10分钟,单击“下载”。
  4. 请联系运维人员,并发送已收集的故障日志信息。

告警清除

此告警修复后,系统会自动清除此告警,无需手工清除。

参考信息

无。