すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:YMLファイルの設定

最終更新日:Jan 11, 2025

Alibaba Cloud Elasticsearchクラスタの [クラスタ設定] ページの [YML設定] セクションでは、自動インデックス作成、監査ログのインデックス作成、またはWatcher機能を有効にできます。また、インデックス削除やその他の設定を行うこともできます。このトピックでは、クラスタのYMLファイルのパラメータ、クロスオリジンリソースシェアリング(CORS)、リモート再インデックスホワイトリスト、監査ログのインデックス作成機能、およびキューサイズの構成方法について説明します。

注意事項

Alibaba Cloud Elasticsearchのネットワークアーキテクチャは、2020年10月に調整されました。この調整により、一部のシナリオでは、reindex APIを使用してクラスタ間でデータを移行することはできません。詳細については、「新しいネットワークアーキテクチャにデプロイされたAlibaba Cloud ElasticsearchクラスタにセルフマネージドElasticsearchクラスタからデータを移行する」の「制限事項」セクションをご参照ください。

説明

中国 (張家口) リージョンと中国国外のリージョンにおけるネットワークアーキテクチャが調整された時期は不明です。 2020 年 10 月より前に作成されたクラスタと、2020 年 10 月以降に作成されたクラスタの間で、このようなリージョンで前述の操作を実行する場合は、[submit a ticket] を送信してAlibaba Cloudテクニカルサポートに連絡し、クラスタが同じネットワークアーキテクチャにデプロイされているかどうかを確認してください。

