Confluent Platform systemd サービスユニットファイルの使用

Confluent Platform systemd サービスユニットファイルを使用して、システムブート時のサービスの自動起動やモニタリングを構成できます。これらのファイルは init スクリプトや起動スクリプトに似ており、起動時に Confluent Platform サーバーコンポーネントを正しい順序で自動的に起動する標準的な方法を提供します。

ちなみに

systemd サービスユニットファイルは、Linux ベースのシステムへのステージングおよび本稼働環境へのデプロイ用に最適化されています。

概要

systemd サービスユニットファイルは、以下の Confluent Platform コンポーネントの RPM および Debian パッケージ に含まれています。

  • Control Center (control-center
  • Apache Kafka® (kafka
  • Kafka Connect (kafka-connect
  • Confluent REST Proxy (kafka-rest
  • ksqlDB (ksql
  • Schema-Registry(schema-registry
  • ZooKeeper (zookeeper

各コンポーネントは、独自のユーザーと、パッケージのインストール時にセットアップされる共通の confluent グループの下で実行されます。この構成により、同じシステム上で実行されているコンポーネント間でセキュリティが適切に分離されます。コンポーネント名の前に cp- が付いたものがユーザー名になります。たとえば、cp-kafkacp-schema-registry のようになります。

Kafka および Confluent Control Center などの永続的ストレージを持つコンポーネントの場合、デフォルトのコンポーネント構成ファイルは、コンポーネント固有のデータディレクトリ /var/lib/<component> を指します。たとえば、Kafka は /var/lib/kafka を指し、ZooKeeper は /var/lib/zookeeper を指します。

注釈

これは、(デフォルトのデータディレクトリが非永続的(/tmp)であった)以前の Confluent Platform バージョンからの拡張であり、ステージング環境および本稼働環境へのデプロイに対応しています。

使用方法

ブート時の自動起動の有効化

インストール中、コンポーネントサービスに対して、デフォルトではブート時の自動起動が有効になっていません。ブート時の起動を、即時には開始しないものの有効にしたい場合は、このコマンドを実行します。

sudo systemctl enable confluent-<component>

たとえば、以下のコマンドを使用して Confluent REST Proxy を有効にできます。

sudo systemctl enable confluent-kafka-rest

サービスの即時開始

サービスを今すぐ開始するには、以下のコマンドを実行します。

sudo systemctl start confluent-<component>

サービスは開始されていませんが、このコマンドはすぐに値を返します。サービスの実際の開始は、systemd デーモンによってバックグラウンドで実行されます。

サービスステータスのチェック

サービスのステータスをチェックするには、次のコマンドを実行します。

systemctl status confluent-<component>

Active: という行を探します。active になっているはずです。

サービスの停止

サービスを停止するには、以下のコマンドを実行します。

sudo systemctl stop confluent-<component>

サービスの無効化

ブート時にサービスが自動的に開始されないように無効にするには、以下のコマンドを実行します。

sudo systemctl disable confluent-<component>

ログ記録

ログファイルは、コンポーネント固有のディレクトリ /var/log/confluent/ にあります。たとえば、Schema Registry のログは /var/log/confluent/schema-registry にあります。

サービスの標準出力は、サービスのログジャーナルに書き込まれます。ログジャーナルは、以下のコマンドで読み取ることができます。

sudo journalctl -u confluent-<component>

ログの追跡

ログをリアルタイムで追跡するには、以下のコマンドを実行します。

sudo journalctl -f -u confluent-<component>

構成の変更

サービスユニット構成設定の変更

サービスユニットの構成設定を変更するには、既存の構成行を変更するのではなく、以前のデフォルトを上書きする構成設定を追加する必要があります。これにより、ベースサービスユニットファイルをクリーンにアップグレードできます。

ちなみに

systemd コンポーネントの構成設定は、コンポーネントの起動、実行、および停止の方法を制御するだけの最小限の設定です。コンポーネントの構成は、既存の /etc/<component>/<component>.properties 構成ファイル(たとえば、Kafka ブローカーの場合は /etc/kafka/server.properties)を通して管理されます。

Systemd コンポーネント構成の変更

systemd の組み込み構成エディターを使用してサービスの構成設定を変更するには、以下の手順に従います。

  1. 現在の systemd コンポーネント構成を表示します。

    systemctl cat confluent-<component>
    
  2. 編集コマンドを実行します。

    sudo systemctl edit confluent-<component>
    
  3. オプション: 結果を検査します。

    systemctl cat confluent-<component>
    
  4. systemd 構成を再ロードし、コンポーネントを再起動します。

    sudo systemctl reload
    sudo systemctl restart confluent-<component>
    

ちなみに

Confluent Platform コンポーネントを再構成するには、コンポーネントのドキュメントと構成ファイルを参照してください。構成ファイルは <path-to-confluent>/etc/<component>/<component>.properties にあります。コンポーネントを再構成した後、以下のコマンドでコンポーネントを再起動すると、変更が反映されます。

sudo systemctl restart confluent-<component>

その他のリソース