Confluence 向けに OpenSearch を設定する

Confluence インスタンスのサイズや規模が大きくなるにつれて、既定の検索エンジンである Lucene では、インデックスの作成や検索結果を返すのが遅くなる可能性があります。この問題に対処するために、Confluence Data Center ではオプトイン機能として代替の検索エンジンである OpenSearch の提供を開始しました。OpenSearch は、マルチノード インスタンスを利用して、プロセス集約型のインデックス作成を管理します。ユーザー インターフェースにおいて、ユーザーの検索エクスペリエンスは変わりません。

On this page:

推奨事項

  • Confluence 9.0 以降
  • OpenSearch 2.11 以降

OpenSearch をセットアップする

OpenSearch の設定には次の 3 つの操作が必要です。

  1. OpenSearch クラスターをプロビジョニングします。

  2. OpenSearch を使用するように Confluence を構成します。

  3. Lucene のインデックスを移行します。

このページでは、これらすべてのアクションについてご説明します。

OpenSearch クラスターをプロビジョニングする

Confluence では、OpenSearch クラスターをプロビジョニングするときに、必要なインデックスを自動的に作成します。

  1. OpenSearch クラスターをオンプレミスまたは管理対象サービス (AWS OpenSearch サービスなど) としてプロビジョニングします。
    詳細な手順については、クラスターの設定に関する OpenSearch のドキュメンテーションを参照してください。

  2. 適切なレベルのセキュリティでクラスターを構成します。
    推奨されるセキュリティ構成については「OpenSearch クラスターのセキュリティを確保する」をご参照ください。

OpenSearch を使用するように Confluence を構成する

OpenSearch を使用するように Confluence を構成する方法は以下のとおりです。

  • OpenSearch を使用していることを Confluence に伝える

  • Confluence に OpenSearch クラスターの場所と認証の詳細を提供する

confluence.cfg.xml ファイルのプロパティを設定するかシステム プロパティを通じてこれを実行できます。なお、両方とも存在する場合は、システム プロパティが優先されます。

これらの最小構成オプションは、次の表に記載されています。他の構成オプションも使用できます。システム プロパティの完全なリストについては「認識済みのシステム プロパティ」をご参照ください。

OpenSearch を使用するように Confluence に伝える

search.platform プロパティを opensearch に設定します (既定は lucene)。

クラスターの場所と認証の詳細を提供する

OpenSearch クラスターで認証するには、基本認証 (ユーザー名/パスワード) か AWS ID およびアクセス管理 (IAM) のいずれかを使用します。

オプション 1: 基本認証で認証する