YMLファイルのパラメータの設定

  1. Alibaba Cloud Elasticsearch コンソール にログオンします。

  2. 左側のナビゲーションペインで、[elasticsearchクラスタ] をクリックします。

  3. 目的のクラスタに移動します。

    1. 上部のナビゲーションバーで、クラスタが属するリソースグループとクラスタが存在するリージョンを選択します。

    2. [elasticsearchクラスタ] ページで、クラスタを見つけ、そのIDをクリックします。

  4. 表示されるページの左側のナビゲーションペインで、[設定と管理] > [クラスタ設定] を選択します。

  5. [クラスタ設定] ページで、構成の変更[YMLファイル設定] の右側にある をクリックします。

  6. [YMLファイル設定] パネルで、次のパラメータを設定します。

    説明

    elasticsearch.ymlファイルの内容を表示する場合は、クラスタのKibanaコンソール にログインし、GET _cluster/settings?include_defaults コマンドを実行します。

    パラメータ

    説明

    自動インデックス作成

    新しいドキュメントがElasticsearchクラスタにアップロードされたときに、インデックスが存在しない場合にインデックスを自動的に作成するかどうかを指定します。

    このパラメータは、YMLファイルの action.auto_create_index 設定項目に対応します。この設定項目のデフォルト値は false です。

    デフォルトでは、システムはインデックスの自動作成を禁止しています。次のいずれかの方法を使用して、システムがインデックスを自動的に作成できるようにすることができます。

    重要

    自動的に作成されたインデックスは、ビジネス要件を満たしていない可能性があります。そのため、システムがインデックスを自動的に作成できるようにする前に、評価を実施することをお勧めします。

    • [YMLファイル設定] パネルで [自動インデックス作成] を [有効] に設定します。この操作は静的設定であり、クラスタの再起動をトリガーします。

    • 動的モードを使用して、システムがインデックスを自動的に作成できるようにします。これは、クラスタの再起動をトリガーしません。クラスタのKibanaコンソールにログイン し、次のいずれかのコマンドを実行します。

      • すべてのインデックスを自動的に作成できるようにする

        PUT /_cluster/settings
        {
          "persistent": {
            "action": {
              "auto_create_index": "true"
            }
          }
        }
        重要

        上記のコマンドを実行すると、システムはすべてのインデックスを自動的に作成できます。システムによるインデックスの自動作成を禁止する場合は、コマンドで auto_create_indexfalse に設定します。

      • 特定のインデックスのみを自動的に作成できるようにする(次のコマンドは、システムインデックスのみを自動的に作成できるようにする方法の例を示しています。)

        PUT /_cluster/settings
        {
          "persistent": {
            "action": {
              "auto_create_index": "+.*,-*"
            }
          }
        }

    インデックス削除

    インデックスを削除するときにインデックス名を指定するかどうかを指定します。このパラメータを ワイルドカードを許可 に設定すると、ワイルドカードを使用して一度に複数のインデックスを削除できます。削除されたインデックスは復元できません。注意して進めてください。

    このパラメータは、YMLファイルの action.destructive_requires_name 設定項目に対応します。この設定項目のデフォルト値は true です。

    監査ログのインデックス作成

    監査ログのインデックス作成を有効にすると、Elasticsearchクラスタで実行される作成、削除、変更、および検索操作の監査ログが生成されます。これらのログはディスク容量を消費し、クラスタのパフォーマンスに影響します。そのため、監査ログのインデックス作成を無効にし、注意して進めることをお勧めします。監査ログのインデックス作成機能に関連するパラメータの詳細については、「監査ログのインデックス作成機能の設定」セクションをご参照ください。

    重要

    一部のリージョンでは、Elasticsearchコンソールで V7.X 以降のElasticsearchクラスタの監査ログを表示できます。リージョンの詳細については、「制限事項」セクションをご参照ください。クラスタの監査ログを表示する前に、クラスタで [監査ログのインデックス作成] 機能が有効になっていることを確認する必要があります。詳細については、「ログのクエリ」セクションをご参照ください。その他のElasticsearchクラスタについては、関連コマンドを実行して監査ログを表示する必要があります。たとえば、そのようなクラスタの監査ログを表示するには、クラスタのKibanaコンソールにログインし、Kibanaコンソールで関連コマンドを実行して、名前が .security_audit_log- で始まるインデックスを表示します。

    このパラメータは、YMLファイルの xpack.security.audit.enabled 設定項目に対応します。この設定項目のデフォルト値は false です。

    Watcher

    Watcherを有効にすると、X-Pack Watcher機能を使用できます。ディスク容量を解放するために、.watcher-history* インデックスを定期的にクリアする必要があります。

    このパラメータは、YMLファイルの xpack.watcher.enabled 設定項目に対応します。この設定項目のデフォルト値は false です。

    その他の設定

    以下の説明では、サポートされている設定項目の一部を紹介します。特に明記されていない限り、これらの項目は Elasticsearch V5.X、V6.X、および V7.X クラスタで使用できます。

    • CORSの設定

      • http.cors.enabled

      • http.cors.allow-origin

      • http.cors.max-age

      • http.cors.allow-methods

      • http.cors.allow-headers

      • http.cors.allow-credentials

    • リモート再インデックスホワイトリストの設定

      reindex.remote.whitelist

    • 監査ログのインデックス作成機能の設定

      Elasticsearch V7.X および V8.X クラスタは、xpack.security.audit.logfile.events.include パラメータのみをサポートしています。Elasticsearch V5.X および V6.X クラスタは、次のパラメータをサポートしています。

      • xpack.watcher.enabled

      • xpack.notification

      • xpack.security.audit.enabled

      • xpack.security.audit.index.bulk_size

      • xpack.security.audit.index.flush_interval

      • xpack.security.audit.index.rollover

      • xpack.security.audit.index.events.include

      • xpack.security.audit.index.events.exclude

      • xpack.security.audit.index.events.emit_request_body

      • xpack.security.audit.index.settings.index

    • Lightweight Directory Access Protocol(LDAP)認証機能の設定

      V5.X 以外のバージョンのElasticsearchクラスタは、次のパラメータをサポートしています。

      • xpack.security.authc.realms.ldap1

      • xpack.security.authc.realms.active_directory1

      • xpack.security.authc.realms.pki1

      • xpack.security.authc.realms.saml1

      • xpack.security.authc.realms.kerberos1

      • xpack.security.authc.token.enabled

    • キューサイズの設定

      • thread_pool.bulk.queue_size (Elasticsearch V5.X および V6.X クラスタで使用可能)

      • thread_pool.write.queue_size (Elasticsearch V6.X、V7.X、および V8.X クラスタで使用可能)

      • thread_pool.search.queue_size

    • カスタム SQL プラグインの設定

      xpack.sql.enabled

      デフォルトでは、ElasticsearchクラスタはX-Packが提供する組み込みSQLプラグインを使用します。カスタムSQLプラグインをElasticsearchクラスタにアップロードする場合は、xpack.sql.enabledfalse に設定します。

    重要
    • クラスタのYMLファイルを設定した後、システムはクラスタのローリング再起動を実行します。クラスタのインデックスにレプリカシャードがあり、クラスタの負荷が正常な場合、クラスタは再起動中もサービスを提供し続けることができます。次の項目は、クラスタの負荷が正常であることを示しています。クラスタ内の各ノードのCPU使用率は約 60%、クラスタ内の各ノードのヒープメモリ使用率は約 50%、各ノードの NodeLoad_1m の値はノードの vCPU 数よりも小さいです。再起動に必要な時間は、クラスタのサイズ、データ量、および負荷によって異なります。オフピーク時にクラスタのYMLファイルを設定することをお勧めします。

    • クラスタのインデックスにレプリカシャードがなく、クラスタの負荷が過度に高く、大量のデータがクラスタに書き込まれるか、またはクラスタでクエリされる場合、クラスタの変更中にクラスタへのアクセスがタイムアウトする可能性があります。クラスタの変更を実行する前に、クライアントのアクセス再試行メカニズムを設定することをお勧めします。これは、ビジネスへの影響を軽減するのに役立ちます。

  7. [この操作を実行するとクラスタが再起動されます。続行しますか?] を選択し、[OK] をクリックします。

    次に、システムはElasticsearchクラスタを再起動します。[タスク] ダイアログボックスで再起動の進行状況を確認できます。クラスタが再起動されると、YMLファイルの設定が更新されます。

