Ir para o conteúdo

Como faço para usar o Filebeat e o Logstash no Amazon Linux para me conectar ao OpenSearch Service?

7 minuto de leitura
0

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:

  1. 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.
  2. Confirme se suas instâncias do EC2 estão no mesmo grupo de segurança da sua nuvem privada virtual (VPC) no OpenSearch Service.
  3. 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:

  1. Use SSH para se conectar à instância que você executou para o Filebeat.

  2. 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
  3. 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:

  1. Use SSH para se conectar à sua instância que você executou para o Logstash.

  2. 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
  3. 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.

  4. Execute o comando a seguir para instalar o arquivo RPM do Logstash:

    rpm -ivh logstash-oss-8.15.2-x86_64.rpm
  5. Execute o comando a seguir para abrir o diretório de dados do Logstash:

    cd /usr/share/logstash/
  6. Execute o comando a seguir para instalar o plug-in do OpenSearch Service para Logstash:

    bin/logstash-plugin install logstash-output-opensearch
  7. Para verificar a instalação do plug-in do Logstash, execute o seguinte comando:

    bin/logstash-plugin list

    Observaçã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.

  8. Para verificar se os diretórios de configuração existem, verifique os diretórios /etc/filebeat e /etc/logstash.

  9. 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: false

    Observaçã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.

  10. 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
  1. 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:

  1. Execute o comando a seguir para instalar o plug-in do OpenSearch Service para Logstash:

    bin/logstash-plugin install logstash-output-opensearch
  2. Crie um perfil do IAM.

  3. 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.

  4. 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:

  1. Abra o seguinte arquivo de registro:

    /usr/share/logstash/logstash-core/lib/logstash/plugins/registry.rb
  2. Encontre esta linha de código:

    load_xpack unless LogStash::OSS
  3. Atualize o código para o exemplo a seguir:

    #load_xpack unless LogStash::OSS
  4. 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

AWS OFICIALAtualizada há 10 meses