搜索

21.4. 通过配置启用 Prometheus 指标

download PDF

要为 Prometheus 在 Apache Kafka 中启用和公开指标,请使用指标配置属性。

以下组件需要 metricsConfig 配置来公开指标:

  • Kafka
  • KafkaConnect
  • MirrorMaker
  • Sything Control
  • ZooKeeper

此配置可让 Prometheus JMX Exporter 通过 HTTP 端点公开指标。JMX 导出器 HTTP 端点的端口是 9404。Prometheus 提取此端点来收集 Kafka 指标。

您可以将 enableMetrics 属性设置为 true,以便为这些组件公开指标:

  • Kafka Bridge
  • OAuth 2.0 身份验证和授权框架
  • 用于授权的开放策略代理(OPA)

要在 Apache Kafka 的 Streams 中部署 Prometheus 指标配置,您可以使用自己的配置或 Apache Kafka 提供的 Streams 提供的示例自定义资源 配置文件

  • kafka-metrics.yaml
  • kafka-connect-metrics.yaml
  • kafka-mirror-maker-2-metrics.yaml
  • kafka-bridge-metrics.yaml
  • kafka-cruise-control-metrics.yaml
  • oauth-metrics.yaml

这些文件包含启用 Prometheus 指标所需的重新标记规则和配置。对于使用 Apache Kafka 的 Streams 尝试 Prometheus,它们是很好的起点。

此流程演示了如何在 Kafka 资源中部署 Prometheus 指标配置示例。为其他资源部署示例文件时,此过程相同。

如果要包含 Kafka Exporter 指标,请在 Kafka 资源中添加 kafkaExporter 配置。

重要

Kafka Exporter 仅提供额外的与消费者滞后相关的指标。对于常规 Kafka 指标,您必须在 Kafka 代理 中配置 Prometheus 指标。

流程

  1. 使用 Prometheus 配置部署示例自定义资源。

    例如,对于每个 Kafka 资源,您可以应用 kafka-metrics.yaml 文件。

    部署示例配置

    oc apply -f kafka-metrics.yaml

    另外,您可以将 kafka-metrics.yaml 中的示例配置复制到您自己的 Kafka 资源。

    复制示例配置

    oc edit kafka <kafka_configuration_file>

    复制 metricsConfig 属性及其引用的 ConfigMapKafka 资源。

    Kafka 的指标配置示例

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
    spec:
      kafka:
        # ...
        metricsConfig: 1
          type: jmxPrometheusExporter
          valueFrom:
            configMapKeyRef:
              name: kafka-metrics
              key: kafka-metrics-config.yml
    ---
    kind: ConfigMap 2
    apiVersion: v1
    metadata:
      name: kafka-metrics
      labels:
        app: strimzi
    data:
      kafka-metrics-config.yml: |
      # metrics configuration...

    1
    复制引用包含指标配置的 ConfigMap 的 metricsConfig 属性。
    2
    复制指定指标配置的整个 ConfigMap
  2. 要部署 Kafka Exporter,请添加 kafkaExporter 配置。

    kafkaExporter 配置仅在 Kafka 资源中指定。

    部署 Kafka Exporter 配置示例

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
    spec:
      # ...
      kafkaExporter:
        image: my-registry.io/my-org/my-exporter-cluster:latest 1
        groupRegex: ".*" 2
        topicRegex: ".*" 3
        groupExcludeRegex: "^excluded-.*" 4
        topicExcludeRegex: "^excluded-.*" 5
        resources: 6
          requests:
            cpu: 200m
            memory: 64Mi
          limits:
            cpu: 500m
            memory: 128Mi
        logging: debug 7
        enableSaramaLogging: true 8
        template: 9
          pod:
            metadata:
              labels:
                label1: value1
            imagePullSecrets:
              - name: my-docker-credentials
            securityContext:
              runAsUser: 1000001
              fsGroup: 0
            terminationGracePeriodSeconds: 120
        readinessProbe: 10
          initialDelaySeconds: 15
          timeoutSeconds: 5
        livenessProbe: 11
          initialDelaySeconds: 15
          timeoutSeconds: 5
    # ...

    1
    ProductShortName OPTION: 容器镜像配置,仅在特殊情况下推荐使用。
    2
    指定指标中包含的消费者组的正则表达式。
    3
    指定指标中包含的主题的正则表达式。
    4
    指定指标中要排除的消费者组的正则表达式。
    5
    在指标中指定要排除的主题的正则表达式。
    6
    要保留的 CPU 和内存资源。
    7
    日志记录配置,以记录给定严重性(debug、info、warn、error、fatal)或更高严重性的消息。
    8
    启用 Sarama 日志的布尔值,这是 Kafka Exporter 使用的 Go 客户端库。
    9
    自定义部署模板和 pod。
    10
    健康检查就绪度探测。
    11
    健康检查存活度探测。
注意

要使 Kafka Exporter 能够正常工作,需要使用消费者组。

为 Kafka Bridge 启用指标

要为 Kafka Bridge 公开指标,请在 KafkaBridge 资源中将 enableMetrics 属性设置为 true

Kafka Bridge 的指标配置示例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
  name: my-bridge
spec:
  # ...
  bootstrapServers: my-cluster-kafka:9092
  http:
    # ...
  enableMetrics: true
  # ...

为 OAuth 2.0 和 OPA 启用指标

要公开 OAuth 2.0 或 OPA 的指标,请在适当的自定义资源中将 enableMetrics 属性设置为 true

OAuth 2.0 指标

Kafka 资源中为 Kafka 集群授权和 Kafka 侦听器身份验证启用指标。

您还可以在其他 受支持组件 的自定义资源中启用 OAuth 2.0 身份验证的指标。

opa 指标
Kafka 集群授权启用指标与 OAuth 2.0 相同。

在以下示例中,为 OAuth 2.0 侦听器身份验证和 OAuth 2.0 (keycloak)集群授权启用指标。

为 OAuth 2.0 启用指标的集群配置示例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
  namespace: myproject
spec:
  kafka:
    # ...
    listeners:
    - name: external3
      port: 9094
      type: loadbalancer
      tls: true
      authentication:
        type: oauth
        enableMetrics: true
      configuration:
        #...
    authorization:
      type: keycloak
      enableMetrics: true
  # ...

要将 OAuth 2.0 指标与 Prometheus 搭配使用,您可以使用 oauth-metrics.yaml 文件来部署示例 Prometheus 指标配置。将 ConfigMap 配置复制 oauth-metrics.yaml 文件包含到为 OAuth 2.0 启用指标的同一 Kafka 资源配置文件。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.