CORSの設定

CORSを設定して、他のオリジンにあるブラウザがElasticsearchクラスタにアクセスできるようにすることができます。CORSは、YMLファイル設定 パネルで設定できます。次の表に、設定できるパラメータを示します。

重要
  • 次の表のパラメータは、HTTPをサポートするためにAlibaba Cloud Elasticsearchによって提供されるカスタムパラメータです。

  • 次の表のパラメータは、静的設定のみをサポートしています。パラメータ設定を有効にするには、elasticsearch.yml ファイルに設定を追加する必要があります。

  • 次の表のパラメータは、Elasticsearchクラスタのネットワーク設定 に依存します。

パラメータ

デフォルト値

説明

http.cors.enabled

false

CORSを有効にするかどうかを指定します。CORSを使用すると、他のオリジンにあるブラウザがElasticsearchクラスタにアクセスできます。有効な値:

  • true:CORSが有効になっていることを示します。この場合、システムはOPTIONS CORSリクエストを処理できます。リクエストのオリジンが http.cors.allow-origin で宣言されている場合、システムはヘッダーに Access-Control-Allow-Origin が含まれるレスポンスを返します。

  • false:CORSが無効になっていることを示します。この場合、システムはリクエストヘッダーのオリジンを無視し、ヘッダーに Access-Control-Allow-Origin が含まれないレスポンスを返します。クライアントがリクエストヘッダーにオリジン情報が含まれているプレフライトリクエストを送信できない場合、またはサーバーから返されたレスポンスヘッダーの Access-Control-Allow-Origin を検証しない場合、クロスオリジンアクセスセキュリティが侵害されます。CORSが無効になっている場合、クライアントはOPTIONSリクエストを送信して Access-Control-Allow-Origin が存在するかどうかを確認することしかできません。

http.cors.allow-origin

""

リクエストが許可されるオリジン。デフォルトでは、オリジンからのリクエストは許可されていません。このパラメータを正規表現(例:/https?:\/\/localhost(:[0-9]+)?/)に設定できます。この正規表現は、システムが正規表現に一致するリクエストに応答することを示します。

