Como faço para usar o Filebeat e o Logstash no Amazon Linux para me conectar ao OpenSearch Service?
Quero usar o Filebeat e o Logstash no Amazon Linux para me conectar a um cluster do Amazon OpenSearch Service, mas recebo um erro.
Resolução
Configure portas de segurança
Para usar o Logstash para se conectar ao OpenSearch Service, configure suas portas de segurança para encaminhar logs do Logstash.
Conclua as etapas a seguir:
- Execute uma instância do Amazon Elastic Compute Cloud (Amazon EC2) para o Filebeat e, em seguida, execute outra instância a partir da qual o Logstash envia logs.
- Confirme se suas instâncias do EC2 estão no mesmo grupo de segurança da sua nuvem privada virtual (VPC) no OpenSearch Service.
- Certifique-se de que as portas 80, 443 e 5044 estejam abertas no seu grupo de segurança para que seja possível enviar dados entre o Logstash e o OpenSearch Service.
Atualize as configurações do Filebeat, Logstash e OpenSearch Service
É uma prática recomendada usar as versões do Filebeat e do Logstash que combinem seu OpenSearch Service com uma versão legada do Elasticsearch. Use as versões do Filebeat e do Logstash que correspondam à versão do seu domínio.
Por exemplo, se você usar o OpenSearch Service 1.x com o modo de compatibilidade, o OpenSearch Service reporta a versão como 7.10. Verifique a matriz de compatibilidade para escolher a versão correta do Filebeat e do Logstash. Para obter mais informações, consulte Matriz de suporte no site da Elastic ou Compatibility matrices (Matrizes de compatibilidade) no site do OpenSearch.
Se você usa o OpenSearch Service versão 1.0 ou posterior, ative o modo de compatibilidade ao iniciar seu domínio.
Para garantir que o software baixado permaneça sincronizado, baixe Red Hat Package Managers (RPMs) para cada instância. Para evitar um único ponto de falha em seu pipeline, não execute o Filebeat e o Logstash na mesma instância.
Instale o Filebeat na instância do EC2 de origem
Para instalar o Filebeat na instância de origem, conclua as seguintes etapas:
-
Use SSH para se conectar à instância que você executou para o Filebeat.
-
Execute o comando a seguir para baixar o RPM para a versão compatível do Filebeat:
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-oss-8.15.2-x86_64.rpm -
Execute o comando a seguir para instalar o arquivo RPM do Filebeat:
rpm -ivh filebeat-oss-8.15.2-x86_64.rpm
Instale e configure o Logstash em uma instância do EC2 separada
Conclua as etapas a seguir:
-
Use SSH para se conectar à sua instância que você executou para o Logstash.
-
Execute o comando a seguir para baixar o arquivo RPM compatível do Logstash:
wget https://artifacts.elastic.co/downloads/logstash/logstash-oss-8.15.2-x86_64.rpm -
Execute o comando a seguir para instalar o Java ou o OpenJDK em sua instância do EC2:
yum install java-1.8.0-*Observação: o comando anterior usa o Java versão 8 (OpenJDK 1.8). Todas as versões do Logstash são compatíveis com a versão 8 do Java.
-
Execute o comando a seguir para instalar o arquivo RPM do Logstash:
rpm -ivh logstash-oss-8.15.2-x86_64.rpm -
Execute o comando a seguir para abrir o diretório de dados do Logstash:
cd /usr/share/logstash/ -
Execute o comando a seguir para instalar o plug-in do OpenSearch Service para Logstash:
bin/logstash-plugin install logstash-output-opensearch -
Para verificar a instalação do plug-in do Logstash, execute o seguinte comando:
bin/logstash-plugin listObservação: para o Logstash OSS 7.13 e versões posteriores, use somente o plug-in logstash-output-opensearch. A versão 7.12.1 é compatível com os plug-ins logstash-output-elasticsearch e logstash-output-opensearch.
-
Para verificar se os diretórios de configuração existem, verifique os diretórios /etc/filebeat e /etc/logstash.
-
Para enviar logs pelo Logstash, crie um arquivo de configuração do Filebeat em /etc/filebeat/filebeat.yml.
Exemplo de arquivo de configuração do Filebeat:filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: false setup.template.settings: index.number_of_shards: 1 index.codec: best_compression #output.elasticsearch: #hosts: ["your-domain-endpoint"] #protocol: "https" output.logstash: # The Logstash hosts hosts: ["Logstash-EC2-InstanceIP:5044"] setup.ilm.enabled: false ilm.enabled: falseObservação: substitua Logstash-EC2-InstanceIP:5044 pelo endereço IP da sua instância do Logstash e your-domain-endpoint pelo endpoint do seu domínio. Também é possível enviar logs diretamente para o OpenSearch Service. Para obter mais informações, consulte logstash-output-opensearch no site do GitHub.
-
Crie um arquivo de configuração do Logstash em /etc/logstash/conf.d/logstash.conf.
Exemplo de arquivo de configuração do Logstash:
input { beats { port => 5044 } } output { opensearch { hosts => ["https://domain-endpoint:443"] ssl => true index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" user => "my-username" password => "my-password" } }
Observação: substitua domain-endpoint, my-username e my-password pelos seus valores. Para testar a conectividade ao seu endpoint do OpenSearch Service, execute o seguinte comando:
curl -XGET https://your-domain-endpoint
Observação: substitua your-domain-endpoint pelo endpoint do seu domínio. (Opcional) Se você ativou o controle de acesso refinado (FGAC), execute o seguinte comando:
curl -u my-username:my-password -XGET https://your-domain-endpoint
Observação: substitua your-domain-endpoint pelo endpoint do seu domínio. Execute os seguintes comandos para iniciar os serviços do Filebeat e Logstash:
systemctl start filebeat
systemctl start logstash
- Para confirmar que os logs do Filebeat foram enviados, execute o seguinte comando curl em seu domínio do OpenSearch Service:
curl -XGET https://your-domain-endpoint/_cat/indices
Observação: substitua your-domain-endpoint pelo endpoint do seu domínio.
Exemplos de saídas de um índice do Filebeat:
green open filebeat-7.16.2-2022.01.27 f97c4WnuQ-CtsAJJaJHUlg 1 1 1511515 0 249.7mb 124.7mb green open .kibana_1 Ioco6fUoSCGkaOvHNCL39g 1 1 1 0 7.4kb 3.7kb
green open filebeat-7.16.2-2022.01.27 f97c4WnuQ-CtsAJJaJHUlg 1 1 1511515 0 249.7mb 124.7mb green open .kibana_1 Ioco6fUoSCGkaOvHNCL39g 1 1 1 0 7.4kb 3.7kb green open filebeat-7.16.2-2022.01.28 4i8W0smlRGGFcQOaDMxonA 1 1 89 0 207.1kb 118.1kb
Se você configurou o Filebeat, Logstash e OpenSearch Dashboards com o Amazon EC2 Linux, seu pipeline será semelhante ao exemplo a seguir:
Filebeat > Logstash > Amazon OpenSearch Service/Dashboards
Solucione erros de instalação 401, 403 e Logstash x-pack
Erro 401 Unauthorized
Se o Logstash retornar um erro "401 Unauthorized", seu domínio do OpenSearch Service usará um dos seguintes recursos de segurança:
- FGAC
- Autenticação do Amazon Cognito
Para resolver esse problema, adicione credenciais de autenticação ao seu arquivo de configuração do Logstash em /etc/logstash/conf.d/logstash.conf.
Exemplo de configuração:
output { opensearch { hosts => ["https://your-domain-endpoint"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" ilm_enabled => false user => "my-username" password => "my-password" } }
Observação: substitua your-domain-endpoint, my-username e my-password pelos valores do seu domínio do OpenSearch Service.
Erro 403 Forbidden
Se o Logstash não tiver as permissões necessárias do AWS Identity and Access Management (AWS IAM) para acessar o OpenSearch Service, ocorrerá um erro "403 Forbidden".
Para solucionar esse problema, realize as etapas a seguir:
-
Execute o comando a seguir para instalar o plug-in do OpenSearch Service para Logstash:
bin/logstash-plugin install logstash-output-opensearch -
Crie a política a seguir e anexe-a ao perfil do IAM:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttp*" ], "Resource": "[Amazon-OpenSearch-Domain-ARN]" } ] }Observação: substitua Amazon-OpenSearch-Domain-ARN pelo nome do recurso da Amazon (ARN) do seu domínio do OpenSearch Service.
-
Atualize seu arquivo de configuração do Logstash em /etc/logstash/conf.d/logstash.conf.
Exemplo de arquivo de configuração do Logstash:output { opensearch { hosts => ["domain-endpoint"] ssl => true region => "example_region" index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } }Observação: substitua domain-endpoint e example-region pelos valores do seu domínio do OpenSearch Service.
Erro de instalação Logstash x-pack
Se o Logstash não iniciar devido a um erro "x-pack plugin", conclua as seguintes etapas:
-
Abra o seguinte arquivo de registro:
/usr/share/logstash/logstash-core/lib/logstash/plugins/registry.rb -
Encontre esta linha de código:
load_xpack unless LogStash::OSS -
Atualize o código para o exemplo a seguir:
#load_xpack unless LogStash::OSS -
Para evitar erros de inicialização x-pack plugin, desative as configurações do Index Life Management (ILM) em seus arquivos de configuração:
No Filebeat, configure ilm.enabled: false.
No Logstash, configure ilm_enabled => false.
Informações relacionadas
Carregamento de dados no Amazon OpenSearch Service com o Logstash
- Tópicos
- Analytics
- Idioma
- Português
