O Logstash é um mecanismo de coleta de dados open source capaz de filtrar e transmitir dados em tempo real. Se os requisitos de desempenho em tempo real para migração de dados não forem rigorosos, use o Logstash. Este tópico descreve como usar o Elastic Compute Service (ECS) da Alibaba Cloud para implantar um cluster Logstash autogerenciado e migrar dados de um arquivo de log para um cluster Alibaba Cloud Elasticsearch.
Pré-requisitos
-
Crie um cluster Alibaba Cloud Elasticsearch e ative o recurso Auto Indexing no cluster.
NotaEste exemplo usa um cluster Elasticsearch V8.5.1 da Standard Edition.
Para mais informações, consulte Criar um cluster Alibaba Cloud Elasticsearch e Acessar e configurar um cluster Elasticsearch.
-
Crie uma instância ECS. A instância ECS deve conseguir se conectar tanto ao cluster Elasticsearch quanto ao cluster Logstash autogerenciado. Para mais informações, consulte Criar uma instância usando o assistente.
NotaRecomendamos criar a instância ECS na mesma região, zona e Virtual Private Cloud (VPC) do cluster Elasticsearch.
-
Instale o JDK na instância ECS. Para mais informações, consulte Instalar o JDK.
NotaO JDK deve ser Temurin 17 ou superior. Para mais detalhes sobre a compatibilidade entre versões do Java JDK e do Logstash, consulte Compatibilidade entre Logstash e JVM.
Prepare os dados a serem migrados. Este exemplo usa dados de log do ECS.
Procedimento
Etapa 1: (Opcional) Criar uma função e um usuário
Uma instância Logstash autogerenciada exige uma conta do Elasticsearch para acessar o cluster Elasticsearch e visualizar dados de monitoramento do Logstash no console do Kibana. Use o usuário integrado elastic ou um usuário personalizado.
Em ambientes de produção, recomendamos o uso de um usuário personalizado. Antes de utilizá-lo, atribua a ele uma função com as permissões necessárias. O uso do usuário elastic em cenários reais compromete a segurança do sistema.
Criar uma função
Esta seção descreve como criar uma função com privilégios de leitura e gravação para índices correspondentes ao padrão logstash-*.
-
Faça login no console do Kibana do cluster Elasticsearch.
Para mais informações, consulte Fazer login no console do Kibana.
Clique em
no canto superior esquerdo da página exibida e escolha Management > Stack Management.No painel de navegação à esquerda, escolha Security > Role.
-
Na página Role, clique em Create role e configure os parâmetros da função.
A tabela a seguir descreve alguns dos parâmetros exibidos.
Parâmetro
Descrição
Role Name
Nome da função. Insira um nome personalizado.
Index
Índices a gerenciar. Selecione logstash-**.
Permission
Permissões a conceder à função. Selecione read, write, create, delete e create_index.
Clique em Create role.
Criar um usuário
Este exemplo cria um usuário para monitoramento do Logstash. Use um dos métodos abaixo para criar o usuário.
Por padrão, o Alibaba Cloud Elasticsearch desativa o usuário integrado logstash_system. Crie um novo usuário e atribua a ele a função logstash_system. Não nomeie o novo usuário como logstash_system.
-
Método 1: Criar um usuário no console do Kibana
-
Faça login no console do Kibana do cluster Elasticsearch.
Para mais informações, consulte Fazer login no console do Kibana.
Clique em
no canto superior esquerdo da página exibida e escolha Management > Stack Management.No painel de navegação à esquerda, escolha Security > Users.
Na página Users, clique em Create user no canto superior direito.
-
Na página Create user, configure os parâmetros.
A tabela a seguir descreve alguns dos parâmetros exibidos.
Parâmetro
Descrição
Username
Nome do usuário. Insira um nome personalizado. Exemplo: logstash_system_monitor.
Roles
Função atribuída ao usuário. Selecione logstash_system.
Clique em Create user.
-
-
Método 2: Criar um usuário via interface de linha de comando (CLI)
Conecte-se à instância ECS e execute o seguinte comando para criar um usuário:
curl -u elastic:<es-password> -XPOST http://<instanceId>.elasticsearch.aliyuncs.com:9200/_xpack/security/user/logstash_system_monitor -d '{"password" : "<logstash-monitor-password>","roles" : ["logstash_system"],"full_name" : "<your full name>"}'Parâmetro
Descrição
es-password
Senha do cluster Elasticsearch. Esta senha também é usada para fazer login no console do Kibana do cluster.
<instanceId>
ID do cluster Elasticsearch. Consulte o ID do cluster na página Basic Information do cluster Elasticsearch.
<logstash-monitor-password>
Senha do usuário
logstash_system_monitor.<your full name>
Nome completo do usuário.
Após a criação do usuário, o sistema retorna o resultado mostrado na figura a seguir.