警告

アスタリスク(*)は有効な文字ですが、セキュリティリスクを引き起こす可能性があります。アスタリスクを使用すると、クラスタはすべてのオリジンに開放されます。アスタリスクを使用しないことをお勧めします。

http.cors.max-age

1728000 (20日)

ブラウザはOPTIONSリクエストを送信してCORS設定をクエリできます。このパラメータは、取得したCORS設定のキャッシュ期間を指定します。単位:秒。

http.cors.allow-methods

OPTIONS, HEAD, GET, POST, PUT, DELETE

リクエストメソッド。

http.cors.allow-headers

X-Requested-With, Content-Type, Content-Length

リクエストヘッダー。

http.cors.allow-credentials

false

資格情報設定項目。この項目は、Access-Control-Allow-Credentials をレスポンスヘッダーに含めることができるかどうかを指定します。有効な値:

  • true:Access-Control-Allow-Credentials をレスポンスヘッダーに含めることができることを示します。

  • false:Access-Control-Allow-Credentials をレスポンスヘッダーに含めることができないことを示します。

リモート再インデックスホワイトリストの設定

reindex APIを呼び出して、リモートElasticsearchクラスタから現在のElasticsearchクラスタにインデックスデータを移行する前に、現在のElasticsearchクラスタのリモート再インデックスホワイトリストを設定する必要があります。ホワイトリストは、YMLファイル設定 パネルで設定できます。次の表に、設定できるパラメータを示します。

パラメータ

デフォルト値

説明

reindex.remote.whitelist

[]

リモートクラスタのアドレス。

ホスト IP アドレス:ポート番号 の形式でアドレスを指定します。複数のアドレスを指定する場合は、カンマ(,)で区切ります(例:otherhost:9200,another:9200,127.0.10.**:9200,localhost:**)。ホワイトリストはプロトコルを識別しません。

リモートクラスタがシングルゾーンElasticsearchクラスタの場合、<クラスタのドメイン名>:9200 の形式でクラスタのアドレスを指定します。リモートクラスタがマルチゾーンElasticsearchクラスタの場合、クラスタ内のすべてのデータノードの IP アドレスとクラスタのポート番号を使用して、クラスタのアドレスを指定します。次の説明では、設定例を示します。

  • シングルゾーンクラスタ单可用区配置示例

    reindex.remote.whitelist: ["es-cn-09k1rgid9000g****.elasticsearch.aliyuncs.com:9200"]
  • マルチゾーンクラスタ多可用区reindex白名单配置

    reindex.remote.whitelist: ["10.0.xx.xx:9200","10.0.xx.xx:9200","10.0.xx.xx:9200","10.15.xx.xx:9200","10.15.xx.xx:9200","10.15.xx.xx:9200"]
    説明

    リモート再インデックスホワイトリストを設定した後、reindex APIを呼び出してデータを再インデックスできます。詳細については、「reindex APIを使用してAlibaba Cloud Elasticsearchクラスタ間でデータを移行する」をご参照ください。

監査ログのインデックス作成機能の設定

監査ログのインデックス作成機能はデフォルトで無効になっています。Elasticsearchクラスタの監査ログを表示する場合は、クラスタでこの機能を有効にする必要があります。この機能がクラスタで有効になると、作成、削除、変更、クエリ操作など、クラスタで実行される操作の監査ログが生成されます。Elasticsearchクラスタのバージョンによって、監査ログのインデックス作成機能を有効化および設定し、監査ログを表示するための操作は異なります。次の説明では、詳細な操作について説明します。

説明

監査ログのインデックス作成機能の詳細については、「セキュリティ設定の監査」をご参照ください。

V7.X以降のElasticsearchクラスタ

  1. [YMLファイル設定] パネルに移動します。

    詳細については、「YMLファイルのパラメータの設定」セクションをご参照ください。

  2. [監査ログのインデックス作成][有効] に設定して、監査ログのインデックス作成機能を有効にします。

  3. 監査ログのインデックス作成機能を設定します。

    監査ログのインデックス作成機能が有効になると、xpack.security.audit.logfile.events.include パラメータのデフォルト設定が [その他の設定] に表示されます。ビジネス要件に基づいて設定を変更できます。次のコードは例を示しています。

    xpack:
      security:
        audit:
          logfile:
            events:
              include the following: >-
                access_denied,anonymous_access_denied,authentication_failed,connection_denied,tampered_request,run_as_denied,run_as_granted
    重要
    • V7.X 以降のクラスタは、xpack.security.audit.logfile.events.include パラメータのみをサポートしています。

    • クラスターの監査ログのインデックス作成機能のデフォルト構成を使用する場合、システムはクラスターに送信された拒否または失敗したリクエストの監査ログのみを生成します。 成功したリクエストの監査ログを取得する場合は、クラスターに access_granted イベントを追加する必要があります。 イベントが追加されると、クラスターに関するすべてのアクセス情報が保存されるため、クラスターのディスク使用量が増加します。 そのため、問題のトラブルシューティングが完了したら、監査ログのインデックス作成機能を無効にすることをお勧めします。

  4. クラスタの監査ログを表示します。

    V7.X以降のクラスタで [監査ログのインデックス作成] 機能を有効にすると、Elasticsearchコンソールの [ログ] ページでクラスタの監査ログを表示できます。詳細については、「ログのクエリ」セクションをご参照ください。監査ログのインデックス作成機能は、一部のリージョンでのみ使用できます。リージョンの詳細については、「制限事項」セクションをご参照ください。

Elasticsearch V5.X および V6.X クラスタ

  1. [YMLファイル設定] パネルに移動します。

    詳細については、「YMLファイルのパラメータの設定」セクションをご参照ください。

  2. [監査ログのインデックス作成][有効] に設定すると、監査ログのインデックス作成機能が有効になります。

    次のコードは、監査ログのインデックス作成機能のデフォルト設定を示しています。ビジネス要件に基づいて設定を変更できます。

    xpack.security.audit.index.bulk_size: 5000
    xpack.security.audit.index.events.emit_request_body: false
    xpack.security.audit.index.events.exclude: run_as_denied,anonymous_access_denied,realm_authentication_failed,access_denied,connection_denied
    xpack.security.audit.index.events.include the following: authentication_failed,access_granted,tampered_request,connection_granted,run_as_granted
    xpack.security.audit.index.flush_interval: 180s
    xpack.security.audit.index.rollover: hourly
    xpack.security.audit.index.settings.index.number_of_replicas: 1
    xpack.security.audit.index.settings.index.number_of_shards: 10

    パラメーター

    デフォルト値

    説明

    xpack.security.audit.index.bulk_size

    1000

    監査イベントをバッチで監査ログインデックスに書き込むことができます。このパラメーターは、各バッチで書き込むことができる監査イベントの最大数を指定します。

    xpack.security.audit.index.flush_interval

    1s

    バッファリングされた監査イベントが監査ログインデックスにフラッシュされる頻度。

    xpack.security.audit.index.rollover

    daily

    監査イベントが新しい監査ログインデックスにロールオーバーされる頻度。有効な値: hourlydailyweeklymonthly

    xpack.security.audit.logfile.events.include

    access_denied,anonymous_access_denied,authentication_failed, connection_denied,tampered_request,run_as_denied,run_as_granted

    監査ログに収集できる監査イベントの種類。監査ログのインデックス作成機能は、一部のリージョンでのみ使用できます。リージョンの詳細については、「制限」をご参照ください。サポートされている監査イベントの種類の詳細については、「監査イベントの種類 ( 7.x )」をご参照ください。

    xpack.security.audit.index.events.include

    access_denied, access_granted, anonymous_access_denied, authentication_failed, connection_denied, tampered_request, run_as_denied, run_as_granted

    監査ログインデックスに書き込むことができる監査イベントの種類。このパラメーターは、Elasticsearch V5.X および V6.X クラスターでのみ使用できます。サポートされている監査イベントの種類の詳細については、「監査イベントの種類 ( 6.x )」をご参照ください。

    xpack.security.audit.index.events.exclude

    null(システムが監査イベントを処理しないことを示します)

    監査ログインデックスに書き込むことができない監査イベントの種類。

    xpack.security.audit.index.events.emit_request_body

    false

    authentication_failed など、特定の監査イベントがトリガーされたときに REST リクエスト本文を無視するか含めるかを指定します。

    警告

    監査イベントにリクエスト本文が含まれている場合、機密データが公開される可能性があります。

  3. クラスタの監査ログを表示します。

    V5.X または V6.X クラスタで監査ログのインデックス作成機能が有効になっている場合、監査イベントはクラスタの監査ログインデックスに保存されます。インデックスの名前は .security_audit_log- で始まります。クラスタの Kibana コンソールでこれらのインデックスにアクセスすることにより、クラスタの監査ログを表示できます。

    重要

    監査ログインデックスはクラスタのストレージを消費し、Elasticsearch は期限切れのインデックスを自動的にクリアしません。そのため、期限切れの監査ログインデックスを手動でクリアする必要があります。

  4. (オプション) 監査ログインデックスのシャードを構成します。

    V5.X または V6.X クラスタの監査ログインデックスのシャードを構成するには、xpack.security.audit.index.settings パラメータを使用できます。次のコードは構成例を示しています。この例では、インデックスのプライマリシャードとレプリカシャードの数は 1 に設定されています。

    xpack.security.audit.index.settings:
      index:
        number_of_shards: 1  // シャードの数
        number_of_replicas: 1 // レプリカの数
    
    説明

    監査ログインデックスの構成をカスタマイズする場合、xpack.security.audit.enabledtrue に設定して監査ログのインデックス作成を有効にした後、クラスタの YML ファイルに構成を追加します。構成をカスタマイズしない場合、システムはデフォルト設定の number_of_shards: 5number_of_replicas: 1 を使用してインデックスを作成します。