プロパティ
  • opensearch.http.url (This is t (OpenSearch クラスターの HTTP(S) URL、またはコンマで区切られた複数のURL)

  • opensearch.username

  • opensearch.password

  • confluence.cfg.xml の場合
<property name="opensearch.http.url">https://10.1.1.10:9200,https://10.1.1.11:9200</property>
<property name="opensearch.username">admin</property>
<property name="opensearch.password">my-password</property>
-Dopensearch.http.url=https://10.1.1.10:9200,https://10.1.1.11:9200 \
-Dopensearch.username=admin \
-Dopensearch.password=my-password


オプション 2: AWS リクエスト署名で Amazon OpenSearch サービスへの認証を行う

AWS リクエスト署名では、Amazon OpenSearch サービスを Confluence で使用できます。そのため、Amazon OpenSearch サービス クラスターを保護して、AWS EC2 内で Confluence が実行されているノードの IAM ユーザーからのリクエストのみを許可できるようになります。Amazon OpenSearch サービスをリクエスト署名で使用するには、次のプロパティを指定する必要があります

プロパティ
  • opensearch.aws.host (OpenSearch ドメインの URL)

  • opensearch.aws.region (OpenSearch ドメインの AWS リージョン)


  • confluence.cfg.xml の場合
<property name="opensearch.aws.host">vpc-confluence.us-east-1.es.amazonaws.com</property>
<property name="opensearch.aws.region">us-east-1</property>
-Dopensearch.aws.host=vpc-confluence.us-east-1.es.amazonaws.com \
-Dopensearch.aws.region=us-east-1

複数の Confluence インスタンスを設定する

同じ OpenSearch インスタンスを使用するように複数の Confluence インスタンスを設定できます。その場合は、インデックスの競合を避けるために、各インスタンスに異なるインデックス名を設定してください。インスタンスのインデックス名は、次の 2 つの方法で変更できます。

  • システム プロパティを使用

  • confluence.cfg.xml ファイルを使用

両方で異なる設定になっている場合、Confluence ではシステム プロパティの値が使用されます。

次の 4 つのプロパティでインデックス名を設定する必要があります。

  • opensearch.index.content.name

  • opensearch.index.change.name

  • opensearch.index.custom.prefix

  • opensearch.index.journal.name

たとえば、システム プロパティでは次のようになります。

-Dopensearch.index.content.name=confluence-instance1-content -Dopensearch.index.change.name=confluence-instance1-change -Dopensearch.index.custom.prefix=confluence-instance1-custom- -Dopensearch.index.journal.name=confluence-instance1-journal

設定を確認する

Confluence が OpenSearch で構成されているかどうかは [システム情報] ページで確認できます。[検索プラットフォーム] に「OpenSearch」と表示されているかをご確認ください。[インスタンスヘルス] ページで、OpenSearch が正しく機能しているかどうかを確認することもできます。

Lucene インデックスを移行する

OpenSearch を使用するように Confluence を再構成したので、今度はインデックスに既存のデータを再入力します。

ダウンタイムを伴うシンプルなインデックス移行

最も簡単な方法は、OpenSearch を使用するようにインスタンスを再構成したあと、ただちにインデックスを再作成することです。ただし、インデックスが完全に再作成されるまで、検索機能が一時的に利用できなくなったり、不完全な結果が返されたりします。これが単一ノード上のインスタンスで利用できる唯一のアプローチです。コンテンツのインデックス作成管理者 UI を使用してインデックスを再作成できます。

インスタンスがクラスター設定で実行されている場合は、次の手順に従うことで検索のダウンタイムを回避できます。

ダウンタイムを伴わないインデックス移行

Confluence インスタンスがクラスター構成で実行されている場合は、この移行プロセス中に検索機能のメンテナンスを実行できます。以下の手順ではこのプロセスについて説明しています。ダーク ノード、つまりロード バランサーからの通常のユーザー トラフィックを処理しない Confluence ノードのプロビジョニングを理解しておいてください

OpenSearch のインデックスを再構築している間も、ユーザーは変更を加えることができます。変更はジャーナルに書き込まれ、インデックスの再作成が完了するとその変更が再度書き込まれるので、最新の変更が確実に反映されます。

  1. Lucene を実行している Confluence クラスターからダーク ノードをプロビジョニングします。

  2. OpenSearch でダーク ノードを構成してターゲット OpenSearch クラスターに接続されるようにします。

  3. ダーク ノードにログインして、ダーク ノードが OpenSearch で実行されていることを [システム情報] ページで確認します。

  4. コンテンツ インデックス管理者 UI でインデックス再作成のプロセスを開始します。
    これによって、OpenSearch インデックスに既存のデータが再入力されます。なお、このプロセスには時間を要する場合があります。

  5. OpenSearch インデックスが完全に再作成されたら、このノード正常にドキュメントを検索できることを確認します

  6. 残りのクラスター ノードを Lucene から OpenSearch に設定します。

  7. 必要に応じて、ダーク ノードのプロビジョニングを解除します。

注目すべき変更点

Lucene から OpenSearch に切り替える際には、いくつかの注意すべき重要な違いがあることを知っておく必要があります。これは、既存のプロセスを変更しなければならない場合もあるためです。

本番環境バックアップ ストラテジー

現在、ホーム ディレクトリに Lucene インデックスのバックアップを取ることができます。これにより、復元時に完全なインデックス再作成を実行する必要がなくなります。OpenSearch に切り替えたあとは、スナップショットを使用して別のストラテジーを採用する必要があります。詳細は「本番環境バックアップ ストラテジー」をご参照ください。

検索ウィンドウの制限

OpenSearch の結果を表示するウィンドウの既定の制限は 10,000 件です。これは検索で表示できる結果の最大数となり、既定ではメモリ使用量を制限するように設定されています。検索リクエストがこの制限を超えると (たとえば、既存のアプリがその制限を超えるものを検索するようにプログラムされている場合)、次のエラーが表示されます。


Result window is too large, from + size must be less than or equal to: [10000] but was [10010]. See the scroll api for a more efficient way to request large data sets. This limit can be set by changing the [index.max_result_window] index level setting.


この制限によってご利用の環境に問題が起きている場合は、アトラシアンまたはアプリ開発者にお問い合わせください。開発者がこの制限を回避するために採用できる、大量の検索結果を処理するメモリ効率の良い方法が用意されています。


または、当面の回避策として、OpenSearch インデックスの index.max_result_window 設定を増やすこともできます。検索リクエストは、検索結果のウィンドウに比例してヒープ メモリと時間を消費するため、OpenSearch データ ノードに十分なメモリがあることをご確認ください。このインデックス設定については、OpenSearch のドキュメントをご参照ください。

.

最終更新日: 2024 年 10 月 31 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.