第76章 KafkaConnectSpec スキーマリファレンス
KafkaConnect で使用
KafkaConnectSpec スキーマプロパティーの全リスト
Kafka Connect クラスターを設定します。
config プロパティーは、リソースの全体的な設定の一部です。config プロパティーを使用して、Kafka Connect オプションをキーとして設定します。
Kafka Connect の設定例
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
name: my-connect
spec:
# ...
config:
group.id: my-connect-cluster
offset.storage.topic: my-connect-cluster-offsets
config.storage.topic: my-connect-cluster-configs
status.storage.topic: my-connect-cluster-status
key.converter: org.apache.kafka.connect.json.JsonConverter
value.converter: org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable: true
value.converter.schemas.enable: true
config.storage.replication.factor: 3
offset.storage.replication.factor: 3
status.storage.replication.factor: 3
# ...
値は以下の JSON タイプのいずれかになります。
- 文字列
- 数値
- ブール値
以下のオプションにはデフォルト値があります。
-
group.id、デフォルト値connect-cluster -
offset.storage.topic、デフォルト値connect-cluster-offsets -
config.storage.topic、デフォルト値connect-cluster-configs -
status.storage.topic、デフォルト値connect-cluster-status -
key.converter、デフォルト値org.apache.kafka.connect.json.JsonConverter -
value.converter、デフォルト値org.apache.kafka.connect.json.JsonConverter
このようなオプションは、KafkaConnect.spec.config プロパティーにない場合に自動的に設定されます。
例外
Apache Kafka ドキュメント にリストされているオプションを指定および設定できます。
ただし、次の項目に関連するオプションの設定と管理は、Streams for Apache Kafka が行います。これらは変更できません。
- Kafka クラスターブートストラップアドレス
- セキュリティー (暗号化、認証、および認可)
- リスナーと REST インターフェイスの設定
- プラグインパスの設定
次の接頭辞を持つプロパティーは設定できません。
-
bootstrap.servers -
consumer.interceptor.classes -
listeners -
plugin.path -
producer.interceptor.classes -
rest. -
sasl. -
security. -
ssl.
config プロパティーに変更できないオプションが含まれている場合、そのオプションは無視され、警告メッセージが Cluster Operator ログファイルに記録されます。サポートされているその他のすべてのオプションは、Streams for Apache Kafka によって設定されたオプションの次の例外を含め、Kafka Connect に転送されます。
-
サポートされている TLS バージョンと暗号スイート の任意の
ssl設定
提供された config オブジェクトのキーまたは値は Cluster Operator によって検証されません。無効な設定を指定すると、Kafka Connect クラスターが起動しなかったり、不安定になる可能性があります。この場合、Cluster Operator が新しい設定をすべての Kafka Connect ノードにロールアウトできるように設定を修正します。
76.1. Logging リンクのコピーリンクがクリップボードにコピーされました!
Kafka Connect には独自の設定可能なロガーがあります。
-
connect.root.logger.level -
log4j.logger.org.reflections
実行中の Kafka Connect プラグインに応じて、さらにロガーが追加されます。
curl リクエストを使用して、Kafka ブローカー Pod から稼働している Kafka Connect ロガーの完全リストを取得します。
curl -s http://<connect-cluster-name>-connect-api:8083/admin/loggers/
Kafka Connect では Apache log4j ロガー実装が使用されます。
logging プロパティーを使用してロガーおよびロガーレベルを設定します。
ログレベルを設定するには、ロガーとレベルを直接指定 (インライン) するか、カスタム (外部) ConfigMap を使用します。ConfigMap を使用する場合、logging.valueFrom.configMapKeyRef.name プロパティーを外部ロギング設定が含まれる ConfigMap の名前に設定します。ConfigMap 内では、ロギング設定は log4j.properties を使用して記述されます。logging.valueFrom.configMapKeyRef.name および logging.valueFrom.configMapKeyRef.key プロパティーはいずれも必須です。Cluster Operator の実行時に、指定された正確なロギング設定を使用する ConfigMap がカスタムリソースを使用して作成され、その後は調整のたびに再作成されます。カスタム ConfigMap を指定しない場合、デフォルトのロギング設定が使用されます。特定のロガー値が設定されていない場合、上位レベルのロガー設定がそのロガーに継承されます。ログレベルの詳細は、Apache logging services を参照してください。
ここで、inline および external ロギングの例を示します。inline ロギングでは、ルートロガーレベルを指定します。特定のクラスまたはロガーを loggers プロパティーに追加することで、それらのログレベルを設定することもできます。
inline ロギング
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
spec:
# ...
logging:
type: inline
loggers:
connect.root.logger.level: INFO
log4j.logger.org.apache.kafka.connect.runtime.WorkerSourceTask: TRACE
log4j.logger.org.apache.kafka.connect.runtime.WorkerSinkTask: DEBUG
# ...
ログレベルを DEBUG に設定すると、大量のログが出力され、パフォーマンスに影響を及ぼす可能性があります。
外部ロギング
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
spec:
# ...
logging:
type: external
valueFrom:
configMapKeyRef:
name: customConfigMap
key: connect-logging.log4j
# ...
設定されていない利用可能なロガーのレベルは OFF に設定されています。
Cluster Operator を使用して Kafka Connect がデプロイされた場合、Kafka Connect のロギングレベルの変更は動的に適用されます。
外部ロギングを使用する場合は、ロギングアペンダーが変更されるとローリング更新がトリガーされます。
ガベージコレクター (GC)
ガベッジコレクターのロギングは jvmOptions プロパティーを使用して 有効 (または無効) にすることもできます。