キューサイズの構成

ドキュメント書き込みキューとドキュメント検索キューのサイズを調整するために、キューサイズをカスタマイズできます。YMLファイル構成 パネルでキューサイズを指定できます。次のコードは構成例を示しています。例では、ドキュメント書き込みキューのサイズは 500 に設定され、ドキュメント検索キューのサイズは 1000 に設定されています。これらの値は、ビジネス要件に基づいて変更できます。

  • Elasticsearch V5.X および V6.X クラスタ

    thread_pool.bulk.queue_size: 500
    thread_pool.search.queue_size: 1000
  • Elasticsearch V6.X、V7.X、および V8.X クラスタ

    thread_pool.write.queue_size: 500
    thread_pool.search.queue_size: 1000

パラメータ

デフォルト値

説明

thread_pool.bulk.queue_size

200

ドキュメント書き込みキューのサイズ。このパラメータは、Elasticsearch V5.X および V6.X クラスタで使用できます。

thread_pool.write.queue_size

200

ドキュメント書き込みキューのサイズ。このパラメータは、Elasticsearch V6.X、V7.X、および V8.X クラスタで使用できます。

thread_pool.search.queue_size

1000

ドキュメント検索キューのサイズ。

説明

このパラメータの最大値は 1000 です。このパラメータを 1000 より大きい値に設定すると、値 1000 が使用されます。

説明
  • 上記の例の パラメータ設定は推奨設定です。特別なシナリオで設定を変更する場合は、チケットを送信してテクニカルサポートに連絡してください。

  • Elasticsearch コンソールの Elasticsearch クラスタの YML 構成ファイルで thread_pool.search.queue_size パラメータを 1000 より大きい値に設定すると、値 1000 が使用されます。特別なシナリオで設定を変更する場合は、チケットを送信してテクニカルサポートに連絡してください。チケットの送信方法については、テクニカルサポートの範囲と連絡方法 をご参照ください。