サーバーの設定
Version 26.2.9623
Version 26.2.9623
サーバーの設定
CData Sync には組み込みEclipse Jetty Web サーバーが含まれ、外部サーバー構成なしでSync を実行できます。組み込みJetty サーバーの使用には、Java Development Kit(JDK)17 またはそれ以上のバージョンがマシンにインストールされている必要があります。
Windows
Windows の場合、CData Sync はサービスとしてデフォルトでインストールされます。アプリケーションにアクセスするには、まず、サービスが起動していることを確認する必要があります。サービスが起動したら、Web ブラウザを開いてURL にhttp://localhost:8181/ を入力すると、CData Sync 管理コンソールにアクセスできます。
また、サービスを使用せずにjava コマンドを介してアプリケーションを実行することもできます。CData はサービスの利用を推奨していますが、特定の構成ではこちらの方法が有効です。
サービスの起動と停止
サービスの開始と停止は、次のいずれかの方法で行います。
-
スタートメニューのショートカット(推奨)
-
コマンドプロンプトコマンド
スタートメニューのショートカット
CData Sync インストーラーは、アプリケーションを簡単に使用できるスタートメニューのショートカットを作成します。これらのショートカットにアクセスするには、スタートメニューを開いてCData Sync 2023 フォルダを展開します。以下のショートカットが利用可能です。
-
Start CData Sync:CData Sync サービスを開始します。デフォルトでは、このサービスはWindows 起動時に実行されます。そのため、アプリケーションを実行するたびにこのコマンドを実行する必要はありません。
-
Stop CData Sync:CData Sync サービスを停止します。このアクションは、Sync のアップグレード時に必要です。
-
Launch CData Sync Admin Console:デフォルトのWeb ブラウザでWeb ブラウザウィンドウを開き、管理コンソールURL http://localhost:8181/ にアクセスします。サービスが起動していない場合、Web ブラウザはエラーを返します。
サービス管理コンソール
サービス管理コンソールを開くには、スタートメニューを開きサービスと入力します。表示されたサービスアプリケーションを選択します。
CData Sync というサービスが表示されるまでスクロールダウンします。サービスが起動している場合は、状態カラムに実行中と表示されます。サービスを右クリックすると、開始、停止、および再起動のオプションを利用できます。
コマンドプロンプト
高度なユーザーは、Windows のコマンドプロンプトを使用して、サービスに対して手動でコマンドを発行することができます。コマンドプロンプトを開き、ディレクトリをインストールフォルダに変更します(デフォルトはC:\Program Files\CData\CData Sync です)。
Note:Microsoft PowerShell ウィンドウを使用してこれらのコマンドを発行することもできますが、構文が若干異なります。PowerShell を使用する際は、コマンドを適宜修正してください。
CData Sync サービスを開始するには、次のコマンドを実行します。
sync.exe -start
以下のコマンドで、サービスを再起動または停止できます。
sync.exe --restart --ServiceName "CData Sync"
sync.exe --stop --ServiceName "CData Sync"
サービスを使わずに起動
サービスを開始せずにCData Sync を実行するには、インストールフォルダでコマンドプロンプトを開きます。アプリケーションを開始するには、次のコマンドを実行します。
java -jar sync.jar
Linux
CData Sync を任意の場所にインストールしたら、CData Sync をサービスとして実行するか、アプリケーションを手動で実行することができます。CData は、重要なアプリケーションにSync を使用する場合は、サービスの使用をお勧めします。
Sync をサービスとして実行
CData Sync をサービスとして実行すると、アプリケーションをユーザープロセスから独立して実行し、再起動時に自動的に再起動することができます。
Sync のLinux インストールがサービスとして期待どおりに機能するよう、以下の手順を実行してください:
-
Sync をインストールする際は、インストールを実行するユーザーがインストールディレクトリに対する読み取りおよび書き込み権限を持っていることを確認してください。root ユーザーであれば問題ありません。
-
service.sh スクリプトを実行します。このスクリプトは、展開したセットアップアーカイブのルートに配置されています。例えば、アーカイブを
/opt/syncに展開した場合、スクリプトは/opt/sync/service.shに配置されています。 -
service.sh を実行した後、お使いのLinux ディストリビューションで使用されているサービスマネージャーに従って、サービスを有効化して起動します:
-
次のコマンドを実行してサービスを有効化します:
systemctl enable cdatasync -
サービスマネージャーを有効化します:
init.d の場合は、次のコマンドを実行します:
sudo service cdatasync startsystemd の場合は、次のコマンドを実行します:
sudo systemctl start cdatasync
-
Note:Sync のデプロイ方法にかかわらず、ApplicationDirectory 内のファイルおよびフォルダは、アプリケーションを実行するユーザーが読み取りおよび書き込みできる必要があります。Java エディションのセットアップに含まれるサービスインストーラーは、このユーザーとして cdatasync を使用します。
アプリケーションが以前に別のユーザーアカウントで実行されていて、cdatasync ユーザーがアプリケーションを実行するために必要な権限を復元する必要がある場合は、次のコマンドを実行してください(必要に応じてディレクトリパスを変更してください):
sudo chown -R cdatasync:cdatasync /opt/sync
スタンドアロンアプリケーションの実行
サービスを作成せずにCData Sync を開始するには、ターミナルでインストールディレクトリのsync.jar ファイルを開き、次のように設定ファイルを引数として指定します。
java -jar sync.jar
組み込みJetty サーバーの構成
CData Sync は、あらゆる環境ですぐに動作するようあらかじめ設定されています。ただし、CData Sync インストールディレクトリにsync.properties ファイルを生成することで、Sync で公開されているデータへのアクセス方法をカスタマイズできます(Windows の場合、インストールディレクトリのデフォルトはC:\Program Files\CData\CData Sync です)。
sync.properties ファイルの生成
組み込みJetty サーバーをカスタマイズする前に、sync.properties ファイルを作成する必要があります。これを行うには、sync.jar ファイルがあるインストールディレクトリ(InstallationDirectory)で以下のコマンドを実行します。
java -jar sync.jar -GenerateProperties
Note:sync.properties ファイルを生成すると、Syncをアップグレードしてもこのファイルは上書きされません。
sync.properties ファイルには、次のセクションで説明するように、ポートを変更したりTLS / SSL を有効にするために変更できるパラメータが含まれています。
Note: sync.properties ファイルに機密性の高い値を平文ではなく暗号化された形式で保存できます。詳細については、機密設定値の暗号化を参照してください。
ポートの変更
組み込みサーバーがリッスンするポートを設定するには、
-
InstallationDirectoryにあるsync.properties ファイルを見つけ、テキストエディタで開きます。 -
ポートが設定されている次の行を探します。
cdata.http.port=8181 -
この値を、希望するポート番号に変更します。
非アクティブ時タイムアウトの変更
デフォルトでは、Sync の非アクティブ(セッション)タイムアウトは10分(600秒)です。
タイムアウト値を変更するには、以下のようにsync.properties ファイルのcdata.session.timeout プロパティを設定します。
cdata.session.timeout=1200
SSL / TLS の有効化
SSL / TLS 接続(HTTPS)を有効化する場合にも、以下のように、 InstallationDirectory のsync.properties ファイルを修正します。
-
cdata.tls.keyStoreType設定を、使用するキーストアのタイプに設定します。有効な値には、jks、pkcs12、およびjceks が含まれます。 -
cdata.tls.keyStorePath設定を、使用するキーストアのパスに設定します。${cdata.home} は、InstallationDirectoryを参照するために使用される場合があることに注意してください。 -
cdata.tls.keyStorePassword設定を、キーストアのパスワードに設定します。セキュリティを強化するために、この値をsync.properties に暗号化された形式で保存できます。 -
cdata.tls.port設定を、サーバーをホストするために使用するポートに設定します。 -
(オプション)
cdata.http.port設定を、プレーンテキスト接続を無効にするために空の文字列に設定します。
最終的にはこの例のようになります:
;; HTTP
cdata.http.port=
;; TLS
cdata.tls.port=8443
cdata.tls.keyStoreType=PKCS12
cdata.tls.keyStorePath=${cdata.home}/mycertificate.pfx
cdata.tls.keyStorePassword=MyPassword
Note:Sync で設定するために外部秘密鍵を取得する場合は、必ず証明書の所有者をSync (cdatasync:cdatasync) をホストするために使用されるサービスアカウントに変更してください。
LDAP 認証の有効化
Sync はLDAP 認証の使用をサポートしています。LDAP 認証を有効にするには、LDAP ユーザーと一致するユーザーがSync で定義されている必要があります。Sync でユーザーを作成する方法については、ユーザーを追加を参照してください。
LDAP 認証を有効化する場合は、以下のように、 InstallationDirectory のsync.properties ファイルを修正します。
-
ldap.hostnameをLDAP サーバーのドメイン名またはIP アドレスに設定します。 -
ldap.portをLDAP サーバーが実行されているポートに設定します。 -
ldap.authenticatedMethodをLDAP サーバーに接続するときに使用する認証メカニズムに設定します。オプションはnone およびsimple です。 -
ldap.bindDnとldap.bindPasswordを、LDAP サーバーを認証するユーザーの識別名とパスワードに設定します。セキュリティを強化するために、パスワードの値をsync.properties に暗号化された形式で保存できます。 -
ldap.debugには、サーバーログにデバッグ情報を追加するかどうかについて設定します。オプションはtrue またはfalse です。 -
ldap.user*には、ユーザーエントリを検索するために使用するプロパティを設定します。 -
ldap.role*には、ロールエントリを検索するために使用するプロパティを設定します。
最終的にはこの例のようになります:
;; LDAP
cdata.loginService.ldap.enabled=true
cdata.loginService.ldap.hostname="Server"
cdata.loginService.ldap.bindDn="CN=CommonName,CN=CommonUsers,DC=ka,DC=com"
cdata.loginService.ldap.bindPassword="Password"
cdata.loginService.ldap.debug=true
cdata.loginService.ldap.port="Port"
cdata.loginService.ldap.authenticationMethod="AuthMechanism"
cdata.loginService.ldap.userBaseDn="DC=DomainComponent,DC=DomainComponent"
cdata.loginService.ldap.userObjectClass="organizationalPerson"
cdata.loginService.ldap.userRdnAttribute="cn"
cdata.loginService.ldap.userIdAttribute="sAMAccountName"
cdata.loginService.ldap.userPasswordAttribute="userPassword"
cdata.loginService.ldap.forceBindingLogin="true"
cdata.loginService.ldap.roleBaseDn="DC=ka,DC=com"
cdata.loginService.ldap.roleNameAttribute="cn"
cdata.loginService.ldap.roleMemberAttribute="member"
cdata.loginService.ldap.roleObjectClass="group"
cdata.loginService.ldap.useLdaps="false"
アプリケーションディレクトリの設定
Sync ApplicationDirectory フォルダには、アプリケーションで使用されるすべてのデータ(設定データ、アプリケーションデータ、ログデータ、証明書など)が格納されます。ApplicationDirectory のデフォルトの場所は、Sync が組み込みWeb サーバー経由でホストされているか、外部のJava サーブレットコンテナ経由でホストされているかによって異なります。
組み込みWeb サーバーの場合、 ApplicationDirectory は InstallationDirectory と同じです。デフォルトの場所は次のとおりです。
/opt/sync
Sync が外部のJava サーブレットコンテナにホストされている場合、 ApplicationDirectory はサーバーを実行しているユーザーのホームディレクトリからの相対パスです。
~/sync
このパスでは、’~’ はアプリケーションをホストするサーバーを実行しているユーザーのホームディレクトリに解決します。
ApplicationDirectory フォルダを構成でき、これはさまざまなシナリオで役立ちます。
-
Sync の複数インスタンスのクラスタリング
-
アプリケーションデータ用の共有ネットワークドライブの使用
-
同じフォルダにアクセスする他のシステム内へのSync の組み込み
ApplicationDirectory を変更すると、アプリケーションのデータファイルが移動します。ただし、EXE ファイルやJAR ファイルなどの他のアプリケーションリソースは移動しません。これらのリソースは InstallationDirectory フォルダに格納されます。このフォルダは ApplicationDirectory と同じ場合がありますが、 ApplicationDirectory を変更しても、これらのリソースの場所は変わりません。
Sync を組み込みJetty サーバーで使用する場合、 ApplicationDirectory は InstallationDirectory にあるsync.properties ファイルに設定されます。このサーバー設定ファイル内で、cdata.app.directory の設定に希望するディレクトリのパスを設定する必要があります。次の例は、マウントされたドライブ上の共有フォルダにデータディレクトリを設定した場合を示しています。
cdata.app.directory=/mnt/shared/sync
Sync がcdata.app.directory のパスを見つけることができ、そのパスで読み取りと書き込みができる適切なアクセス許可を持つ場合、指定したディレクトリ内にデータフォルダを作成します。
アプリケーションデータベースの設定
バージョン26.2 以降、Sync はデフォルトのアプリケーションデータベースとして ApplicationDirectory にある組み込みH2 データベースを使用します。
既存のインストールでは、引き続きレガシーの組み込みDerby データベースを使用します。Sync は既存のインストールをH2 に自動的に移行しません。
Sync のアプリケーションデータベースは、以下のようなアプリケーションデータの複数のテーブルを保存します。
-
ジョブ
-
タスク
-
接続
-
履歴(ジョブとタスク両方)
-
アプリケーションログ(アプリケーションレベルのエラーとイベント)
-
監査ログ(ユーザーによるSync の設定変更)
組み込みデータベースを使用する場合、アプリケーションデータベースは ApplicationDirectory に存在します。
また、次のセクションで説明するように、Microsoft SQL Server、PostgreSQL、MySQL などのエンタープライズデータベースを使用するようSync を設定することもできます。外部データベースを設定する別の方法もありますが(例えば、AWS-AMI Edition や Azure Marketplace Edition で説明されているように)、推奨されるアプローチは移行ドキュメントの手順に従うことです。
組み込みJava サーバー
Sync を組み込みJetty サーバーで使用する場合、アプリケーションデータベースは InstallationDirectory にあるsync.properties ファイルに設定されます。このサーバー設定ファイル内で、cdata.app.db の設定に、希望するデータベースの適切な接続パラメータを含むJava Database Connectivity (JDBC) 接続文字列を設定する必要があります。次の例は、この設定をMySQL、PostgreSQL、およびSQL データベースについて示しています。
MySQL
cdata.app.db=jdbc:cdata:mysql:server=localhost;port=3306;database=mysql;user=MyUserName;password=MyPassword
PostgreSQL
cdata.app.db=jdbc:cdata:postgresql:server=localhost;port=5432;database=postgresql;user=MyUserName;password=MyPassword
SQL Server
cdata.app.db=jdbc:cdata:sql:server=localhost;database=sqlserver;user=MyUserName;password=MyPassword
Sync がcdata.app.db 接続文字列で正常に接続を確立できる場合、そのデータベースをアプリケーションデータベースとして使用します。
機密設定値の暗号化
CData Sync は、sync.properties ファイルに機密性の高い設定値を暗号化された形式で保存することをサポートしています。機密設定値を暗号化することで、通常の設定動作を維持しながら、sync.properties 内の認証情報を保護できます。
組み込みWeb サーバーは、設定を読み取る際に暗号化された値を自動的に復号化します。平文の値を暗号化された同等の値に置き換えた後、追加の手順は必要ありません。
以下の設定プロパティに暗号化された値を使用できます。
-
アプリケーションデータベース接続:
cdata.app.db -
TLS キーストアパスワード:
cdata.tls.keyStorePassword -
LDAP ログインサービスの設定:
cdata.loginService.ldap.*
これらのプロパティはそれぞれ、平文の値または暗号化された値を受け入れます。暗号化された値が指定された場合、Sync は実行時にSync が値を使用する前に復号化します。
-EncryptConnectionString パラメーターを使用して、コマンドラインから暗号化された値を生成できます。このパラメーターは、接続文字列だけでなく任意の文字列を受け入れます。
例:
java -jar sync.jar -EncryptConnectionString "YourSensitiveValue"
この例では、暗号化された値をコンソールに出力します。出力の最後の行に暗号化された文字列が含まれます。
出力:
Encrypting value...
Encryption successful.
SECURE:AbCdEfGhIjKlMnOpQrStUvWxYz1234567890==
暗号化された値をコピーして、sync.properties ファイル内の対応する平文の値と置き換えます。
Sync がsync.properties から設定値を読み取る際、SECURE: または ENCRYPTEDA: プレフィックスを確認します。プレフィックスが存在する場合、Sync は内部で値が使用される前に復号化します。
暗号化された値は、設定の処理およびシリアライズ中も保持されます。この動作により、設定データが書き込まれ再読み込みされる際も、機密性の高い設定が暗号化されたままになります。
ログインのロックアウト
Sync は、ブルートフォースアタックを防ぐために、不正なパスワードを何度も入力するユーザーを自動的にロックアウトします。デフォルトでは、5分以内に6回不正なパスワードを入力したユーザーは30分間ロックアウトされます。
Web サーバーの動作を規定するXML 設定ファイルを編集することで、ロックアウトの設定を変更できます。この3つの設定はロックアウトに関係します。
-
LockoutFailedAttempts - ロックアウトのトリガーとなる不正なパスワードの数。ロックアウトを無効にするには、LockoutFailedAttempts を0に設定します。
-
LockoutMinutes - ロックアウトする時間。デフォルトは30分です。
-
LockoutTimeCheckPeriod - 失敗した試行回数を0にリセットするまでの時間。デフォルトは5分です。
組み込みJetty サーバーの場合、sync.properties ファイル内のロックアウト設定を変更するには、以下のように、name:value ペアのカンマ区切りのリストをinitParameters に追加します。
cdata.initParameters=LockoutFailedAttempts:0
一般的な課題と解決方法
このセクションでは、Java 環境にSync をデプロイする際に遭遇する可能性がある一般的な課題をリストアップします。それぞれの課題について推奨ソリューションを記載します。その他のヘルプについては、CData テクニカルサポート:[email protected] にお問い合わせください。
課題
Sync が起動しない、または期待されるものとは異なるAppDirectory を使用して起動する
このエラーは、Sync が ApplicationDirectory にアクセスするために必要な権限を持っていない可能性があります( ApplicationDirectory は、ジョブ、接続、変換などの設定に関する重要な情報を保存するフォルダです)。このエラーの原因として考えられるのは、サービスをセットアップする前にローカルユーザーとしてSync を実行している場合です。この場合、アプリケーションで作成される特定のリソースが、ローカルユーザーの下に作成されている可能性があります。結果として、Sync をサービスとして実行する場合にこれらのリソースを利用できません。
推奨ソリューション
Linux オペレーティング環境で、サービスアカウント(またはSync を実行させるための他のアカウント)が ApplicationDirectory にアクセスできることを確認する最も簡単な方法は、chown コマンドを使用することです。例えば、 ApplicationDirectory がLinux のデフォルトの場所にあってSync がサービスアカウントで実行されるべき場合、以下のコマンドでエラーが解決されるはずです。
sudo chown -R cdatasync:cdatasync /opt/sync