21.4. 設定による Prometheus メトリクスの有効化


Streams for Apache Kafka で Prometheus 用にメトリクスを有効にして公開するには、メトリクス設定プロパティーを使用します。

次のコンポーネントでは、メトリクスを公開するために metricsConfig 設定が必要です。

  • Kafka
  • KafkaConnect
  • MirrorMaker
  • Cruise Control
  • ZooKeeper

この設定により、Prometheus JMX Exporter は HTTP エンドポイント経由でメトリクスを公開できます。JMX エクスポーター HTTP エンドポイントのポートは 9404 です。Prometheus はこのエンドポイントをスクレープして Kafka メトリクスを収集します。

これらのコンポーネントのメトリクスを公開するには、enableMetrics プロパティーを true に設定します。

  • Kafka Bridge
  • OAuth 2.0 認証および認可フレームワーク
  • 認可のための Open Policy Agent (OPA)

Streams for Apache Kafka に Prometheus メトリクス設定をデプロイするには、独自の設定を使用するか、Streams for Apache Kafka に付属する サンプルのカスタムリソース設定ファイル を使用できます。

  • 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 メトリックを有効にするために必要な再ラベル付けルールと設定が含まれています。これらは、Streams for Apache Kafka で Prometheus を試す際の出発点として便利です。

この手順では、Prometheus メトリクス設定の例を Kafka リソースにデプロイする方法を示します。このプロセスは、他のリソースのサンプルファイルをデプロイする場合と同じです。

Kafka Exporter メトリクスを含める場合は、kafkaExporter 設定を Kafka リソースに追加します。

重要

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 プロパティーと、Kafka リソースを参照する ConfigMap をコピーします。

    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
    高度なオプション: コンテナーイメージの設定。特別な状況でのみ推奨されます。
    2
    メトリクスに含まれるコンシューマーグループを指定する正規表現。
    3
    メトリクスに含まれるトピックを指定する正規表現。
    4
    メトリクスから除外するコンシューマーグループを指定する正規表現。
    5
    メトリクスから除外するトピックを指定する正規表現。
    6
    予約する CPU およびメモリーリソース。
    7
    指定の重大度 (debug、info、warn、error、fatal) 以上でメッセージをログに記録するためのログ設定。
    8
    Sarama ロギングを有効にするブール値 (Kafka Exporter によって使用される Go クライアントライブラリー)。
    9
    デプロイメントテンプレートおよび Pod のカスタマイズ。
    10
    ヘルスチェックの readiness プローブ。
    11
    ヘルスチェックの liveness プローブ。
注記

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 メトリクス
OAuth 2.0 の場合と同じ方法で、Kafka リソースに対する Kafka クラスター認可のメトリックを有効にします。

次の例では、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
  # ...

Prometheus で OAuth 2.0 メトリクスを使用するには、oauth-metrics.yaml ファイルを使用して Prometheus メトリクス設定の例をデプロイします。oauth-metrics.yaml ファイルに含まれる ConfigMap 設定を、OAUth 2.0 のメトリクスを有効にしたのと同じ Kafka リソース設定ファイルにコピーします。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.