如何监控 AWS MSK 集群中 Kafka 代理的磁盘 space 使用情况

How to monitor disk space usage for Kafka Brokers in AWS MSK cluster

我们需要监控 AWS MSK 集群中 Kafka 代理 运行 的磁盘 space 使用情况。

Kafka 发出了多个指标,可用于监控各个方面。但是我找不到任何特定的指标来监控每个代理的“磁盘使用情况”。

尽管这取决于消息和日志保留策略以及各种主题中新事件的发生率,但我们如何预测我们的代理是否会在接下来的 1 天内(或我们想要的任何持续时间)耗尽磁盘安全阈值)。

如果我们可以监控每分钟(或每小时)事件负载和事件的平均大小,它可以帮助进行此计算。我指的是可用指标的 Apache Kafka 文档,但我也找不到它。

avg(rate(kafka_server_BrokerTopicMetrics_FifteenMinuteRate{ name="BytesInPerSec"}[1h]))/avg(rate(kafka_server_BrokerTopicMetrics_FifteenMinuteRate{ name="BytesOutPerSec"}[1h]))

在 PQL 以上尝试过。如果有人可以建议 ByteIn/ByteOut 的健康范围,可以放心使用。

非常感谢所有指点。

可以直接使用节点文件系统的可用指标。 Kafka 不会为此公开任何特定指标。所以我重新使用了以下用于 eks 集群的指标:

node_filesystem_free_bytes / node_filesystem_size_bytes < 0.2

我们对 EKS 集群节点文件系统监控使用了类似的指标。这具有相同的目的,并给出了 MSK 集群中任何 kafka 代理上的可用磁盘 space 的概念(只需在每个指标中添加过滤器)

MSK 使用两种方式公开指标。

两者都支持您正在寻找的指标。

现在 MSK 中的磁盘使用情况有适当的第一个 class CloudWatch 指标。通常您会希望使用 KafkaDataLogsDiskUsed 并按集群名称和代理 ID 进行过滤。有关详细信息,请参阅 https://docs.aws.amazon.com/msk/latest/developerguide/metrics-details.html

如果您使用的是 Datadog,则此指标公开为 aws.kafka.kafka_data_logs_disk_used