Docker Configuration Parameters¶
このトピックでは、Confluent Platform の起動時に Docker イメージを構成する方法について説明します。
環境変数を使用して、Confluent Platform Docker イメージの構成値を動的に指定できます。Docker の -e
または --env
フラグを使用すると、さまざまな設定を指定できます。
参考
この構成の動作例については、Confluent Platform デモ を参照してください。構成リファレンスについては、デモの docker-compose.yml ファイル を参照してください。
ZooKeeper の構成¶
ZooKeeper (cp-zookeeper
)イメージの場合は、zookeeper.properties
ファイル変数を以下のように変換し、環境変数として使用します。
- 先頭に
ZOOKEEPER_
を付加します。 - 大文字に変換します。
- 各単語を
_
で区切ります。 - ピリオド(
.
)をシングルアンダースコア(_
)に置き換えます。 - ダッシュ(
-
)をダブルアンダースコア(__
)に置き換えます。 - アンダースコア(
_
)をトリプルアンダースコア(___
)に置き換えます。
たとえば、clientPort
、tickTime
、および syncLimit
を設定するには、以下のコマンドを実行します。
docker run -d \
--net=host \
--name=zookeeper \
-e ZOOKEEPER_CLIENT_PORT=32181 \
-e ZOOKEEPER_TICK_TIME=2000 \
-e ZOOKEEPER_SYNC_LIMIT=2 \
confluentinc/cp-zookeeper:6.0.6
ZooKeeper の必須設定¶
ZOOKEEPER_CLIENT_PORT
- Apache Kafka® などのクライアントによる接続をリッスンする場所を ZooKeeper に指定します。
ZOOKEEPER_SERVER_ID
- これは、クラスターモードで実行する場合にのみ必要です。
myid
ファイルにサーバー ID を設定します。このファイルは、マシンの ID のテキストのみを含む単一行で構成されます。たとえば、サーバー 1 のmyid
には、テキスト"1"
のみが含まれます。ID はアンサンブル内で一意でなければならず、1 から 255 の間の値を持つ必要があります。
Confluent Kafka の構成¶
Kafka (cp-kafka
)イメージの場合は、kafka.properties
ファイル変数を以下のように変換し、環境変数として使用します。
- 先頭に
KAFKA_
を付加します。 - 大文字に変換します。
- ピリオド(
.
)をシングルアンダースコア(_
)に置き換えます。 - ダッシュ(
-
)をダブルアンダースコア(__
)に置き換えます。 - アンダースコア(
_
)をトリプルアンダースコア(___
)に置き換えます。
たとえば、次のコマンドを実行して、broker.id
、advertised.listeners
、zookeeper.connect
、および offsets.topic.replication.factor
を設定します。
docker run -d \
--net=host \
--name=kafka \
-e KAFKA_ZOOKEEPER_CONNECT=localhost:32181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:29092 \
-e KAFKA_BROKER_ID=2 \
-e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
confluentinc/cp-kafka:6.0.6
注釈
KAFKA_ADVERTISED_LISTENERS
変数は localhost:29092
に設定されます。これにより、Docker ホスト上の Kafka の場所をアドバタイズすることで、コンテナーの外部から Kafka にアクセスできるようになります。
また、 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR
が 1
に設定されていることにも注意してください。これは、単一ノードクラスターで実行している場合に必要です。3 つ以上のノードがある場合は、デフォルトを使用できます。
Confluent Kafka の必須設定¶
KAFKA_ZOOKEEPER_CONNECT
- ZooKeeper とやり取りする方法を Kafka に指示します。
KAFKA_ADVERTISED_LISTENERS
アドバタイズされ、クライアントが到達できるホスト名について説明します。値はクライアントが使用できるように ZooKeeper にパブリッシュされます。
SSL または SASL プロトコルを使用する場合、エンドポイント値は以下の形式でプロトコルを指定する必要があります。
- SSL:
SSL://
またはSASL_SSL://
- SASL:
SASL_PLAINTEXT://
またはSASL_SSL://
- SSL:
Confluent Enterprise Kafka の構成¶
Enterprise Kafka (cp-server
)イメージには、Kafka の他に、Confluent Auto Data Balancer と Proactive Support のパッケージが含まれています。
Enterprise Kafka (cp-server
)イメージの場合は、kafka.properties
ファイル変数を以下のように変換し、環境変数として使用します。
- Apache Kafka には、先頭に
KAFKA_
を付加します。 - Confluent コンポーネントには、先頭に
CONFLUENT_
を付加します。 - 大文字に変換します。
- ピリオド(
.
)をシングルアンダースコア(_
)に置き換えます。 - ダッシュ(
-
)をダブルアンダースコア(__
)に置き換えます。 - アンダースコア(
_
)をトリプルアンダースコア(___
)に置き換えます。
たとえば、broker.id
、advertised.listeners
、zookeeper.connect
、offsets.topic.replication.factor
、および confluent.support.customer.id
を設定するには、以下のコマンドを実行します。
docker run -d \
--net=host \
--name=kafka \
-e KAFKA_ZOOKEEPER_CONNECT=localhost:32181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:29092 \
-e KAFKA_BROKER_ID=2 \
-e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
-e CONFLUENT_SUPPORT_CUSTOMER_ID=c0 \
confluentinc/cp-server:6.0.6
注釈
KAFKA_ADVERTISED_LISTENERS
変数は localhost:29092
に設定されます。これにより、Docker ホスト上の Kafka の場所をアドバタイズすることで、コンテナーの外部から Kafka にアクセスできるようになります。
Confluent Auto Data Balancing 機能を使用する場合は、「データの自動バランス調整」を参照してください。
また、 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR
が 1
に設定されていることにも注意してください。これは、単一ノードクラスターで実行している場合に必要です。3 つ以上のノードがある場合は、デフォルトを使用できます。
Confluent Enterprise Kafka の必須設定¶
KAFKA_ZOOKEEPER_CONNECT
- ZooKeeper とやり取りする方法を Kafka に伝えます。
KAFKA_ADVERTISED_LISTENERS
アドバタイズされ、クライアントが到達できるホスト名について説明します。値はクライアントが使用できるように ZooKeeper にパブリッシュされます。
SSL または SASL プロトコルを使用する場合、エンドポイント値は以下の形式でプロトコルを指定する必要があります。
- SSL:
SSL://
またはSASL_SSL://
- SASL:
SASL_PLAINTEXT://
またはSASL_SSL://
- SSL:
Confluent Schema Registry の構成¶
Schema Registry (cp-schema-registry
)イメージの場合は、プロパティ変数を以下のように変換し、環境変数として使用します。
- 先頭に
SCHEMA_REGISTRY_
を付加します。 - 大文字に変換します。
- ピリオド(
.
)をシングルアンダースコア(_
)に置き換えます。 - ダッシュ(
-
)をダブルアンダースコア(__
)に置き換えます。 - アンダースコア(
_
)をトリプルアンダースコア(___
)に置き換えます。
たとえば、以下を実行して、kafkastore.connection.url
、host.name
、listeners
、および debug
を設定します。
docker run -d \
--net=host \
--name=schema-registry \
-e SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS=SSL://hostname2:9092 \
-e SCHEMA_REGISTRY_HOST_NAME=localhost \
-e SCHEMA_REGISTRY_LISTENERS=http://localhost:8081 \
-e SCHEMA_REGISTRY_DEBUG=true \
confluentinc/cp-schema-registry:6.0.6
Schema Registry の必須設定¶
SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS
- 接続先となる Kafka ブローカーのリスト
SCHEMA_REGISTRY_HOST_NAME
- ZooKeeper でアドバタイズされるホスト名。これは、複数のノードで Schema Registry を実行している場合に必要です。ホスト名が必要なのは、コンテナーの Java 正規ホスト名がデフォルトで設定されているためであり、Docker 環境では解決できない場合もあります。セカンダリノードは現在のプライマリに登録リクエストを転送し、プライマリからの応答を返すだけで間接的に登録リクエストを処理するため、ホスト名は解決できる必要があります。詳細については、「単一プライマリアーキテクチャ」に関する Schema Registry のドキュメントを参照してください。
Confluent REST Proxy の構成¶
Confluent REST Proxy (cp-kafka-rest
)イメージは REST Proxy 構成設定名を使用します。以下のように REST Proxy 設定を環境変数に変換します。
- 先頭に
KAFKA_REST_
を付加します。 - 大文字に変換します。
- ピリオド(
.
)をシングルアンダースコア(_
)に置き換えます。 - ダッシュ(
-
)をダブルアンダースコア(__
)に置き換えます。 - アンダースコア(
_
)をトリプルアンダースコア(___
)に置き換えます。
たとえば、schema.registry.url
を設定するには、KAFKA_REST_SCHEMA_REGISTRY_URL
環境変数を使用します。
REST Proxy がサポートする構成設定については、「REST Proxy の構成オプション」を参照してください。
以下のコマンドは、listeners
、schema.registry.url
、および zookeeper.connect
を設定します。
docker run -d \
--net=host \
--name=kafka-rest \
-e KAFKA_REST_ZOOKEEPER_CONNECT=localhost:32181 \
-e KAFKA_REST_LISTENERS=http://localhost:8082 \
-e KAFKA_REST_SCHEMA_REGISTRY_URL=http://localhost:8081 \
-e KAFKA_REST_BOOTSTRAP_SERVERS=localhost:29092 \
confluentinc/cp-kafka-rest:6.0.6
Confluent REST Proxy の必須設定¶
REST Proxy Docker イメージを実行するには、以下の設定を渡す必要があります。
KAFKA_REST_HOST_NAME
- 応答で絶対 URL を生成するために使用されるホスト名。ホスト名が必要な場合があるのは、コンテナーの Java 正規ホスト名がデフォルトで設定されているためであり、Docker 環境では解決できない場合もあります。詳細については、「REST Proxy のデプロイ」に関する Confluent Platform ドキュメントを参照してください。
KAFKA_REST_BOOTSTRAP_SERVERS
- 接続先となる Kafka ブローカーのリスト対応する
bootstrap.server
REST Proxy の設定については、「REST Proxy の構成オプション」を参照してください。 KAFKA_REST_ZOOKEEPER_CONNECT
この変数は REST Proxy v2 では非推奨となっています。REST Proxy v1 を使用し、
KAFKA_REST_BOOTSTRAP_SERVERS
を使用していない場合は、この変数を使用してください。hostname:port
形式の ZooKeeper 接続文字列において、ホストとポートは ZooKeeper サーバーのホストとポートです。ZooKeeper マシンがダウンしているときに他の ZooKeeper ノード経由で接続できるように、hostname1:port1,hostname2:port2,hostname3:port3
の形式で複数のホストを指定することもできます。サーバーは、ZooKeeper 接続文字列の一部として ZooKeeper
chroot
パスを持つこともできます。これは、グローバル ZooKeeper 名前空間のいずれかのパスの下にデータを置きます。その場合、コンシューマーは接続文字列で同じ chroot パスを使用する必要があります。たとえば、chroot のパスを/chroot/path
にするには、接続文字列hostname1:port1,hostname2:port2,hostname3:port3/chroot/path
を使用します。
Kafka Connect の構成¶
Kafka Connect (cp-kafka-connect
)イメージの場合は、プロパティ変数を以下のように変換し、環境変数として使用します。
- 先頭に
CONNECT_
を付加します。 - 大文字に変換します。
- ピリオド(
.
)をシングルアンダースコア(_
)に置き換えます。 - ダッシュ(
-
)をダブルアンダースコア(__
)に置き換えます。 - アンダースコア(
_
)をトリプルアンダースコア(___
)に置き換えます。
たとえば、以下のコマンドを実行して、bootstrap.servers
などの必須プロパティ、config
、offsets
、status
のトピック名と、 key
または value
コンバーターを設定します。
docker run -d \
--name=kafka-connect \
--net=host \
-e CONNECT_BOOTSTRAP_SERVERS=localhost:29092 \
-e CONNECT_REST_PORT=28082 \
-e CONNECT_GROUP_ID="quickstart" \
-e CONNECT_CONFIG_STORAGE_TOPIC="quickstart-config" \
-e CONNECT_OFFSET_STORAGE_TOPIC="quickstart-offsets" \
-e CONNECT_STATUS_STORAGE_TOPIC="quickstart-status" \
-e CONNECT_KEY_CONVERTER="org.apache.kafka.connect.json.JsonConverter" \
-e CONNECT_VALUE_CONVERTER="org.apache.kafka.connect.json.JsonConverter" \
-e CONNECT_INTERNAL_KEY_CONVERTER="org.apache.kafka.connect.json.JsonConverter" \
-e CONNECT_INTERNAL_VALUE_CONVERTER="org.apache.kafka.connect.json.JsonConverter" \
-e CONNECT_REST_ADVERTISED_HOST_NAME="localhost" \
-e CONNECT_PLUGIN_PATH=/usr/share/java \
confluentinc/cp-kafka-connect:6.0.6
Kafka Connect の必須設定¶
Kafka Connect Docker イメージを実行するには、以下の設定を渡す必要があります。
CONNECT_BOOTSTRAP_SERVERS
- Kafka クラスターとの初期接続を確立するために使用する host:port のペア。
host1:port1,host2:port2,host3:port3…
の形式で複数のブートストラップサーバーを使用できます。 CONNECT_GROUP_ID
- このワーカーが属する Connect クラスターグループを示す一意の文字列。
CONNECT_CONFIG_STORAGE_TOPIC
- コネクターおよびタスクの構成データを保存するトピックの名前。これは、同じ
group.id
を持つすべてのワーカーで同じになっている必要があります。 CONNECT_OFFSET_STORAGE_TOPIC
- コネクターのオフセットデータを保存するトピックの名前。これは、同じ
group.id
を持つすべてのワーカーで同じになっている必要があります。 CONNECT_STATUS_STORAGE_TOPIC
- コネクターのステートを保存するトピックの名前。これは、同じ
group.id
を持つすべてのワーカーで同じになっている必要があります。 CONNECT_KEY_CONVERTER
- キーのコンバーターのクラス。このプロパティでは、ソースコネクターで Kafka に書き込まれるデータ、シンクコネクターで Kafka から読み取られるデータのフォーマットを指定します。
CONNECT_VALUE_CONVERTER
- 値のコンバーターのクラス。このプロパティでは、ソースコネクターで Kafka に書き込まれるデータ、シンクコネクターで Kafka から読み取られるデータのフォーマットを指定します。
CONNECT_INTERNAL_KEY_CONVERTER
Converter
インターフェイスが実装されている、内部キーのコンバーターのクラス。CONNECT_INTERNAL_VALUE_CONVERTER
Converter
インターフェイスが実装されている、内部値のコンバーターのクラス。CONNECT_REST_ADVERTISED_HOST_NAME
- 接続する他のワーカーに割り当てられるホスト名。Docker 環境では、クライアントは Connect や他のサービスに接続できる必要があります。アドバタイズされたホスト名は、クライアントから到達可能なホスト名を Connect が提供する手段となります。
CONNECT_PLUGIN_PATH
- クラス読み込みの分離で、読み込む Connect プラグインがある場所。
confluent-hub
クライアントを使用する場合は、confluent-hub
のインストール先のデフォルトパスである/usr/share/confluent-hub-components
を含めてください。
Confluent Control Center の構成¶
Confluent Control Center (cp-control-center
)イメージの場合は、プロパティ変数を以下のように変換し、環境変数として使用します。
- 先頭に
CONTROL_CENTER_
を付加します。 - ピリオド(
.
)をシングルアンダースコア(_
)に置き換えます。 - ダッシュ(
-
)をダブルアンダースコア(__
)に置き換えます。 - アンダースコア(
_
)をトリプルアンダースコア(___
)に置き換えます。
たとえば、以下のコマンドでは、ZooKeeper、Kafka、Connect の構成パラメーターを渡して Control Center を実行しています。
docker run -d \
--net=host \
--name=control-center \
--ulimit nofile=16384:16384 \
-e CONTROL_CENTER_BOOTSTRAP_SERVERS=localhost:29092 \
-e CONTROL_CENTER_REPLICATION_FACTOR=1 \
-e CONTROL_CENTER_CONNECT_CLUSTER=http://localhost:28082 \
-v /mnt/control-center/data:/var/lib/confluent-control-center \
confluentinc/cp-enterprise-control-center:6.0.6
Control Center Docker オプション¶
- ファイル記述子の制限: Control Center では多くのファイルを開くことが必要になる可能性があるため、ファイル記述子の制限を少なくとも 16384 に設定することをお勧めします。
- データの永続性: Control Center イメージのデータは、
/var/lib/confluent-control-center
ディレクトリに格納されます。これをホストマシン上のボリュームにバインドして、実行中もデータが保持されるようにすることをお勧めします。
Control Center の必須設定¶
Confluent Control Center イメージを実行するには、以下の設定を渡す必要があります。
CONTROL_CENTER_BOOTSTRAP_SERVERS
- Kafka クラスターとの初期接続を確立するために使用する host:port のペア。
host1:port1,host2:port2,host3:port3…
の形式で複数のブートストラップサーバーを使用できます。 CONTROL_CENTER_REPLICATION_FACTOR
- Control Center トピックのレプリケーション係数。本稼働環境では、この値を 3 に設定することをお勧めします。
Control Center のオプション設定¶
CONTROL_CENTER_CONNECT_CLUSTER
- Control Center が Kafka Connect クラスターと対話できるようにするには、このパラメーターを Kafka Connect クラスターの REST エンドポイント URL に設定します。
CONTROL_CENTER_CONFLUENT_LICENSE
- Confluent Control Center ライセンスキー。ライセンスキーがなくても、Confluent Control Center は 30 日間、試用期間として使用できます。
CONTROL_CENTER_KAFKA_<name>_BOOTSTRAP_SERVERS
- 監視対象になっている追加 Kafka クラスターのブートストラップサーバーを一覧表示するには、
<name>
を Control Center がこのクラスターの識別に使用する名前に置き換えます。たとえば、CONTROL_CENTER_KAFKA_production-nyc_BOOTSTRAP_SERVER
を使用すると、Control Center がクラスターリストにproduction-nyc
という名前の追加クラスターを表示します。 CONTROL_CENTER_LICENSE
- Confluent Control Center ライセンスキー。ライセンスキーがなくても、Confluent Control Center は 30 日間、試用期間として使用できます。
CONTROL_CENTER_REST_LISTENERS
これを Control Center UI の HTTP または HTTPS に設定します。設定しないと、以下の警告メッセージが表示される場合があります。
WARN DEPRECATION warning: `listeners` configuration is not configured. Falling back to the deprecated `port` configuration. (io.confluent.rest.Application)
Confluent Replicator の構成¶
Confluent Replicator は Kafka コネクターであり、Kafka Connect クラスター上で実行されます。
Confluent Replicator イメージ(cp-enterprise-replicator
)の場合は、プロパティ変数を以下のように変換し、環境変数として使用します。
- 先頭に
CONNECT_
を付加します。 - 大文字に変換します。
- 各単語を
_
で区切ります。 - ピリオド(
.
)をシングルアンダースコア(_
)に置き換えます。 - ダッシュ(
-
)をダブルアンダースコア(__
)に置き換えます。 - アンダースコア(
_
)をトリプルアンダースコア(___
)に置き換えます。
たとえば、以下のコマンドを実行して、bootstrap.servers
などの必須プロパティ、config
、offsets
、status
のトピック名と、 key
または value
コンバーターを設定します。
docker run -d \
--name=cp-enterprise-replicator \
--net=host \
-e CONNECT_BOOTSTRAP_SERVERS=localhost:29092 \
-e CONNECT_REST_PORT=28082 \
-e CONNECT_GROUP_ID="quickstart" \
-e CONNECT_CONFIG_STORAGE_TOPIC="quickstart-config" \
-e CONNECT_OFFSET_STORAGE_TOPIC="quickstart-offsets" \
-e CONNECT_STATUS_STORAGE_TOPIC="quickstart-status" \
-e CONNECT_KEY_CONVERTER="org.apache.kafka.connect.json.JsonConverter" \
-e CONNECT_VALUE_CONVERTER="org.apache.kafka.connect.json.JsonConverter" \
-e CONNECT_INTERNAL_KEY_CONVERTER="org.apache.kafka.connect.json.JsonConverter" \
-e CONNECT_INTERNAL_VALUE_CONVERTER="org.apache.kafka.connect.json.JsonConverter" \
-e CONNECT_REST_ADVERTISED_HOST_NAME="localhost" \
confluentinc/cp-enterprise-replicator:6.0.6
以下の例は、トピック "confluent" を送信元 Kafka クラスター(src)から送信先 Kafka クラスター(dest)に複製する Confluent Replicator コネクターの作成方法を示しています。
curl -X POST \
-H "Content-Type: application/json" \
--data '{
"name": "confluent-src-to-dest",
"config": {
"connector.class":"io.confluent.connect.replicator.ReplicatorSourceConnector",
"key.converter": "io.confluent.connect.replicator.util.ByteArrayConverter",
"value.converter": "io.confluent.connect.replicator.util.ByteArrayConverter",
"src.kafka.bootstrap.servers": "kafka-src:9082",
"topic.whitelist": "confluent",
"topic.rename.format": "${topic}.replica"}}' \
http://localhost:28082/connectors
Confluent Replicator の必須設定¶
Confluent Replicator Docker イメージを実行するには、以下の設定を渡す必要があります。
CONNECT_BOOTSTRAP_SERVERS
- Kafka クラスターとの初期接続を確立するために使用する host:port のペア。
host1:port1,host2:port2,host3:port3…
の形式で複数のブートストラップサーバーを使用できます。 CONNECT_GROUP_ID
- このワーカーが属する Connect クラスターグループを示す一意の文字列。
CONNECT_CONFIG_STORAGE_TOPIC
- コネクターおよびタスクの構成データが保存されるトピックの名前。これは、同じ
group.id
を持つすべてのワーカーで同じになっている必要があります。 CONNECT_OFFSET_STORAGE_TOPIC
- コネクターのオフセットデータが保存されるトピックの名前。これは、同じ
group.id
を持つすべてのワーカーで同じになっている必要があります。 CONNECT_STATUS_STORAGE_TOPIC
- コネクターのステートが保存されるトピックの名前。これは、同じ
group.id
を持つすべてのワーカーで同じになっている必要があります。 CONNECT_KEY_CONVERTER
- キーのコンバーターのクラス。このプロパティでは、ソースコネクターで Kafka に書き込まれるデータ、シンクコネクターで Kafka から読み取られるデータのフォーマットを指定します。
CONNECT_VALUE_CONVERTER
- 値のコンバーターのクラス。このプロパティでは、ソースコネクターで Kafka に書き込まれるデータ、シンクコネクターで Kafka から読み取られるデータのフォーマットを指定します。
CONNECT_INTERNAL_KEY_CONVERTER
Converter
インターフェイスが実装されている、内部キーのコンバーターのクラス。CONNECT_INTERNAL_VALUE_CONVERTER
Converter
インターフェイスが実装されている、内部値のコンバーターのクラス。CONNECT_REST_ADVERTISED_HOST_NAME
- 接続する他のワーカーに割り当てられるホスト名。Docker 環境では、クライアントは Connect や他のサービスに接続できる必要があります。アドバタイズされたホスト名は、クライアントから到達可能なホスト名を Connect が提供する手段となります。
Confluent Replicator 実行可能ファイルの構成¶
Confluent Replicator 実行可能ファイル(cp-enterprise-replicator-executable
)は、構成プロパティを統合し、Connect の詳細を抽象化することで、Replicator を実行する別の方法を提供します。
イメージは、想定される入力ファイルを持つディレクトリをマウントするか、各ファイルを個別にマウントすることによって渡すことができる入力ファイルに依存します。さらに、このイメージでは、環境変数を介して Replicator 実行可能ファイルにコマンドラインパラメーターを渡すこともできます。
以下は Replicator を起動する場合の例です。Docker イメージの /etc/replicator
の下にマウントされるローカルディレクトリ /mnt/replicator/config
に、必須ファイルの consumer.properties
、producer.properties
と、必要とされることが多いファイル replication.properties
(省略可)が含まれています。
docker run -d \
--name=ReplicatorX \
--net=host \
-e REPLICATOR_LOG4J_ROOT_LOGLEVEL=DEBUG \
-v /mnt/replicator/config:/etc/replicator \
confluentinc/cp-enterprise-replicator-executable:6.0.6
同様の例として、replication.properties
の追加を省略し、環境変数を使用してレプリケーションプロパティを指定して Replicator を起動します。
想定される環境変数の網羅的なリストについては、次のセクションの設定のリストを参照してください。
docker run -d \
--name=ReplicatorX \
--net=host \
-e CLUSTER_ID=replicator-east-to-west \
-e WHITELIST=confluent \
-e TOPIC_RENAME_FORMAT='${topic}.replica' \
-e REPLICATOR_LOG4J_ROOT_LOGLEVEL=DEBUG \
-v /mnt/replicator/config:/etc/replicator \
confluentinc/cp-enterprise-replicator-executable:6.0.6
Confluent Replicator 実行可能ファイルの必須設定¶
Replicator 実行可能ファイルの Docker イメージを実行するには、以下のファイルを渡す必要があります。
CONSUMER_CONFIG
- 送信元クラスターからコンシューマーが読み取るための構成設定を含むファイル。デフォルトの場所は Docker イメージの
/etc/replicator/consumer.properties
です。 PRODUCER_CONFIG
- プロデューサーが送信先クラスターに書き込むための構成設定を含むファイル。デフォルトの場所は Docker イメージの
/etc/replicator/producer.properties
です。 CLUSTER_ID
- Replicator クラスターの一意の識別子を指定する文字列。デフォルト値は
replicator
です。
Confluent Replicator 実行可能ファイルのオプション設定¶
ファイルではなく環境変数を介して Replicator 実行可能ファイルに渡すことができるオプションの追加設定は以下のとおりです。
REPLICATION_CONFIG
- 送信元クラスターからのレプリケーションの構成設定を含むファイル。デフォルトの場所は Docker イメージの
/etc/replicator/replication.properties
です。 CONSUMER_MONITORING_CONFIG
- Replicator のコンシューマーに関連するモニタリング情報を書き込むプロデューサーの構成設定を含むファイル。デフォルトの場所は Docker イメージの
/etc/replicator/consumer-monitoring.properties
です。 PRODUCER_MONITORING_CONFIG
- Replicator のプロデューサーに関連するモニタリング情報を書き込むプロデューサーの構成設定を含むファイル。デフォルトの場所は Docker イメージの
/etc/replicator/producer-monitoring.properties
です。 BLACKLIST
- ホワイトリストに含まれているか正規表現と一致している場合であっても、複製されるべきではないトピックのコンマ区切りリスト。
WHITELIST
- レプリケーションするトピックの名前のコンマ区切りリスト。このリストにあり、ブラックリストにないトピックはレプリケーションされます。
CLUSTER_THREADS
- Replicator クラスター内のすべてのワーカー全体でのスレッドの合計数です。
CONFLUENT_LICENSE
- Confluent のライセンスキー。ライセンスキーがなくても、Replicator は 30 日間、試用期間として使用できます。
TOPIC_AUTO_CREATE
- 必要に応じて、送信先クラスターにトピックを自動的に作成するかどうかを指定します。トピックの自動作成を無効にしても、Kafka Streams および ksqlDB アプリケーションは引き続き動作します。Kafka Streams および ksqlDB アプリケーションは管理クライアントを使用するため、トピックは引き続き作成されます。
TOPIC_CONFIG_SYNC
- トピック構成を送信先クラスターと定期的に同期するかどうかを指定します。
TOPIC_CONFIG_SYNC_INTERVAL_MS
topic.config.sync
が有効な場合に、構成の変更を確認する頻度を指定します。TOPIC_CREATE_BACKOFF_MS
- トピックの自動作成または展開を再試行するまでの待機時間。
TOPIC_POLL_INTERVAL_MS
- ホワイトリストまたは正規表現に一致する新しいトピックについて送信元クラスターをポーリングする頻度を指定します。
TOPIC_PRESERVE_PARTITIONS
- 送信元クラスターと一致するように送信先クラスター内のパーティション数を自動的に増やし、送信元クラスターからレプリケーションされたメッセージが送信先クラスター内の同じパーティションを使用するかどうかを指定します。
TOPIC_REGEX
- レプリケーションされるトピックの名前と一致する正規表現。この表現に一致する(またはホワイトリストに記載されている)と同時にブラックリストに記載されていないトピックはレプリケーションされます。
TOPIC_RENAME_FORMAT
- 送信先クラスター内のトピック名のフォーマット制御文字列。送信元のトピック名を表すプレースホルダーとして ${topic} を含めることができます。
TOPIC_TIMESTAMP_TYPE
- 送信先クラスター内のトピックのタイムスタンプの種類です。
Kafka MQTT Proxy の構成¶
Confluent MQTT Proxy Docker イメージの場合は、プロパティ変数を以下のように変換し、環境変数として使用します。
- 先頭に
KAFKA_MQTT_
を付加します。 - 大文字に変換します。
- ピリオド(
.
)をシングルアンダースコア(_
)に置き換えます。 - ダッシュ(
-
)をダブルアンダースコア(__
)に置き換えます。 - アンダースコア(
_
)をトリプルアンダースコア(___
)に置き換えます。
Kafka MQTT Proxy の必須設定¶
Confluent MQTT Proxy Docker イメージを実行するには、以下の設定を渡す必要があります。
KAFKA_MQTT_BOOTSTRAP_SERVERS
- Kafka クラスターとの初期接続を確立するために使用する host:port のペア。
host1:port1,host2:port2,host3:port3…
の形式で複数のブートストラップサーバーを使用できます。 KAFKA_MQTT_TOPIC_REGEX_LIST
- MQTT トピックを Kafka トピックにマッピングするために使用される '<kafka topic>:<regex>' 型のペアのコンマ区切りのリスト。
ksqlDB サーバーの構成¶
ksqlDB パラメーターの網羅的なリストについては、「ksqlDB 構成パラメーターリファレンス」を参照してください。
ksqlDB サーバーイメージ(cp-ksqldb-server
)の場合は、プロパティ変数を以下のように変換し、環境変数として使用します。
- 先頭に
KSQL_
を付加します。 - 大文字に変換します。
- ピリオド(
.
)をシングルアンダースコア(_
)に置き換えます。 - ダッシュ(
-
)をダブルアンダースコア(__
)に置き換えます。 - アンダースコア(
_
)をトリプルアンダースコア(___
)に置き換えます。
ksqlDB ヘッドレスサーバー設定¶
コンテナー内でスタンドアロンの ksqlDB サーバーインスタンスを実行します。
KSQL_BOOTSTRAP_SERVERS
- Kafka クラスターとの初期接続を確立するために使用する host:port のペア。
host1:port1,host2:port2,host3:port3…
の形式で複数のブートストラップサーバーを使用できます。 KSQL_KSQL_SERVICE_ID
- ksqlDB サーバーのサービス ID。ksqlDB によって作成された内部トピックのプレフィックスとして使用されます。
KSQL_KSQL_QUERIES_FILE
- 事前定義 SQL クエリを指定するファイル。
docker run -d \
-v /path/on/host:/path/in/container/ \
-e KSQL_BOOTSTRAP_SERVERS=localhost:9092 \
-e KSQL_KSQL_SERVICE_ID=confluent_standalone_2_ \
-e KSQL_KSQL_QUERIES_FILE=/path/in/container/queries.sql \
confluentinc/cp-ksqldb-server:6.0.6
インターセプターを使用する ksqlDB ヘッドレスサーバー設定¶
コンテナー内に指定されたインターセプタークラスを持つスタンドアロン ksqlDB サーバーを実行します。インターセプタークラスの詳細については、「Confluent Monitoring Interceptor」を参照してください。
KSQL_BOOTSTRAP_SERVERS
- Kafka クラスターとの初期接続を確立するために使用する host:port のペア。
host1:port1,host2:port2,host3:port3…
の形式で複数のブートストラップサーバーを使用できます。 KSQL_KSQL_SERVICE_ID
- ksqlDB サーバーのサービス ID。ksqlDB によって作成された内部トピックのプレフィックスとして使用されます。
KSQL_KSQL_QUERIES_FILE
- 事前定義 SQL クエリを指定するファイル。
KSQL_PRODUCER_INTERCEPTOR_CLASSES
- プロデューサーインターセプターの完全修飾クラス名のリスト。
KSQL_CONSUMER_INTERCEPTOR_CLASSES
- コンシューマーインターセプターの完全修飾クラス名のリスト。
docker run -d \
-v /path/on/host:/path/in/container/ \
-e KSQL_BOOTSTRAP_SERVERS=localhost:9092 \
-e KSQL_KSQL_SERVICE_ID=confluent_standalone_2_ \
-e KSQL_PRODUCER_INTERCEPTOR_CLASSES=io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor \
-e KSQL_CONSUMER_INTERCEPTOR_CLASSES=io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor \
-e KSQL_KSQL_QUERIES_FILE=/path/in/container/queries.sql \
confluentinc/cp-ksqldb-server:6.0.6
対話型サーバー構成¶
ksqlDB CLI を使用して手動による対話を可能にする ksqlDB サーバーを実行します。
KSQL_BOOTSTRAP_SERVERS
- Kafka クラスターとの初期接続を確立するために使用する host:port のペア。
host1:port1,host2:port2,host3:port3…
の形式で複数のブートストラップサーバーを使用できます。 KSQL_KSQL_SERVICE_ID
- ksqlDB サーバーのサービス ID。ksqlDB によって作成された内部トピックのプレフィックスとして使用されます。
KSQL_LISTENERS
- ブローカーがリッスンするプロトコルを含む URI のリスト。
docker run -d \
-p 127.0.0.1:8088:8088 \
-e KSQL_BOOTSTRAP_SERVERS=localhost:9092 \
-e KSQL_LISTENERS=http://0.0.0.0:8088/ \
-e KSQL_KSQL_SERVICE_ID=confluent_test_2 \
confluentinc/cp-ksqldb-server:6.0.6
インターセプターを使用する対話型サーバー構成¶
ksqlDB CLI を使用して手動による対話を可能にするインターセプターを使用する ksqlDB サーバーを実行します。インターセプタークラスの詳細については、「Confluent Monitoring Interceptor」を参照してください。
KSQL_BOOTSTRAP_SERVERS
- Kafka クラスターとの初期接続を確立するために使用する host:port のペア。
host1:port1,host2:port2,host3:port3…
の形式で複数のブートストラップサーバーを使用できます。 KSQL_KSQL_SERVICE_ID
- ksqlDB サーバーのサービス ID。ksqlDB によって作成された内部トピックのプレフィックスとして使用されます。
KSQL_LISTENERS
- ブローカーがリッスンするプロトコルを含む URI のリスト。
KSQL_PRODUCER_INTERCEPTOR_CLASSES
- プロデューサーインターセプターの完全修飾クラス名のリスト。
KSQL_CONSUMER_INTERCEPTOR_CLASSES
- コンシューマーインターセプターの完全修飾クラス名のリスト。
docker run -d \
-p 127.0.0.1:8088:8088 \
-e KSQL_BOOTSTRAP_SERVERS=localhost:9092 \
-e KSQL_LISTENERS=http://0.0.0.0:8088/ \
-e KSQL_KSQL_SERVICE_ID=confluent_test_2_ \
-e KSQL_PRODUCER_INTERCEPTOR_CLASSES=io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor \
-e KSQL_CONSUMER_INTERCEPTOR_CLASSES=io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor \
confluentinc/cp-ksqldb-server:6.0.6
インタラクティブモードでは、Docker の外部で実行されている CLI インスタンスは、Docker で実行されているサーバーに接続できます。
./bin/ksql
...
CLI v6.0.6, Server v6.0.6-SNAPSHOT located at http://localhost:8088
Having trouble? Type 'help' (case-insensitive) for a rundown of how things work!
ksql>
セキュアな Kafka クラスター(Confluent Cloud など)への接続¶
Kafka クラスターへのセキュアな接続を使用する ksqlDB サーバーを実行します。詳細については、「ksqlDB のセキュリティを構成する」を参照してください。
KSQL_BOOTSTRAP_SERVERS
- Kafka クラスターとの初期接続を確立するために使用する host:port のペア。
host1:port1,host2:port2,host3:port3…
の形式で複数のブートストラップサーバーを使用できます。 KSQL_KSQL_SERVICE_ID
- ksqlDB サーバーのサービス ID。ksqlDB によって作成された内部トピックのプレフィックスとして使用されます。
KSQL_LISTENERS
- ブローカーがリッスンするプロトコルを含む URI のリスト。
KSQL_KSQL_SINK_REPLICAS
- ksqlDB によって作成されるトピックのレプリカのデフォルト数。デフォルトは 1 です。
KSQL_KSQL_STREAMS_REPLICATION_FACTOR
- 内部トピック、コマンドトピック、および出力トピックのレプリケーション係数。
KSQL_SECURITY_PROTOCOL
- Kafka クラスターがセキュリティのために使用するプロトコル。
KSQL_SASL_MECHANISM
- Kafka クラスターがセキュリティのために使用する SASL メカニズム。
KSQL_SASL_JAAS_CONFIG
- Java Authentication and Authorization Service(JAAS)構成。
docker run -d \
-p 127.0.0.1:8088:8088 \
-e KSQL_BOOTSTRAP_SERVERS=REMOVED_SERVER1:9092,REMOVED_SERVER2:9093,REMOVED_SERVER3:9094 \
-e KSQL_LISTENERS=http://0.0.0.0:8088/ \
-e KSQL_KSQL_SERVICE_ID=default_ \
-e KSQL_KSQL_SINK_REPLICAS=3 \
-e KSQL_KSQL_STREAMS_REPLICATION_FACTOR=3 \
-e KSQL_SECURITY_PROTOCOL=SASL_SSL \
-e KSQL_SASL_MECHANISM=PLAIN \
-e KSQL_SASL_JAAS_CONFIG="org.apache.kafka.common.security.plain.PlainLoginModule required username=\"<username>\" password=\"<strong-password>\";" \
confluentinc/cp-ksqldb-server:6.0.6
Java システムプロパティを使用した ksqlDB サーバーの構成¶
Java プロパティで定義された構成で ksqlDB サーバーを実行します。
KSQL_BOOTSTRAP_SERVERS
- Kafka クラスターとの初期接続を確立するために使用する host:port のペア。
host1:port1,host2:port2,host3:port3…
の形式で複数のブートストラップサーバーを使用できます。 KSQL_OPTS
- スペース区切りの Java オプションのリスト。
docker run -d \
-v /path/on/host:/path/in/container/ \
-e KSQL_BOOTSTRAP_SERVERS=localhost:9092 \
-e KSQL_OPTS="-Dksql.service.id=confluent_test_3_ -Dksql.queries.file=/path/in/container/queries.sql" \
confluentinc/cp-ksqldb-server:6.0.6
ログの表示¶
コンテナー内から生成された ksqlDB ログを表示するには、docker logs
コマンドを使用します。
docker logs -f <container-id>
[2018-05-24 23:43:05,591] INFO stream-thread [_confluent-ksql-default_transient_1507119262168861890_1527205385485-71c8a94c-abe9-45ba-91f5-69a762ec5c1d-StreamThread-17] Starting (org.apache.kafka.streams.processor.internals.StreamThread:713)
...
ksqlDB CLI の構成¶
ksqlDB CLI イメージ(cp-ksqldb-cli
)の場合は、プロパティ変数を以下のように変換し、環境変数として使用します。
- 先頭に
KSQL_
を付加します。 - 大文字に変換します。
- ピリオド(
.
)をシングルアンダースコア(_
)に置き換えます。 - ダッシュ(
-
)をダブルアンダースコア(__
)に置き換えます。 - アンダースコア(
_
)をトリプルアンダースコア(___
)に置き換えます。
Docker 化された ksqlDB サーバーへの接続¶
コンテナー内で ksqlDB CLI インスタンスを実行し、コンテナー内で実行されている ksqlDB サーバーに接続します。
ksqlDB サーバーによって作成された Docker ネットワークを使用すると、Docker 化された ksqlDB サーバーに接続できます。
KSQL_BOOTSTRAP_SERVERS
- Kafka クラスターとの初期接続を確立するために使用する host:port のペア。
host1:port1,host2:port2,host3:port3…
の形式で複数のブートストラップサーバーを使用できます。 KSQL_OPTS
- スペース区切りの Java オプションのリスト。
# Run ksqlDB Server.
docker run -d -p 10.0.0.11:8088:8088 \
-e KSQL_BOOTSTRAP_SERVERS=localhost:9092 \
-e KSQL_OPTS="-Dksql.service.id=confluent_test_3_ -Dlisteners=http://0.0.0.0:8088/" \
confluentinc/cp-ksqldb-server:6.0.6
# Connect the ksqlDB CLI to the server.
docker run -it confluentinc/cp-ksqldb-cli http://10.0.0.11:8088
...
Copyright 2017 Confluent Inc.
CLI v6.0.6-SNAPSHOT, Server v6.0.6-SNAPSHOT located at http://10.0.0.11:8088
Having trouble? Type 'help' (case-insensitive) for a rundown of how things work!
ksql>
構成ファイルの提供¶
構成ファイルを使用して ksqlDB CLI インスタンスをセットアップし、コンテナー内で実行します。
# Assume ksqlDB Server is running.
# Ensure that the configuration file exists.
ls /path/on/host/ksql-cli.properties
docker run -it \
-v /path/on/host/:/path/in/container \
confluentinc/cp-ksqldb-cli:6.0.6 http://10.0.0.11:8088 \
--config-file /path/in/container/ksql-cli.properties
別のホスト(AWS など)上で動作する ksqlDB サーバーへの接続¶
コンテナー内で ksqlDB CLI インスタンスを実行し、リモート ksqlDB サーバーホストに接続します。
docker run -it confluentinc/cp-ksqldb-cli:6.0.6 \
http://ec2-etc.us-etc.compute.amazonaws.com:8080
...
Copyright 2017 Confluent Inc.
CLI v6.0.6-SNAPSHOT, Server v6.0.6-SNAPSHOT located at http://ec2-blah.us-blah.compute.amazonaws.com:8080
Having trouble? Type 'help' (case-insensitive) for a rundown of how things work!
ksql>