跳至内容

为什么我的 Amazon MSK 集群会进入 HEALING(正在修复)状态?

2 分钟阅读
0

我想对处于 HEALING(正在修复)状态的 Amazon Managed Streaming for Apache Kafka (Amazon MSK) 集群进行故障排除。

解决方法

当服务运行内部操作以解决问题时,您的 Amazon MSK 集群会进入 HEALING(正在修复)状态。例如,当您的代理无响应时,Amazon MSK 会运行内部操作来修复无响应的代理。

即使集群处于 HEALING(正在修复)状态,您仍然可以继续使用该集群进行数据生产和使用。但是,在集群恢复为 ACTIVE(活动)状态之前,您无法在集群上执行 Amazon MSK API 或 AWS 命令行界面 (AWS CLI) 更新操作。

您可以使用适用于 Amazon MSK 的 Amazon CloudWatch 指标来查看集群处于 HEALING(正在修复)状态的原因。

完成以下步骤:

  1. 打开 Amazon CloudWatch 控制台
  2. 在导航窗格中,选择 Metrics(指标),然后选择 All metrics(所有指标)。
  3. Browse(浏览)选项卡中,选择 AWS/Kafka
  4. Metrics(指标)下,选择 Cluster Name(集群名称)。
  5. 选择要监控的集群。
    **注意:**如果您看到 ActiveControllerCountOfflinePartitionsCount 指标出现峰值,则表明一个或多个代理运行状况不正常。运行状况不正常的代理可能会导致您的集群进入 HEALING(正在修复)状态。
  6. 要检查代理级别的指标,请在 Metrics(指标)下选择 Broker ID(代理 ID)、Cluster Name(集群名称)。
  7. 从列表中选择包含集群名称以及指标 CpuUserCpuSystem 的条目。
  8. 检查所有条目的 CpuUserCpuSystem 值之和是否达到集群的平均值 60% 或以上。如果高于平均值 60%,则高 CPU 利用率可能会导致代理进入 HEALING(正在修复)状态。有关详细信息,请参阅监控 CPU 使用率

Amazon MSK 集群也可能会因以下原因之一进入 HEALING(正在修复)状态:

  • 由于硬件故障,Amazon MSK 必须更换节点或 Amazon Elastic Block Store (Amazon EBS) 卷。
  • 节点不符合代理的 Amazon MSK 性能 SLA,为了提高性能,Amazon MSK 必须更换该节点。

Amazon MSK 是一项完全托管的服务,因此代理具备自我管理工作流,可对自身执行纠正操作。例如,当代理中的 Amazon EBS 卷运行状况不正常时,Amazon MSK 会观察该卷的状态一段时间。如果在此期间卷恢复正常运行状态,则 AWS MSK 不执行任何操作。如果这段时间后卷仍然无法正常运行,则 Amazon MSK 会自动更换此卷。当 Amazon MSK 执行这些操作时,集群将进入 HEALING(正在修复)状态。但是,只要您遵循最佳实践,仍可以使用 Amazon MSK 集群。

您的 Amazon MSK 集群处于永久性 HEALING(正在修复)状态

集群上的工作负载过高

如果集群上的工作负载过高且 AWS MSK 不断更换代理,您的集群可能会进入永久性 HEALING(正在修复)状态。为避免集群上出现高工作负载,请勿使用 t3.small 实例来托管生产集群。如果您使用 m5 实例,请确保为集群选择正确的大小。要根据您的工作负载确定集群的正确大小,请监控您的 CPU 使用率、分区数量或吞吐量。

此外,请确保每个代理的分区数均不超过建议值

自动扩缩组无法启动新实例

如果存在内部问题(例如缺少依赖项),自动扩缩组将无法启动新实例,且您的集群将进入永久性 HEALING(正在修复)状态。

例如,您无法再访问您在集群创建期间指定的 AWS Key Management Service (AWS KMS) 密钥。

内部事件影响了 EC2 实例的可用性

您的集群也可能会因以下原因之一进入永久性 HEALING(正在修复)状态:

  • 内部事件影响了底层 Amazon Elastic Compute Cloud (Amazon EC2) 实例的可用性。
  • 内部事件导致可用区或 AWS 区域中出现 Amazon EBS 延迟。

如果您的集群处于永久性 HEALING(正在修复)状态,但这不是高工作负载导致的,请联系 AWS Support

相关信息

了解 MSK 预置集群状态

欢迎使用《Amazon MSK 开发人员指南》

监控 Amazon MSK 预置集群

Apache Kafka 客户端的最佳实践

AWS 官方已更新 8 个月前