Se sua instância do Alibaba Cloud Elasticsearch utiliza o modo de implantação cloud-native (v3), você pode migrar dados de um cluster Elasticsearch autogerenciado em uma instância ECS estabelecendo uma conexão de rede privada e usando o recurso reindex.
Pré-requisitos
-
O cluster Elasticsearch autogerenciado deve atender aos seguintes requisitos:
O cluster deve estar hospedado em uma instância ECS na mesma VPC da sua instância do Alibaba Cloud Elasticsearch. O sistema não oferece suporte a conexões estabelecidas por meio do ClassicLink.
O grupo de segurança da instância ECS deve permitir acesso de todos os endereços IP dos nós da sua instância do Alibaba Cloud Elasticsearch pela porta 9200. Você encontra os endereços IP dos nós no console do Kibana.
-
Você deve ter conectividade com a instância do Alibaba Cloud Elasticsearch. Verifique a conexão executando o comando
curl -XGET http://<host>:9200em uma máquina.NotaExecute o script deste guia em qualquer máquina que tenha acesso tanto ao cluster Elasticsearch autogerenciado quanto à instância do Alibaba Cloud Elasticsearch pela porta 9200.
-
Os dados do índice de origem devem estar disponíveis no cluster Elasticsearch autogerenciado. Este guia usa um índice chamado
sourcecomo exemplo.[root@elasticsearch1 ~]# curl -XGET http://172.16.xxx.xxx:9200/_cat/indices?v health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green open source lGFcaUIgT1-Nsj9b_EezAQ 1 1 6 0 28.2kb 19.1kb green open dest Kn3Tu9TmT62J4ouMHi_37w 1 1 6 0 23.3kb 9.1kb [root@elasticsearch1 ~]#
-
A instância do Alibaba Cloud Elasticsearch deve atender aos seguintes requisitos:
Ative antecipadamente o recurso de criação automática de índices ou crie manualmente as configurações de
mappingsesettingsno Alibaba Cloud Elasticsearch.Verifique se não há restrições de lista de permissões configuradas.
Limites
O Alibaba Cloud ES oferece dois modos de implantação: arquitetura de gerenciamento básico (v2) e arquitetura de novo gerenciamento cloud-native (v3). Identifique o modo de implantação da sua instância na seção Basic Information.

