首页 > 解决方案 > Kubernetes 上的 Kafka 使用 Strimzi:监控/向 prometheus 公开所有 JMX 指标

问题描述

我正在使用 Strimzi 运算符在 Kubernetes 上运行 kafka。对于监控,我使用的是 Prometheus,并按照 Strimzi 部署指南中所述的安装指南进行操作。

https://strimzi.io/docs/operators/master/deploying.html

对于 Kafka 集群部署,我使用了来自 strimzi 存储库的以下模板。https://github.com/strimzi/strimzi-kafka-operator/blob/master/examples/metrics/kafka-metrics.yaml 。要向 Prometheus 公开的指标在同一文件的配置映射中定义。

我的问题是,如果我想让Prometheus 从 Kafka 中抓取所有 JMX 指标;是否有任何现成的 JMX 配置文件可以传递给 configmap 而不是当前的。请注意,我对消费者群体指标(rebalance-latency-avg、rebalance-rate-per-hour 等)特别感兴趣。

通过 JMX/prometheus 监控 kafka 是否会对 Kafka 造成任何性能下降?

标签: kubernetesapache-kafkakafka-consumer-apistrimzi

解决方案


当您将 JMX Exporter 配置文件定义为空时,例如:

kind: ConfigMap
apiVersion: v1
metadata:
  name: kafka-metrics
  labels:
    app: strimzi
data:
  kafka-metrics-config.yml: |
    lowercaseOutputName: true

它将以原始格式导出所有指标。这使您可以看到所有这些。但是,它们看起来与您从 Strimzi 示例中获得的完全不同,因为它们没有翻译它们的规则,将某些部分提取为标签等。

因此,在大多数情况下,您需要将这些添加到规则中 => 您必须定义模式以匹配您感兴趣的指标,定义它应该是什么类型以及它应该如何转换为指标名称和标签。这可以添加到 Strimzi 示例中的现有规则中。


推荐阅读