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 メトリクスを設定する必要があります。
手順
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...
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
リソース設定ファイルにコピーします。