第19章 JMX を使用したクラスターの監視
メトリックを収集することは、Kafka デプロイメントの健全性とパフォーマンスを理解するために重要です。メトリックを監視することで、問題が重大になる前に積極的に特定し、リソースの割り当てとキャパシティープランニングについて情報に基づいた意思決定を行うことができます。メトリックがないと、Kafka デプロイメントの動作の可視性が制限される可能性があります。これによりトラブルシューティングがより困難になり、時間がかかる可能性があります。メトリックをセットアップすると、長期的には時間とリソースを節約でき、Kafka デプロイメントの信頼性を確保するのに役立ちます。
Kafka コンポーネントは、Java Management Extensions (JMX) を使用して、メトリクスにより管理情報を共有します。これらのメトリクスは、Kafka クラスターのパフォーマンスと全体的な健全性を監視するために重要です。他の多くの Java アプリケーションと同様に、Kafka は管理 Bean (MBean) を採用して、監視ツールやダッシュボードにメトリクスデータを提供します。JMX は JVM レベルで動作し、外部ツールが Kafka コンポーネントに接続して管理情報を取得できるようにします。通常、JVM に接続するには、デフォルトで同じマシンかつ同じユーザー権限でこれらのツールを実行する必要があります。
19.1. JMX エージェントの有効化
JVM システムプロパティーを使用して、Kafka コンポーネントの JMX 監視を有効にします。KAFKA_JMX_OPTS
環境変数を使用して、JMX モニタリングを有効にするために必要な JMX システムプロパティーを設定します。Kafka コンポーネントを実行するスクリプトは、これらのプロパティーを使用します。
手順
JMX モニタリングを有効にするために、
KAFKA_JMX_OPTS
環境変数に JMX プロパティーを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow export KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=<port> -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
export KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=<port> -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
<port> を、Kafka コンポーネントが JMX 接続をリッスンするポートの名前に置き換えます。
org.apache.kafka.common.metrics.JmxReporter
をserver.properties
ファイルのmetric.reporters
に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow metric.reporters=org.apache.kafka.common.metrics.JmxReporter
metric.reporters=org.apache.kafka.common.metrics.JmxReporter
-
ブローカーの場合は
bin/kafka-server-start.sh
、Kafka Connect の場合はbin/connect-distributed.sh
など、適切なスクリプトを使用して Kafka コンポーネントを起動します。
リモート JMX 接続を保護するために認証と SSL を設定することが推奨されます。これを行うために必要なシステムプロパティーの詳細は、Oracle のドキュメント を参照してください。