10.3. Kafka Connect と MirrorMaker 2 のログレベルを動的に変更する
再起動することなく、実行時に Kafka Connect ワーカーまたは MirrorMaker 2 コネクターのログレベルを動的に変更します。
Kafka Connect API を使用して、ワーカーまたはコネクターロガーのログレベルを一時的に変更します。Kafka Connect API は、ログレベルを取得または変更するための admin/loggers
エンドポイントを提供します。API を使用してログレベルを変更しても、connect-log4j.properties
設定ファイル内のロガー設定は変更されません。必要に応じて、設定ファイル内のログレベルを永続的に変更できます。
MirrorMaker 2 のログレベルは、分散モードまたはスタンドアロンモードの実行時にのみ変更できます。専用の MirrorMaker 2 クラスターには Kafka Connect REST API がないため、ログレベルを変更することはできません。
Kafka Connect API のデフォルトのリスナーはポート 8083 上にあり、この手順で使用されます。admin.listeners
設定を使用して、リスナーを変更または追加したり、TLS 認証を有効にしたりできます。
admin
エンドポイントのリスナー設定の例
admin.listeners=https://localhost:8083 admin.listeners.https.ssl.truststore.location=/path/to/truststore.jks admin.listeners.https.ssl.truststore.password=123456 admin.listeners.https.ssl.keystore.location=/path/to/keystore.jks admin.listeners.https.ssl.keystore.password=123456
admin
エンドポイントを使用可能にしない場合は、設定で空の文字列を指定して無効にすることができます。
admin
エンドポイントを無効にするリスナー設定の例
admin.listeners=
前提条件
- Streams for Apache Kafka が 各ホストにインストールされており、設定ファイルが使用可能である。
- Kafka が実行中である。
- Kafka Connect または MirrorMaker 2 が実行中である。
手順
kafka
ユーザーに切り替えます。su - kafka
connect-log4j.properties
ファイルで設定されているロガーの現在のログレベルを確認します。$ cat /opt/kafka/config/connect-log4j.properties # ... log4j.rootLogger=INFO, stdout, connectAppender # ... log4j.logger.org.reflections=ERROR
curl コマンドを使用して、Kafka Connect API の
admin/loggers
エンドポイントからログレベルを確認します。curl -s http://localhost:8083/admin/loggers/ | jq { "org.reflections": { "level": "ERROR" }, "root": { "level": "INFO" } }
jq
は出力を JSON 形式で出力します。このリストには、標準のorg
およびroot
レベルのロガーに加えて、ログレベルが変更された特定のロガーが表示されます。Kafka Connect の
admin.listeners
設定に TLS (トランスポート層セキュリティー) 認証を設定する場合、ロガーエンドポイントのアドレスは、https://localhost:8083
など、https としてプロトコルを使用してadmin.listeners
に指定された値になります。特定のロガーのログレベルを取得することもできます。
curl -s http://localhost:8083/admin/loggers/org.apache.kafka.connect.mirror.MirrorCheckpointConnector | jq { "level": "INFO" }
PUT メソッドを使用して、ロガーのログレベルを変更します。
curl -Ss -X PUT -H 'Content-Type: application/json' -d '{"level": "TRACE"}' http://localhost:8083/admin/loggers/root { # ... "org.reflections": { "level": "TRACE" }, "org.reflections.Reflections": { "level": "TRACE" }, "root": { "level": "TRACE" } }
root
ロガーを変更すると、デフォルトでルートログレベルを使用していたロガーのログレベルも変更されます。