Este tópico mostra como criar um cluster do Alibaba Cloud Logstash e usar um pipeline do Logstash para sincronizar dados entre clusters do Alibaba Cloud Elasticsearch.
Informações básicas
Antes de começar, certifique-se de compreender os seguintes conceitos:
Pré-requisitos
-
É necessário ter uma conta da Alibaba Cloud.
Se você ainda não tem uma conta, cadastre-se.
-
Você deve possuir uma Virtual Private Cloud (VPC) e um vSwitch.
Para mais informações, consulte Criar uma VPC baseada em IPv4.
Limitações
O cluster do Elasticsearch de origem, o cluster do Logstash e o cluster do Elasticsearch de destino devem residir na mesma Virtual Private Cloud (VPC). Caso estejam em VPCs diferentes, configure um gateway NAT para habilitar a conectividade pela internet. Para mais informações, consulte Configurar um gateway NAT para transferência pública de dados.
As versões do cluster do Elasticsearch de origem, do cluster do Logstash e do cluster do Elasticsearch de destino devem ser compatíveis. Para mais detalhes, consulte Compatibilidade de produtos.
Procedimento
-
Crie os clusters do Elasticsearch de origem e de destino, ative a indexação automática no cluster de destino e prepare os dados de teste.
-
Etapa 2: Criar um cluster do Alibaba Cloud Logstash
Após criar um cluster do Alibaba Cloud Logstash e seu estado mudar para Active, crie e execute um pipeline.
-
Etapa 3: Criar e executar um pipeline
Crie e configure um pipeline do Alibaba Cloud Logstash e execute-o para sincronizar dados.
-
Etapa 4: Visualizar o resultado da sincronização
Visualize o resultado da sincronização de dados no console do Kibana do cluster do Elasticsearch de destino.
Etapa 1: Preparar o ambiente
-
Crie clusters do Alibaba Cloud Elasticsearch.
Faça login no console do Alibaba Cloud Elasticsearch.
No painel de navegação à esquerda, clique em Elasticsearch Clusters.
-
Na página Elasticsearch Clusters, crie dois clusters do Alibaba Cloud Elasticsearch.
Os dois clusters servem como origem e destino para um pipeline do Logstash. Para mais informações, consulte Criar um cluster do Alibaba Cloud Elasticsearch. Este tópico utiliza uma solução de migração de dados do Alibaba Cloud Elasticsearch 6.7.0 > Alibaba Cloud Logstash 6.7.0 > Alibaba Cloud Elasticsearch 6.7.0. Os scripts fornecidos aplicam-se apenas a esta solução. A compatibilidade não é garantida para outras soluções. A tabela a seguir descreve as configurações dos clusters do Alibaba Cloud Elasticsearch criados.
NotaCaso utilize uma solução diferente, consulte Compatibilidade de produtos para verificar problemas de compatibilidade. Se houver problemas, atualize a versão do seu cluster ou adquira um novo cluster.
A conta padrão para acessar um cluster do Alibaba Cloud Elasticsearch é elastic, usada como exemplo neste tópico. Se você utilizar um usuário personalizado, conceda a esse usuário as funções e permissões necessárias. Para mais informações, consulte Controlar permissões de usuário com funções do Elasticsearch X-Pack.
-
Ative a indexação automática no cluster do Alibaba Cloud Elasticsearch de destino.
Para mais informações, consulte Configurar parâmetros YML.
NotaPara garantir a segurança dos dados, o Alibaba Cloud Elasticsearch define o recurso Auto Indexing como Not allowed por padrão. Quando o Alibaba Cloud Logstash envia dados, ele cria um índice ao submeter os dados, e não usando a API de criação de índice. Portanto, antes de usar o Alibaba Cloud Logstash para carregar dados, defina o recurso Auto Indexing do seu cluster como Permitted ou crie um índice e mapeamentos antecipadamente.
-
Prepare os dados de teste.
Acesse o console do Kibana do cluster do Alibaba Cloud Elasticsearch de origem. Na página Dev Tools, na aba Console, execute os seguintes comandos para criar o índice e os documentos de teste.
ImportantePara mais informações sobre como fazer login no console do Kibana, consulte Fazer login no console do Kibana.
Os scripts abaixo usam o Elasticsearch 6.7 como exemplo e destinam-se apenas a testes. Para scripts de exemplo do Elasticsearch 7.0 ou posterior, consulte Início rápido para Elasticsearch.
-
Crie um índice chamado my_index com um tipo chamado my_type.
PUT /my_index { "settings" : { "index" : { "number_of_shards" : "5", "number_of_replicas" : "1" } }, "mappings" : { "my_type" : { "properties" : { "post_date": { "type": "date" }, "tags": { "type": "keyword" }, "title" : { "type" : "text" } } } } } -
Insira um documento com o ID 1 em my_index.
PUT /my_index/my_type/1?pretty { "title": "One", "tags": ["ruby"], "post_date":"2009-11-15T13:00:00" } -
Insira um documento com o ID 2 em my_index.
PUT /my_index/my_type/2?pretty { "title": "Two", "tags": ["ruby"], "post_date":"2009-11-15T14:00:00" }
Etapa 2: Criar um cluster do Alibaba Cloud Logstash
-
Acesse a página Logstash Clusters.
Acesse a página Logstash Clusters.
Na barra de navegação superior, selecione a mesma região do cluster do Alibaba Cloud Elasticsearch de destino.
No painel de navegação à esquerda, clique em Logstash Clusters.
Na página Logstash Clusters, clique em Create.
-
Na página de compra configure o novo cluster.
Neste tópico, o método de faturamento está definido como pagamento conforme o uso e a versão como 6.7. Use os valores padrão para os outros parâmetros. Para mais informações, consulte Criar um cluster do Alibaba Cloud Logstash.
NotaDurante as fases iniciais de desenvolvimento e testes funcionais, recomendamos adquirir um cluster Pay-as-you-go para testes.
Descontos estão disponíveis ao adquirir um cluster Subscription.
Leia e aceite os termos de serviço e clique em Buy Now.
Após o aparecimento de uma mensagem de sucesso, clique em Console.
Na barra de navegação superior, selecione a região onde o cluster reside. No painel de navegação à esquerda, clique em Logstash Clusters. Na página Logstash Clusters, visualize o cluster criado.
Etapa 3: Criar e executar um pipeline
Depois que o estado do cluster do Logstash criado mudar para Normal, crie e execute um pipeline para sincronizar dados.
Na página Logstash Clusters, localize o cluster de destino e clique em Pipelines na coluna Actions.
Na seção Pipelines, clique em Create Pipeline.
-
Insira um Pipeline ID e especifique as Config Settings.
Este tópico usa a seguinte configuração de pipeline.
input { elasticsearch { hosts => ["http://es-cn-0pp1f1y5g000h****.elasticsearch.aliyuncs.com:9200"] user => "elastic" password => "your_password" index => "*,-.monitoring*,-.security*,-.kibana*" docinfo => true } } filter {} output { elasticsearch { hosts => ["http://es-cn-mp91cbxsm000c****.elasticsearch.aliyuncs.com:9200"] user => "elastic" password => "your_password" index => "%{[@metadata][_index]}" document_type => "%{[@metadata][_type]}" document_id => "%{[@metadata][_id]}" } file_extend { path => "/ssd/1/ls-cn-v0h1kzca****/logstash/logs/debug/test" } }Parâmetro
Descrição
hosts
O endpoint do cluster do Alibaba Cloud Elasticsearch. Para o bloco input, use o formato
http://<source_cluster_ID>.elasticsearch.aliyuncs.com:9200. Para o bloco output, use o formatohttp://<destination_cluster_ID>.elasticsearch.aliyuncs.com:9200.user
O nome de usuário usado para acessar o cluster do Alibaba Cloud Elasticsearch. O valor padrão é elastic.
password
A senha do usuário especificado. Você configura a senha do usuário elastic ao criar o cluster. Caso esqueça a senha, redefina-a. Para mais informações, consulte Redefinir a senha de acesso de um cluster.
index
O nome do índice a ser sincronizado. Se você definir este parâmetro como
,-.monitoring,-.security,-.kibana, o pipeline sincroniza todos os índices, exceto os índices do sistema cujos nomes começam com um ponto (.). O valor%{[@metadata][_index]}indica que o pipeline corresponde ao índice nos metadados. Nesse caso, o nome do índice de destino é igual ao nome do índice de origem.NotaÍndices do sistema geralmente armazenam logs de monitoramento de um cluster do Elasticsearch e não precisam ser sincronizados.
docinfo
Se você definir este parâmetro como true, o pipeline extrai metadados do documento, como índice, tipo e ID.
document_type
O tipo do índice de destino. O valor
%{[@metadata][_type]}indica que o pipeline corresponde ao tipo nos metadados. Nesse caso, o tipo do índice de destino é igual ao tipo do índice de origem.document_id
O ID do documento de destino. O valor
%{[@metadata][_id]}indica que o pipeline corresponde ao ID nos metadados. Nesse caso, o ID do documento de destino é igual ao ID do documento de origem.file_extend
Opcional. Este parâmetro ativa o recurso de log de depuração. Use o parâmetro path para configurar o caminho de saída dos logs de depuração. Recomendamos configurar este parâmetro. Após a configuração, visualize a saída diretamente no console. Sem essa configuração, é necessário verificar a saída no destino e retornar ao console para modificar o pipeline, o que é ineficiente. Para mais informações, consulte Usar o recurso de depuração para configurações de pipeline do Logstash.
ImportanteO parâmetro file_extend requer o plugin logstash-output-file_extend. Instalar ou desinstalar plugins. O parâmetro path aponta para um caminho especificado pelo sistema por padrão. Não o modifique. Também é possível obter o path clicando em Start Configuration Debug.
A estrutura do arquivo de configuração e os tipos de dados suportados podem variar conforme a versão. Estrutura de um arquivo de configuração.
-
Clique em Next step para configurar os parâmetros do pipeline.
Defina Pipeline Workers como o número de núcleos de CPU do cluster. Mantenha os demais parâmetros com seus valores padrão. Para mais informações sobre os parâmetros, consulte Gerenciar pipelines usando arquivos de configuração.
-
Clique em Save ou Save and Deploy.
Save: Salva a configuração do pipeline, mas não a aplica. Após salvar, você retorna à página Pipelines. Na seção Pipelines, clique em Deploy Now na coluna Actions para reiniciar a instância e aplicar a configuração.
Save and Deploy: Salva e implanta a configuração, reiniciando a instância para aplicar as alterações.
-
Na mensagem de sucesso exibida, clique em OK.
Em seguida, visualize o pipeline criado na lista Pipelines. Aguarde a conclusão da atualização do cluster e a mudança do Status do pipeline para Running. Isso indica que o Alibaba Cloud Logstash iniciou a sincronização.
Etapa 4: Visualizar o resultado da sincronização
Após configurar e iniciar o pipeline, visualize o resultado da sincronização no console do Kibana do cluster do Alibaba Cloud Elasticsearch de destino.
-
Faça login no console do Kibana do seu cluster do Elasticsearch.
Para instruções, consulte Fazer login no console do Kibana.
NotaOs exemplos aqui usam o Elasticsearch V6.7.0. As operações podem variar ligeiramente em outras versões.
No menu de navegação à esquerda, escolha .
-
No Console, execute o seguinte comando para visualizar o resultado da sincronização de dados.
GET /my_index/_search { "query": { "match_all": {} } }O resultado esperado é o seguinte:
{ "took" : 2, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 4, "max_score" : 1.0, "hits" : [ { "_index" : "my_index", "_type" : "doc", "_id" : "aKG3bHABnsveUjNW2iXy", "_score" : 1.0, "_source" : { "post_date" : "2009-11-15T14:00:00", "@version" : "1", "@timestamp" : "2020-02-22T11:45:52.992Z", "tags" : [ "ruby" ], "title" : "Two" } }, ... ] } }Se os dados nos clusters de origem e de destino forem idênticos, a sincronização foi bem-sucedida. Também é possível executar o comando
GET _cat/indices?ve comparar os tamanhos do mesmo índice nos clusters de origem e de destino para verificar se a sincronização ocorreu corretamente.
Tópicos relacionados
-
Saiba como configurar o monitoramento do cluster:
-
Saiba como migrar dados do Elasticsearch de terceiros para a Alibaba Cloud: