更新时间:2026-11-03 GMT+08:00
ALM-38021 Kafka不可用Partition总数超过阈值
告警解释
系统每60秒周期性检测Kafka服务不可用的Partition数,当连续3次检测到该数值超出阈值时(默认阈值为0)产生该告警。
本章节仅适用于MRS 3.7.0-LTS及之后版本。
告警属性
| 告警ID | 告警级别 | 是否可自动清除 |
|---|---|---|
| 38021 | 紧急 | 是 |
告警参数
| 类别 | 参数名称 | 参数含义 |
|---|---|---|
| 定位信息 | 来源 | 产生告警的集群名称。 |
| 服务名 | 产生告警的服务名称。 | |
| 角色名 | 产生告警的角色名称。 | |
| 附加信息 | 触发条件 | 系统当前指标取值满足自定义的告警设置条件。 |
对系统的影响
Kafka存在不可用的Partition时,该Partition的数据将无法被写入和读取,导致相关业务受影响。
可能原因
- Broker节点故障或进程异常退出,导致Partition副本下线。
- Broker端JVM GC停顿过长,导致Broker心跳超时被标记为离线,且无其他可用副本。
- 磁盘空间写满或故障,导致副本数据损坏或无法访问。
- 网络分区导致Controller与Broker之间通信中断,Partition的元数据无法正常同步。
处理步骤
检查Broker实例是否故障。
- 登录MRS集群Manager页面,选择“集群 > 服务 > Kafka > 实例”,进入Kafka实例页面。
登录集群Manager具体操作,请参考访问MRS集群Manager。
- 查看是否有故障的Broker实例。
- 选择“运维 > 告警 > 告警”,查看所有告警信息中是否有步骤 2中节点主机对应的其他故障告警,根据对应的告警指导进行处理。
- 选择“集群 > 服务 > Kafka > 实例”,进入Kafka实例页面。
- 查看所有Broker实例中是否有已停止的实例。
- 勾选所有已停止的Broker实例,单击“启动实例”,等待启动完成。
- 等待5分钟,观察界面告警是否清除。
- 是,处理完毕。
- 否,执行步骤 8。
检查Broker GC情况。
- 在Manager页面,选择“运维 > 告警 > 告警”,查看是否存在“Broker进程垃圾回收(GC)时间超过阈值”告警。
- 是,参考“ALM-38005 Broker进程垃圾回收(GC)时间超过阈值”告警处理步骤进行处理。
- 否,执行步骤 10。
- 等待5分钟,观察界面告警是否清除。
是,处理完毕。
否,执行步骤 10。
检查磁盘状态。
- 选择“运维 > 告警 > 告警”,查看是否存在“慢盘故障”或“磁盘不可用”或“Kafka磁盘容量不足”告警。
- 是,参考“ALM-12033 慢盘故障”、“ALM-12063 磁盘不可用”、“ALM-38001 Kafka磁盘容量不足”告警处理步骤进行处理。
- 否,执行步骤 12。
- 等待5分钟,观察界面告警是否清除。
- 是,处理完毕。
- 否,执行步骤 12。
检查网络连通性。
- 选择“运维 > 告警 > 告警”,查看是否存在“节点间网络互通异常”告警。
- 是,参考“ALM-12089 节点间网络互通异常”告警处理步骤进行处理。
- 否,执行步骤 14。
- 等待5分钟,观察界面告警是否清除。
- 是,处理完毕。
- 否,执行步骤 14。
收集故障信息。
- 收集不可用分区与Broker信息。
- 以客户端安装用户,登录已安装Kafka客户端的节点。
- 切换到Kafka客户端安装目录,例如“/opt/hadoopclient”
cd /opt/hadoopclient
- 执行以下命令,配置环境变量。
source bigdata_env
- 执行以下命令,进行用户认证(普通模式跳过此步骤)。
kinit 组件业务用户 - 执行以下命令,切换到Kafka目录。
cd Kafka/kafka
- 使用“kafka-topics.sh”查询不可用的分区详情并记录。
bin/kafka-topics.sh --describe --bootstrap-server <Kafka集群IP:21007> --unavailable-partitions --command-config config/client.propertiesKafka集群IP及端口可参考以下操作获取:- 在Manager页面,选择“集群 > 服务 > Kafka > 实例”,查看并记录任意一个Broker角色实例的业务IP地址。
- 选择“配置 > 全部配置”,并根据集群模式获取端口号:
- 集群已启用Kerberos认证(安全模式):搜索“sasl.port”参数,查看并记录端口号,默认为21007。
- 集群未启用Kerberos认证(普通模式):搜索“port”参数,查看并记录端口号,默认为9092。
- 使用“kafka-broker-info.sh”查询当前集群的Broker信息并记录。
bin/kafka-broker-info.sh --zookeeper ZooKeeper的任意一个节点的业务IP:clientPort/kafka
- 在MRS Manager界面,选择“运维 > 日志 > 下载”。
- 在“服务”框中勾选待操作集群的“Kafka”。
- 单击右上角的时间编辑按钮,设置日志收集的“开始时间”和“结束时间”分别为告警产生时间的前后10分钟,单击“下载”。
- 请联系运维人员,并发送已收集的客户端查询结果与故障日志信息。
告警清除
此告警修复后,系统会自动清除此告警,无需手工清除。
参考信息
不涉及。