自動フォローパターンAPIの作成
クロスクラスター複製の自動フォローパターンを作成します。
リクエスト
Python
resp = client.ccr.put_auto_follow_pattern(
name="<auto_follow_pattern_name>",
remote_cluster="<remote_cluster>",
leader_index_patterns=[
"<leader_index_pattern>"
],
leader_index_exclusion_patterns=[
"<leader_index_exclusion_pattern>"
],
follow_index_pattern="<follow_index_pattern>",
)
print(resp)
Js
const response = await client.ccr.putAutoFollowPattern({
name: "<auto_follow_pattern_name>",
remote_cluster: "<remote_cluster>",
leader_index_patterns: ["<leader_index_pattern>"],
leader_index_exclusion_patterns: ["<leader_index_exclusion_pattern>"],
follow_index_pattern: "<follow_index_pattern>",
});
console.log(response);
コンソール
PUT /_ccr/auto_follow/<auto_follow_pattern_name>
{
"remote_cluster" : "<remote_cluster>",
"leader_index_patterns" :
[
"<leader_index_pattern>"
],
"leader_index_exclusion_patterns":
[
"<leader_index_exclusion_pattern>"
],
"follow_index_pattern" : "<follow_index_pattern>"
}
前提条件
- Elasticsearchのセキュリティ機能が有効になっている場合、リーダーインデックスパターンに対して
read
およびmonitor
のインデックス権限を持っている必要があります。また、フォロワーインデックスを含むクラスターに対してmanage_ccr
のクラスター権限も必要です。詳細については、セキュリティ権限を参照してください。
説明
このAPIは、リクエストボディで指定されたリモートクラスターに対して新しい名前付きの自動フォローパターンのコレクションを作成します。指定されたパターンのいずれかに一致するリモートクラスター上の新しく作成されたインデックスは、自動的にフォロワーインデックスとして構成されます。自動フォローパターンが作成される前に作成されたリモートクラスターのインデックスは、パターンに一致しても自動フォローされません。
このAPIは、既存の自動フォローパターンを更新するためにも使用できます。自動フォローパターンを更新する前に自動的に構成されたフォロワーインデックスは、新しいパターンに一致しなくても変更されません。
パスパラメータ
<auto_follow_pattern_name>
- (必須、文字列) 自動フォローパターンのコレクションの名前。
クエリパラメータ
master_timeout
- (オプション、時間単位) マスターノードを待機する期間。タイムアウトが切れる前にマスターノードが利用できない場合、リクエストは失敗し、エラーが返されます。デフォルトは
30s
です。リクエストがタイムアウトしないことを示すために-1
に設定することもできます。
リクエストボディ
remote_cluster
- (必須、文字列) 一致させるリーダーインデックスを含むリモートクラスター。
leader_index_patterns
- (オプション、配列)
remote_cluster
フィールドで指定されたリモートクラスターのインデックスに対して一致させる単純なインデックスパターンの配列。 leader_index_exclusion_patterns
- (オプション、配列) 自動フォローから除外するために使用できる単純なインデックスパターンの配列。
leader_index_patterns
およびleader_index_exclusion_patterns
の1つ以上に一致する名前を持つリモートクラスターのインデックスはフォローされません。 follow_index_pattern
- (オプション、文字列) フォロワーインデックスの名前。テンプレート
{{leader_index}}
を使用して、リーダーインデックスの名前からフォロワーインデックスの名前を導出できます。データストリームをフォローする場合、follow_index_pattern
はリーダーインデックスだけでなく、リーダーインデックスを含むデータストリームの名前変更にも使用されます。たとえば、logs-mysql-default
というデータストリームが.ds-logs-mysql-default-2022-01-01-000001
のバックインデックスとfollow_index_pattern
の{{leader_index}}_copy
を持つ場合、データストリームはlogs-mysql-default_copy
として複製され、バックインデックスは.ds-logs-mysql-default_copy-2022-01-01-000001
として複製されます。 settings
(オブジェクト) リーダーインデックスからオーバーライドする設定。特定の設定はオーバーライドできないことに注意してください(例:
index.number_of_shards
)。max_read_request_operation_count
- (整数) リモートクラスターからの読み取りごとにプルする最大操作数。
max_outstanding_read_requests
- (長整数) リモートクラスターからの未処理の読み取りリクエストの最大数。
max_read_request_size
- (バイト値) リモートクラスターからプルされた操作のバッチごとの最大サイズ(バイト)。
max_write_request_operation_count
- (整数) フォロワーで実行されるバルク書き込みリクエストごとの最大操作数。
max_write_request_size
- (バイト値) フォロワーで実行されるバルク書き込みリクエストごとの操作の最大合計バイト数。
max_outstanding_write_requests
- (整数) フォロワーでの未処理の書き込みリクエストの最大数。
max_write_buffer_count
- (整数) 書き込みのためにキューに入れられる最大操作数。この制限に達すると、リモートクラスターからの読み取りは、キューに入れられた操作の数が制限を下回るまで遅延されます。
max_write_buffer_size
- (バイト値) 書き込みのためにキューに入れられる最大合計バイト数。この制限に達すると、リモートクラスターからの読み取りは、キューに入れられた操作の合計バイト数が制限を下回るまで遅延されます。
max_retry_delay
- (時間値) 例外的に失敗した操作を再試行する前に待機する最大時間。再試行時には指数バックオフ戦略が採用されます。
read_poll_timeout
- (時間値) フォロワーインデックスがリーダーインデックスと同期しているときに、リモートクラスターで新しい操作を待機する最大時間。タイムアウトが経過すると、操作のポーリングはフォロワーに戻り、統計を更新できます。その後、フォロワーは再びリーダーから読み取ろうとします。
デフォルト値
フォロー情報APIからの以下の出力は、上記のインデックスフォロリクエストパラメータのすべてのデフォルト値を説明しています:
コンソール-結果
{
"follower_indices" : [
{
"parameters" : {
"max_read_request_operation_count" : 5120,
"max_read_request_size" : "32mb",
"max_outstanding_read_requests" : 12,
"max_write_request_operation_count" : 5120,
"max_write_request_size" : "9223372036854775807b",
"max_outstanding_write_requests" : 9,
"max_write_buffer_count" : 2147483647,
"max_write_buffer_size" : "512mb",
"max_retry_delay" : "500ms",
"read_poll_timeout" : "1m"
}
}
]
}
例
この例では、my_auto_follow_pattern
という名前の自動フォローパターンを作成します:
Python
resp = client.ccr.put_auto_follow_pattern(
name="my_auto_follow_pattern",
remote_cluster="remote_cluster",
leader_index_patterns=[
"leader_index*"
],
follow_index_pattern="{{leader_index}}-follower",
settings={
"index.number_of_replicas": 0
},
max_read_request_operation_count=1024,
max_outstanding_read_requests=16,
max_read_request_size="1024k",
max_write_request_operation_count=32768,
max_write_request_size="16k",
max_outstanding_write_requests=8,
max_write_buffer_count=512,
max_write_buffer_size="512k",
max_retry_delay="10s",
read_poll_timeout="30s",
)
print(resp)
Js
const response = await client.ccr.putAutoFollowPattern({
name: "my_auto_follow_pattern",
remote_cluster: "remote_cluster",
leader_index_patterns: ["leader_index*"],
follow_index_pattern: "{{leader_index}}-follower",
settings: {
"index.number_of_replicas": 0,
},
max_read_request_operation_count: 1024,
max_outstanding_read_requests: 16,
max_read_request_size: "1024k",
max_write_request_operation_count: 32768,
max_write_request_size: "16k",
max_outstanding_write_requests: 8,
max_write_buffer_count: 512,
max_write_buffer_size: "512k",
max_retry_delay: "10s",
read_poll_timeout: "30s",
});
console.log(response);
コンソール
PUT /_ccr/auto_follow/my_auto_follow_pattern
{
"remote_cluster" : "remote_cluster",
"leader_index_patterns" :
[
"leader_index*"
],
"follow_index_pattern" : "{{leader_index}}-follower",
"settings": {
"index.number_of_replicas": 0
},
"max_read_request_operation_count" : 1024,
"max_outstanding_read_requests" : 16,
"max_read_request_size" : "1024k",
"max_write_request_operation_count" : 32768,
"max_write_request_size" : "16k",
"max_outstanding_write_requests" : 8,
"max_write_buffer_count" : 512,
"max_write_buffer_size" : "512k",
"max_retry_delay" : "10s",
"read_poll_timeout" : "30s"
}
コンソール-結果
{
"acknowledged" : true
}