Alibaba Cloud Elasticsearch (ES) の YML 設定を変更して、Alibaba Cloud Elasticsearch インスタンスの設定をカスタマイズできます。
手順
- [クラスター設定] ページで、[YML 設定] の右側にある [設定の編集] をクリックします。
- [YML設定] ダイアログボックスで、次のようにパラメーターを設定します。
- 自動インデックス:新しいファイルが Alibaba Cloud Elasticsearch インスタンスにアップロードされたが、ファイルにインデックスが作成されていない場合、システムは自動的に新しいインデックスを作成できます。 この機能を無効にすることを推奨します。 この機能によって作成されたインデックスは、要件を満たさない場合があります。
- 削除する時にインデックス名の指定 :インデックスを削除する際に、インデックスの名前を指定する必要があるかどうかを示します。 [削除する時、インデックス名にワイルドカード文字を使用できる] を選択した場合、ワイルドカード文字を使用して、一致するすべてのインデックスを削除できます。 削除されたインデックスを復元することはできません。 注意して進めてください。
- 監査ログ検索 :この機能を有効にすると、Alibaba Cloud Elasticsearch インスタンスでインデックスを作成、削除、変更、または検索する際に、インデックスログエントリが作成されます。 これらのログエントリはディスク容量を消費し、インスタンスのパフォーマンスに影響します。 この機能を無効にすることを推奨します。 この機能を設定するときはご注意ください。
- Watcher の有効化:この機能を有効にすると、X-Pack Watcher 機能を使用できます。
.watcher-history*
インデックスを定期的に削除してください。 このインデックスは大量のディスク容量を消費します。 - その他の設定:サポートしている設定項目は次のとおりです。 詳細は、「CORS のカスタマイズ (リージョン全体)」、「ホワイトリストのリモート Elasticsearch クラスターからインデックスを再作成する」、「監査ログのインデックス作成をカスタマイズする、「キューサイズをカスタマイズする」、および「パラメーター」をご参照ください。
注 特に指定がない限り、以下の設定項目は Elasticsearch V5.5.3 および V6.3.2 とのみ互換性があります。
- 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
- action.auto_create_index
- action.destructive_requires_name
- thread_pool.bulk.queue_size (only compatible with Elasticsearch V5.5.3 with X-Pack)
- thread_pool.write.queue_size (only compatible with Elasticsearch V6.3.2 with X-Pack)
- thread_pool.search.queue_size
- 下にスクロールして、 [この操作は、インスタンスを再起動します。確認してから操作を行ってください。 ] チェックボックスをオンにして操作を確認し、[保存] をクリックします。
[保存] をクリックすると、インスタンスが再起動されます。 [タスク] ページで進行状況を確認できます。 インスタンスが再起動されると、YML 設定が更新されます。
CORS のカスタマイズ (リージョン全体)
- 次の表の設定は、Alibaba Cloud Elasticsearch が HTTP をサポートするために提供しているカスタム設定です。
- 次の表の設定は、 静的設定のみをサポートしています。 したがって、設定を有効にしたい場合、 elasticsearch.yml ファイルに設定を追加する必要があります。
- 以下の設定は、クラスターのネットワーク設定に依存しています。
設定項目 | 説明 |
---|---|
http.cors.enabled |
オリジン間リソース共有 (CORS) 設定。 この設定は、別のオリジンのブラウザーがリクエストを送信することを Elasticsearch が許可するかどうかを示します。
有効な値: true 、false 。
|
http.cors.allow-origin |
オリジン設定。 この設定は、許可するオリジンを指定します。 デフォルトでは、オリジンは許可されていません。 値の先頭と末尾にスラッシュ ( 注 アスタリスク (
* ) は有効な文字ですが、クラスターが任意のオリジンに対してオープンであることを意味するため、セキュリティリスクと見なされます。 アスタリスクの使用は推奨していません。
|
http.cors.max-age |
ブラウザーはOPTIONS リクエストを送信して、CORS 設定を照会できます。 この設定は、取得された CORS 設定のキャッシュ時間を指定します。 デフォルトは 1728000 秒 (20 日間) です。
|
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 |
資格情報の設定。 この設定は、Elasticsearch が Access-Control-Allow-Credentials ヘッダーを返すことを許可するかどうかを示します。 デフォルトは false です。つまり、Elasticsearch はヘッダーを返すことが許可されていません。 値を true にして、Elasticsearch がヘッダーを返すことができるようにします。
|
以下は、カスタム CORS 設定の例です。
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, Authorization"
詳細については、Elasticsearch 公式ドキュメントの 「HTTP」をご参照ください。
ホワイトリストのリモート Elasticsearch クラスターからインデックスを再作成する
インデックス再作成コンポーネントを使用すると、リモート Elasticsearch クラスターからインデックスを再作成できます。 この機能は、すべての Elasticsearch バージョンでサポートしています。
インデックス再作成機能を使用すると、以前の Elasticsearch バージョンのインデックスのデータを、新しくリリースされた Elasticsearch バージョンのインデックスにコピーできます。 以下に例を示します。 詳細については『Reindex API』をご参照ください。
POST _reindex
{
"source": {
"remote": {
"host": "http://otherhost:9200",
"username": "user",
"password": "pass"
},
"index": "source",
"query": {
"match": {
"test": "data"
}
}
},
"dest": {
"index": "dest"
}
}
-
host
:リモートホストのアドレス。 アドレスには、プロトコル、ドメイン、およびポート情報が含まれている必要があります。 例:https://otherhost:9200
重要 リモートホストは、reindex.remote.whitelist
プロパティを使用し、ホストがこの API 操作を呼び出すことができるように elasticsearch.yml ファイルで宣言される必要があります。 ホストは、host
とport
の組み合わせを使用して宣言できます。 複数のホストを宣言するには、カンマ (,) で区切ります。 例:otherhost:9200, another:9200, 127.0.10.**:9200,localhost:**
ホワイトリストはプロトコル情報を無視するため、ホストとポートのみが使用されます。 -
username
とpassword
はオプションです。 リクエストされた Elasticsearch サービスがBasic 認証
を使用する場合、リクエストに情報を含めます。Basic認証
は、HTTPS 経由で実装する必要があります。 それ以外の場合、パスワードはプレーンテキストで送信されます。
- ホストがすでにホワイトリストに追加されている場合、
query
は検証または変更なしで Elasticsearch サービスに直接送信されます。 - リモートクラスターからのインデックス再作成は、manual slicing または automatic slicing をサポートしていません。 詳細については、 『Manual slicing』および『Automatic slicing』をご参照ください。
リモートクラスターからのインデックス再作成では、オンヒープバッファが使用されます。 デフォルトでは、最大バッチサイズは 100 MB です。 ソースクラスターのインデックスに大きなドキュメントが含まれる場合、バッチサイズを小さな値に調整する必要があります。
POST _reindex
{
"source": {
"remote": {
"host": "http://otherhost:9200"
},
"index": "source",
"size": 10,
"query": {
"match": {
"test": "data"
}
}
},
"dest": {
"index": "dest"
}
}
socket_timeout
を使用し、socket
読み取りタイムアウトを設定します。 デフォルトのタイムアウトは30
秒です。connect_timeout
を使用して、接続タイムアウトを設定します。 デフォルトのタイムアウトは1
秒です。
次の例では、socket
読み取りタイムアウトは 1 分に設定し、接続タイムアウトは 10 秒に設定しています。
POST _reindex
{
"source": {
"remote": {
"host": "http://otherhost:9200",
"socket_timeout": "1m",
"connect_timeout": "10s"
},
"index": "source",
"query": {
"match": {
"test": "data"
}
}
},
"dest": {
"index": "dest"
}
}
監査ログのインデックス作成をカスタマイズする
監査ログのインデックス作成を有効にする 監査ログのインデックス作成を有効にすると、監査イベントがインスタンスに保存され、 .security_audit_log-*
で始まるインデックスに追加されます。
- 監査プロセス中にフィルタリングは実行されません。 したがって、監査イベントに
リクエストボディ
が含まれる場合、プレーンテキストの機密データは危険にさらされる可能性があります。 - 監査イベントにインデックスが作成される際、Elasticsearch インスタンスのストレージ容量が消費されます。 Alibaba Cloud Elasticsearch は、期限切れのインデックスを自動的に削除しません。 古い監査イベントインデックスを手動で削除する必要があります。
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: 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 |
1 回の書き込みでバッチ処理される監査イベントの数を指定します。 |
xpack.security.audit.index.flush_interval |
1s |
バッファリングされた監査イベントをインデックスにフラッシュする頻度を指定します。 |
xpack.security.audit.index.rollover |
daily |
新しいインデックスにロールオーバーする頻度を指定します。 有効な値: hourly 、daily 、weekly 、およびmonthly
|
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 |
インデックスを作成する監査イベントのタイプを指定します。 監査イベントタイプの詳細については、『Auditing event types』をご参照ください。 |
xpack.security.audit.index.events.exclude |
インデックスから除外する監査イベントのタイプを指定します。 | |
xpack.security.audit.index.events.emit_request_body |
false |
authentication_failed などの特定のイベントに REST リクエストのボディを含めるかどうかを指定します。
|
監査イベントが保存されるインデックスを設定することもできます。 xpack.security.audit.index.settings
を名前空間として使用し、 elasticsearch.yml
ファイルに設定を追加します。
1
に設定しています。
xpack.security.audit.index.settings:
index:
number_of_shards: 1
number_of_replicas: 1
number_of_shards: 5
および number_of_replicas: 1
詳細については、『Auditing Security Settings』をご参照ください。
キューサイズをカスタマイズする
thread_pool.bulk.queue_size
、thread_pool.write.queue_size
、およびthread_pool.search.queue_size
設定をカスタマイズし、ドキュメント書き込みキューとドキュメント検索キューのサイズを設定できます。
次の例では、ドキュメントの書き込みと検索キューのサイズを 500
に設定しています。 必要に応じて値を調整できます。
thread_pool.bulk.queue_size:500 (X-Pack 搭載の Elasticsearch V5.5.3 とのみ互換性があります)
thread_pool.write.queue_size:500 (X-Pack 搭載の Elasticsearch V6.3.2 とのみ互換性があります)
thread_pool.search.queue_size: 500
パラメーター
設定項目 | 説明 |
---|---|
index.codec |
デフォルトでは、Elasticsearch は LZ4 圧縮でデータを圧縮します。 Elasticsearch クラスターが Ultra クラウドディスクを使用する
hot-warm クラスターである場合は、パラメーターを best_compression に設定し、DEFLATE を使用して圧縮率を高めます。 圧縮タイプを変更すると、セグメントがマージされる際に、新しい圧縮タイプを使用してデータが圧縮されます。
重要 best_compression タイプは、読み取りおよび書き込みパフォーマンスを低下させます。
|
index.codec
パラメーターを設定できます。 例は次のとおりです。
PUT $index_name/_settings
{
"index": {
"codec": "best_compression"
}
}
- リクエストを送信する前に、関連するインデックスを閉じる必要があります。 閉じない場合、エラーが発生します。
-
$ index_name
:インデックスの名前に置き換えます。