JMX を使用した Kafka のモニタリングとメトリクス¶
Java Management Extensions(JMX)を使用して Confluent Platform のデプロイをモニタリングできます。
環境の構成¶
JMX で Docker コンテナーを使用するには、以下のプロパティを設定します。
java.rmi.server.hostname=<JMX_HOSTNAME>
com.sun.management.jmxremote.local.only=false
com.sun.management.jmxremote.rmi.port=<JMX_PORT>
com.sun.management.jmxremote.port=<JMX_PORT>
hostname
に関する注意:JMX クライアントは
java.rmi.server.hostname
に接続できる必要があります。ブリッジされたネットワークのデフォルトはブリッジされた IP であるため、別の Docker コンテナーからのみ接続できます。ホストネットワークの場合、これはホストのホスト名が解決される IP です。Docker コンテナーではホスト名は
hostname -i
に設定されます。コンテナーに複数のネットワークが構成されている場合、hostname -i
によってすべての IP アドレスが表示されます。デフォルトでは、最初の IP アドレス(またはネットワーク)が選択されます。
セキュリティの構成¶
JMX でセキュリティを設定するには、『Monitoring and Management Using JMX Technology』の SSL および認証についてのセクションに従ってください。
Kafka および ZooKeeper の構成¶
設定¶
Kafka および ZooKeeper の JMX モニタリングを構成するには、以下の環境変数を使用します。
KAFKA_JMX_PORT
- JMX ポート。
KAFKA_JMX_OPTS
JMX オプション。この変数を使用して、デフォルトの JMX オプションをオーバーライドします。デフォルトのオプションは以下のように設定されています。
-Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
KAFKA_JMX_HOSTNAME
- ローカルに作成されたリモートオブジェクトに関連付けられたホスト名。
JMX を有効にした Kafka および ZooKeeper の起動¶
JMX を有効にして Kafka および ZooKeeper を起動する手順は、「Confluent Platform を使用した Apache Kafka のクイックスタート(Docker)」での手順と同じですが、KAFKA_JMX_PORT
と KAFKA_JMX_HOSTNAME
を両方に設定する点が異なります。各サービスに対する Docker run
コマンドの例を以下に示します。
docker run -d \
--name=zk-jmx \
--net=host \
-e ZOOKEEPER_TICK_TIME=2000 \
-e ZOOKEEPER_CLIENT_PORT=32181 \
-e KAFKA_JMX_PORT=39999 \
confluentinc/cp-zookeeper:6.1.5
docker run -d \
--name=kafka-jmx \
--net=host \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_ZOOKEEPER_CONNECT=localhost:32181/jmx \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:39092 \
-e KAFKA_JMX_PORT=49999 \
-e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
confluentinc/cp-kafka:6.1.5
その他の Confluent Platform コンポーネントの構成¶
Kafka では、JMX の認証がデフォルトでは無効になっています。デフォルトの JMX 構成では、認証されていない JMX インターフェイスがすべてのネットワークインターフェイスにバインドされます。このデフォルトをオーバーライドするには、環境変数を使用する必要があります。
Confluent Platform コンポーネントのデフォルトの JMX オプションをオーバーライドするには、以下の環境変数を使用します。
コンポーネント | 環境変数 |
---|---|
Confluent Control Center | CONTROL_CENTER_JMX_OPTS |
REST Proxy | KAFKAREST_JMX_OPTS |
ksqlDB | KSQL_JMX_OPTS |
Rebalancer | REBALANCER_JMX_OPTS |
Schema Registry | SCHEMA_REGISTRY_JMX_OPTS |