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