Para clusters que usam a arquitetura de novo gerenciamento cloud-native (v3), a operação de reindex entre clusters exige o PrivateLink para estabelecer uma conexão de peering de rede privada. Consulte a tabela abaixo e escolha a solução adequada ao seu cenário de negócios.
|
Cenário |
Arquitetura de rede do cluster ES |
Soluções |
|
Migração de dados entre clusters do Alibaba Cloud ES |
Ambos os clusters ES foram criados com a arquitetura de gerenciamento básico (v2). |
API reindex. Para mais informações, consulte Use the reindex API to migrate data between Alibaba Cloud ES clusters. |
|
Um dos clusters ES foi criado com a arquitetura de novo gerenciamento cloud-native (v3). Nota
O outro cluster ES pode ter sido criado com a arquitetura de novo gerenciamento cloud-native (v3) ou com a arquitetura de gerenciamento básico (v2). |
|
|
|
Migrar dados de um cluster ES autogerenciado em uma instância ECS para um cluster do Alibaba Cloud ES |
O cluster do Alibaba Cloud ES foi criado com a arquitetura de gerenciamento básico (v2). |
API reindex. Para mais informações, consulte Migrate data from a self-managed Elasticsearch cluster to Alibaba Cloud Elasticsearch using reindex. |
|
O cluster do Alibaba Cloud ES foi criado com a arquitetura de novo gerenciamento cloud-native (v3). |
API reindex. Para mais informações, consulte Migrate self-managed Elasticsearch data via a private connection. |
Procedimento
-
Etapa 1: Configurar uma instância SLB compatível com PrivateLink
Use apenas uma instância SLB compatível com PrivateLink como service resource para um endpoint service. Antes de estabelecer uma conexão privada entre VPCs usando PrivateLink, crie uma instância SLB compatível com PrivateLink e configure um listener.
-
Etapa 2: Criar um endpoint service
Um endpoint service permite que outras VPCs estabeleçam conexões privadas criando endpoints. Após configurar a instância SLB, crie um endpoint service.
-
Etapa 3: Configurar uma conexão privada para o Alibaba Cloud Elasticsearch
No console do Alibaba Cloud Elasticsearch, associe sua instância do Alibaba Cloud Elasticsearch ao endpoint service criado na Etapa 2.
-
Etapa 4: Obter o nome de domínio do endpoint
Após associar a instância de destino ao endpoint service, obtenha o nome de domínio do endpoint para configurar a lista de permissões de reindex.
-
Etapa 5: Configurar a lista de permissões de reindex
No console do Alibaba Cloud Elasticsearch, adicione o nome de domínio obtido na Etapa 4 à lista de permissões de reindex da instância de destino para conceder acesso.
-
Após concluir as etapas anteriores, a conexão de rede entre as instâncias de origem e de destino estará estabelecida e você poderá iniciar a migração de dados.
Etapa 1: Configurar uma instância SLB para PrivateLink
-
Crie uma instância SLB.
Certifique-se de que a instância SLB esteja na mesma região da instância ECS adicionada como backend server. Para mais informações, consulte Create an SLB instance that supports PrivateLink.
-
Configure o Protocol and listener. Defina o protocolo como TCP e a porta como 9200.
Na lista de instâncias SLB, localize a instância de destino e clique em Create Listener na coluna Actions.
Para mais informações, consulte Add a TCP listener.
-
Clique em Next step. Configure o grupo de servidores backend adicionando a instância ECS que hospeda seu cluster Elasticsearch autogerenciado e defina a porta como 9200.
Para mais informações, consulte Configure backend servers.
Clique em Next step e configure o Configure Health Check conforme necessário. Este guia usa as configurações padrão.
-
Clique em Next step. Revise sua configuração, clique em Submit, confirme os detalhes da configuração e clique em I Understand. Você retornará à página Manage Cluster, onde é possível verificar o status do health check da instância ECS backend.
O status Normal indica que a instância ECS backend pode processar solicitações encaminhadas pela instância SLB.
Etapa 2: Criar um endpoint service
-
Na barra de navegação superior, selecione a região onde deseja criar o endpoint service.
Este guia usa China (Hangzhou) como exemplo.
-
Clique em Create Endpoint Service. Na página Create Endpoint Service, configure os parâmetros conforme necessário.
Para instruções detalhadas, consulte Create and manage an endpoint service. Na seção Service resource, defina Resource type como Classic Load Balancer (CLB). Este guia usa as seguintes configurações principais. Para os demais parâmetros, mantenha os valores padrão ou configure-os conforme necessário.
Parâmetro
Descrição
Select service resource
Selecione a zona de disponibilidade que transportará o tráfego e escolha a instância SLB para associar ao endpoint service.
A instância SLB associada recebe o tráfego de rede dos usuários do serviço. A zona de disponibilidade do endpoint service corresponde à zona de disponibilidade primária do service resource.
Uma instância SLB só pode ser usada como service resource se atender às seguintes condições:
-
O tipo de rede é VPC.
-
Suporta PrivateLink.
Automatically Accept Endpoint Connections
Defina se as solicitações de conexão dos endpoints serão aceitas automaticamente. Recomendamos selecionar Yes. As opções são:
-
Yes: O endpoint service aceita automaticamente as solicitações de conexão, permitindo que o endpoint acesse o serviço.
-
No: A conexão do endpoint permanece desconectada até que o administrador do serviço processe a solicitação:
-
Se o administrador aceitar a solicitação, o serviço ficará acessível pelo endpoint.
-
Se o administrador rejeitar a solicitação, o acesso ao serviço pelo endpoint será bloqueado.
-
Enable zone affinity
Indique se deseja ativar a afinidade de zona. Recomendamos selecionar Yes.
-
Clique em OK.
Etapa 3: Configurar uma conexão privada
Faça login no console do Alibaba Cloud Elasticsearch.
No menu de navegação à esquerda, escolha Elasticsearch Clusters.
-
Acesse o cluster de destino.
Na barra de navegação superior, selecione o grupo de recursos ao qual o cluster pertence e a região onde ele está localizado.
Na página Elasticsearch Clusters, encontre o cluster e clique em seu ID.
Clique em Add Private Connection e selecione o endpoint service criado na etapa anterior.
Aguarde até que o status da conexão seja Connected. Isso indica que a VPC do cluster ES e sua VPC estão conectadas.
No painel Configure Private Connection, clique em Add Private Connection. Selecione o endpoint service criado na Etapa 2 e a zona de disponibilidade de destino e marque a caixa de seleção do aviso do sistema.
Clique em OK. O endpoint service se conecta ativamente ao endpoint. Após o estabelecimento da conexão, o status muda para Connected.
Etapa 4: Obter o nome de domínio do endpoint
Após concluir as etapas anteriores, obtenha o nome de domínio do endpoint para configurar a lista de permissões de reindex.
No painel Configure Private Connection, clique no Endpoint ID de destino.
-
Na aba Endpoint connections, clique no ícone de expansão (
) ao lado do ID do endpoint de destino para visualizar o nome de domínio correspondente.Após expandir, localize o nome de domínio do PrivateLink no campo Domain Name. O formato é:
ep-{endpoint ID}-{availability zone}.epsrv-{service ID}.{region}.privatelink.aliyuncs.com
Etapa 5: Configurar a lista de permissões de reindex
Esta operação reinicia o cluster. Recomendamos executá-la fora do horário de pico.
Faça login no console do Alibaba Cloud Elasticsearch.
No menu de navegação à esquerda, escolha Elasticsearch Clusters.
-
Acesse o cluster de destino.
Na barra de navegação superior, selecione o grupo de recursos ao qual o cluster pertence e a região onde ele está localizado.
Na página Elasticsearch Clusters, encontre o cluster e clique em seu ID.
No menu de navegação à esquerda, escolha .
Na seção YML File Configuration, clique em Modify Configuration à direita.
-
No painel YML File Configuration, clique em Modify Configuration e adicione o nome de domínio obtido na Etapa 4.
Exemplo:
reindex.remote.whitelist: 'ep-bp1nitq0krp8yhcf****-cn-hangzhou-i.epsrv-bp1zczi0fgoc5qtv****.cn-hangzhou.privatelink.aliyuncs.com:9200' Clique em OK.
Etapa 6: Migrar dados
-
No Dev Tools do console do Kibana, execute o seguinte comando para migrar os dados.
NotaPara obter informações sobre como fazer login no console do Kibana, consulte Log on to the Kibana console.
POST /_reindex?pretty { "source": { "remote": { "host": "http://ep-bp1nitq0krp8yhcf****-cn-hangzhou-i.epsrv-bp1zczi0fgoc5qtv****.cn-hangzhou.privatelink.aliyuncs.com:9200", "username": "elastic", "password": "Elastic@123***" }, "index": "source", "size": 5000 }, "dest": { "index": "dest" } }Caso o console do Kibana esteja indisponível, execute um comando cURL em uma máquina com acesso à sua instância do Alibaba Cloud Elasticsearch para realizar a operação de reindex:
curl -u <username>:<password> -XPOST "http://<Alibaba Cloud Elasticsearch domain name>:9200/_reindex?pretty" -H "Content-Type: application/json" -d '{ "source": { "remote": { "host": "http://<endpoint domain name>:9200", "username": "<self-managed Elasticsearch username>", "password": "<self-managed Elasticsearch password>" }, "index": "source", "size": 5000 }, "dest": { "index": "dest" } }'NotaSe a segurança não estiver ativada no cluster Elasticsearch autogerenciado, remova os campos
usernameepassworddesource.remote.Para mais informações, consulte API reindex.
-
Opcional: Para verificar o status das tarefas de reindex em execução, execute o seguinte comando.
GET _tasks?detailed=true&actions=*reindex -
Verifique o resultado da migração.
Após a conclusão da migração, execute o comando abaixo para validar o resultado.
GET _cat/indices?vSe o status de saúde do índice de destino estiver normal e o tamanho dos dados corresponder ao esperado, a migração foi bem-sucedida. Exemplo de saída:
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green open .security-7 WzCXGepRRou3e2qE_NXg6g 1 1 55 0 424.1kb 212.1kb green open .monitoring-kibana-7-2021.08.18 G_D3fb8jRfiC72PwmIn-vg 1 1 9560 0 3.1mb 1.5mb green open test RHVpvC30RnO3lE2O2xPx0w 1 1 6 0 29.3kb 9.2kb green open .apm-custom-link Sav0grXzTe2xA1tmgOQOUl 1 1 0 0 522b 261b green open .monitoring-kibana-7-2021.08.19 iF8kyaZCtdSU8z_MIHsj-Q 1 1 2688 1 1.3mb 497.8kb green open .kibana_task_manager_1 ILArbgzRR7KjOQd9SH8BoA 1 1 6 1524 637.3kb 326.7kb green open .apm-agent-configuration VXCcFRjYQU21A_sSPiVGXA 1 1 0 0 522b 261b green open .kibana-event-log-7.10.0-000001 _A3SURUwThakLepdebZt5A 1 1 1 0 11.4kb 5.7kb green open .monitoring-es-7-2021.08.19 RP2xbG60QaqakDvuF972LQ 1 1 28337 34918 37mb 18.4mb green open .kibana_1 o5MX39bZRTeMma4HjT0fog 1 1 22 4 20.8mb 10.4mb green open .monitoring-es-7-2021.08.18 TGyPtE1bTXCaYHq4i7F5nQ 1 1 90546 60040 103.4mb 55.5mb
Perguntas frequentes
P: Como acelerar a sincronização de dados para um índice grande?
R:
O recurso reindex usa internamente a API scroll. Aumente o tamanho do scroll ou configure o fatiamento (slicing) para paralelizar a operação e melhorar o desempenho. Para mais informações, consulte API reindex.
Para conjuntos de dados muito extensos, recomendamos o método de snapshot via OSS. Para mais informações, consulte Advanced: Migrate a self-managed Elasticsearch cluster to Alibaba Cloud Elasticsearch by using an OSS snapshot.
-
Em índices grandes, acelere a sincronização definindo o número de réplicas do índice de destino como 0 e o intervalo de atualização como -1 antes da migração. Restaure as configurações originais após concluir a migração.
// Before migrating index data, set the number of replicas to 0 and disable the refresh interval to speed up the migration. curl -u user:password -XPUT 'http://<host:port>/indexName/_settings' -d' { "number_of_replicas" : 0, "refresh_interval" : "-1" }' // After the index data is migrated, reset the number of replicas to 1 and the refresh interval to "1s" (the default value). curl -u user:password -XPUT 'http://<host:port>/indexName/_settings' -d' { "number_of_replicas" : 1, "refresh_interval" : "1s" }'