Etapa 2: Instalar o Logstash na instância ECS
-
Conecte-se à instância ECS.
Para mais informações, consulte Métodos de conexão.
-
Baixe o pacote de instalação do Logstash.
Acesse o site da Elastic e baixe o pacote de instalação do Logstash com a mesma versão do cluster Elasticsearch.
wget https://artifacts.elastic.co/downloads/logstash/logstash-8.5.1-linux-x86_64.tar.gzNotaComando para o Logstash V7.4:
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.4.0.tar.gz -
Descompacte o pacote de instalação do Logstash.
Este exemplo usa o Logstash V8.5.1.
tar -xzvf logstash-8.5.1-linux-x86_64.tar.gz
Etapa 3: Configurar e executar um pipeline do Logstash
-
Acesse o diretório do Logstash.
cd logstash-8.5.1 -
Crie um arquivo .conf.
touch test.conf -
Configure o arquivo test.conf.
O código de amostra a seguir fornece um exemplo de configuração:
input { file { path => "/your/file/path/xxx" } } filter { } output { elasticsearch { hosts => "<http://<instanceId>.elasticsearch.aliyuncs.com:9200>" index => "<index-name>" user => "<user-name>" password => "<logstash-password>" } }Parâmetro
Descrição
pathCaminho do arquivo de log. Este exemplo usa /var/log/messages.
hostsEndpoint do cluster Alibaba Cloud Elasticsearch. Substitua
instanceIdpelo ID da sua instância. Exemplo:http://es-cn-45xxxxxxxxxxxxju.elasticsearch.aliyuncs.com:9200.indexNome do índice onde os dados do arquivo de log serão gravados. Defina um nome personalizado.
userNome de usuário usado para acessar o cluster Elasticsearch. Este exemplo usa elastic.
Importante-
Para garantir a segurança do sistema, recomendamos usar um usuário personalizado em vez do usuário elastic em ambientes de produção.
-
O nome de usuário deve estar entre aspas duplas ("). Isso evita erros potenciais causados por caracteres especiais no nome de usuário durante a execução do pipeline do Logstash.
passwordSenha usada para acessar o cluster Elasticsearch.
ImportanteA senha deve estar entre aspas duplas ("). Isso evita erros potenciais causados por caracteres especiais na senha durante a execução do pipeline do Logstash.
O Logstash oferece diversos plug-ins de entrada, filtro e saída. Configure esses plug-ins adequadamente para transferir dados. Para mais informações, consulte Estrutura de um arquivo de configuração.
-
-
Execute o pipeline do Logstash.
bin/logstash -f test.confSe o comando for executado com êxito, o Logstash detectará automaticamente alterações no arquivo de log e as sincronizará com o cluster Elasticsearch. Sempre que novos dados forem adicionados ao arquivo de log monitorado, o Logstash os sincronizará automaticamente com o cluster Elasticsearch.
Etapa 4: Visualizar os dados migrados
-
Faça login no console do Kibana do cluster Elasticsearch.
Para mais informações, consulte Fazer login no console do Kibana.
Clique em
no canto superior esquerdo da página exibida e escolha Management > Dev Tools.-
Na aba Console da página exibida, execute o seguinte comando:
GET /logstash-*/_search
Etapa 5: (Opcional) Monitorar o nó do Logstash
-
Acesse a pasta config no diretório do Logstash.
cd logstash-8.5.1/config -
Configure o arquivo logstash.yml.
-
Abra o arquivo logstash.yml.
vim logstash.yml -
No arquivo logstash.yml, remova os comentários dos parâmetros listados na tabela a seguir e configure-os.
xpack.monitoring.enabled:true xpack.monitoring.elasticsearch.username:"<user-name>" xpack.monitoring.elasticsearch.password:"<logstash-password>" xpack.monitoring.elasticsearch.hosts:["http://es-cn-nwy3fwjp8xxxxxxx.elasticsearch.aliyuncs.com:9200"]Parâmetro
Descrição
xpack.monitoring.enabledDefina este parâmetro como
true. O valor padrão éfalse.xpack.monitoring.elasticsearch.usernameNome do usuário criado para monitoramento do Logstash. Este exemplo usa o usuário elastic.
ImportantePara garantir a segurança do sistema, recomendamos usar um usuário personalizado em vez do usuário elastic em ambientes de produção.
xpack.monitoring.elasticsearch.passwordSenha do usuário criado para monitoramento do Logstash.
xpack.monitoring.elasticsearch.hostsEndpoint do cluster Alibaba Cloud Elasticsearch. Exemplo:
http://es-cn-45xxxxxxxxxxxxju.elasticsearch.aliyuncs.com:9200.
-
-
Acesse o diretório do Logstash e inicie o serviço do Logstash.
cd ../ bin/logstash -f test.conf -
Faça login no console do Kibana do cluster Elasticsearch.
Para mais informações, consulte Fazer login no console do Kibana.
Clique em
no canto superior esquerdo da página exibida e escolha Management > Stack Monitoring.(Opcional) Na caixa de diálogo Create rules, clique em OK.
Na página Cluster overview, visualize os dados de monitoramento do Logstash.
Referências
Os plug-ins do Alibaba Cloud Elasticsearch ampliam as capacidades do cluster, incluindo estabilidade, desempenho de consulta e gravação, consultas tokenizadas e recuperação de dados. Para mais informações, consulte Visão geral de plug-ins.