用于跨集群复制的自动跟踪
自动跟踪允许您根据匹配模式自动复制在主集群上创建的索引。当您在主集群上创建一个名称与指定模式(例如,index-01*
)匹配的索引时,OpenSearch 会在从集群上自动创建一个相应的从属索引。
您可以为一个集群配置多个复制规则。这些模式目前只支持通配符匹配。
先决条件
您需要在启用自动跟踪之前在两个集群之间设置跨集群连接。
权限
如果安全插件已启用,请确保将非管理员用户映射到适当的权限,以便他们可以执行复制操作。有关索引和集群级别权限要求,请参阅跨集群复制权限。
自动跟踪入门
复制规则是针对单个从集群创建的模式集合。当您创建复制规则时,它首先会自动复制任何匹配该模式的现有索引。然后,它将继续复制您创建的任何匹配该模式的新索引。
在从集群上创建复制规则
curl -XPOST -k -H 'Content-Type: application/json' -u 'admin:<custom-admin-password>' 'https://:9200/_plugins/_replication/_autofollow?pretty' -d '
{
"leader_alias" : "my-connection-alias",
"name": "my-replication-rule",
"pattern": "movies*",
"use_roles":{
"leader_cluster_role": "all_access",
"follower_cluster_role": "all_access"
}
}'
如果安全插件被禁用,您可以省略 use_roles
参数。但是,如果它已启用,您需要指定 OpenSearch 用于身份验证请求的主集群和从集群角色。本示例为简化起见使用 all_access
,但我们建议在每个集群上创建一个复制用户并进行相应映射。
要测试该规则,请在主集群上创建一个匹配索引
curl -XPUT -k -H 'Content-Type: application/json' -u 'admin:<custom-admin-password>' 'https://:9201/movies-0001?pretty'
并确认其副本显示在从集群上
curl -XGET -u 'admin:<custom-admin-password>' -k 'https://:9200/_cat/indices?v'
索引可能需要几秒钟才能出现。
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
yellow open movies-0001 kHOxYYHxRMeszLjTD9rvSQ 1 1 0 0 208b 208b
检索复制规则
要检索在集群上配置的现有复制规则列表,请发送以下请求
curl -XGET -u 'admin:<custom-admin-password>' -k 'https://:9200/_plugins/_replication/autofollow_stats'
{
"num_success_start_replication": 1,
"num_failed_start_replication": 0,
"num_failed_leader_calls": 0,
"failed_indices":[
],
"autofollow_stats":[
{
"name":"my-replication-rule",
"pattern":"movies*",
"num_success_start_replication": 1,
"num_failed_start_replication": 0,
"num_failed_leader_calls": 0,
"failed_indices":[
]
}
]
}
删除复制规则
要删除复制规则,请向从集群发送以下请求
curl -XDELETE -k -H 'Content-Type: application/json' -u 'admin:<custom-admin-password>' 'https://:9200/_plugins/_replication/_autofollow?pretty' -d '
{
"leader_alias" : "my-connection-alias",
"name": "my-replication-rule"
}'
当您删除复制规则时,OpenSearch 会停止复制匹配该模式的新索引,但该规则先前创建的现有索引仍保持只读并继续复制。如果您需要停止现有复制活动并允许对索引进行写入,请使用停止复制 API 操作。