Logstash no Docker

Logstash No Docker



Logstash é um pipeline de processamento de dados de código aberto que permite coletar, processar e encaminhar dados de log de várias fontes.

Neste tutorial, orientaremos você no processo de execução do Logstash em um contêiner Docker com configuração básica.

Requisitos:

Antes de começarmos com o tutorial, certifique-se de ter o seguinte:







  1. Docker instalado em sua máquina host (versão 23 e superior é recomendada)
  2. Docker Compose instalado em sua máquina

Com os requisitos fornecidos atendidos, podemos prosseguir com o tutorial.



Configure o arquivo de configuração do Logstash

O Logstash usa os arquivos de configuração para definir como os dados são ingeridos, filtrados e enviados para a saída. Existem várias opções que você pode configurar conforme referência na documentação oficial.



Para nosso exemplo, nos concentramos na configuração básica que ingere os dados de um arquivo de log, os filtra para os registros correspondentes e envia os dados para um arquivo.





Crie um arquivo chamado “logstash.conf” e adicione a configuração da seguinte forma:

entrada {
arquivo {
caminho => '/var/log/apache/access.log'

posição_inicial => 'começo'

desdedb_path => '/dev/nulo'

ignore_older => 0
}
}

filtrar {
se [mensagem] =~ 'ERRO' {
groque {
correspondência => { 'mensagem' => '%{COMBINEDAPACHELOG}' }
}
}
}

saída {
arquivo {
caminho => '/var/log/apache/error_logs.log'
}
}

O arquivo anterior define a configuração conforme mostrado a seguir:

  1. Seção de entrada – A seção de entrada usa o plug-in de entrada de arquivo para ler o arquivo de log do Apache localizado em /var/log/apache/access.log.
    • Em seguida, definimos a posição inicial no início, o que permite ao Logstash ler o arquivo inteiro desde o início.
    • Sincedb_path – Este parâmetro nos permite desabilitar o rastreamento sincedb do Logstash definindo o valor como /dev/null. Isso garante que o Logstash sempre leia desde o início do arquivo.
    • Ignore_older – Definir o valor deste parâmetro como 0 permite que o Logstash processe todas as entradas do arquivo de log.
  2. Seção de filtro – Na seção de filtro, definimos o padrão de filtro para verificar se a mensagem de log contém a palavra ERRO. Você pode ajustar as condições dos blocos de filtro para filtrar correspondências mais precisas no arquivo.
    • Se a condição for atendida, usamos o filtro grok para analisar a linha de log do Apache usando o padrão COMBINEDAPACHELOG, que é um padrão integrado no Logstash para analisar os logs do Apache.
  3. Seção de saída – Esta seção nos permite definir o formato de saída para as entradas correspondentes.
    • No nosso caso, nós os escrevemos no arquivo /var/log/apache/error_logs.log usando o parâmetro path.

Isso deve nos fornecer uma configuração básica do Logstash que nos permite demonstrar alguns trabalhos básicos do Logstash.

Consulte mais informações sobre como criar e configurar os pipelines do Logstash no seguinte recurso de documentação fornecido:

https://www.elastic.co/guide/en/logstash/current/configuration.html

Crie o Dockerfile

Depois de definirmos as configurações do Logstash, podemos prosseguir e aprender como executar o contêiner. Dentro do mesmo diretório do arquivo “logstash.conf”, crie um novo arquivo chamado “Dockerfile”.

Edite este arquivo e adicione as entradas da seguinte forma:

DE docker.elastic.co/logstash/logstash:8.9.2

COPIE logstash.conf /usr/share/logstash/pipeline/logstash.conf

No exemplo dado, definimos a imagem base como a imagem oficial do Logstash usando a versão 8.9.2.

Em seguida, copiamos o arquivo “logstash.conf” que criamos para /usr/share/logstash/pipeline/logstash.conf na imagem.

Construir a imagem Docker

Em seguida, navegue até o diretório que contém o arquivo de configuração Dockerfile e Logstash. Execute o seguinte comando para construir a imagem:

$ construção do docker -t imagem-logstash personalizada.

Execute o contêiner Logstash

Agora que construímos a imagem Docker, podemos executar um contêiner Logstash usando o comando “run” do Docker da seguinte forma:

$ execução do docker -d --nome imagem logstash personalizada do servidor logstash

Isso deve executar o contêiner Logstash usando a imagem que construímos na etapa anterior.

Verifique os logs do contêiner Logstash

Para verificar se o Logstash está sendo executado corretamente, você pode verificar os logs do contêiner usando o seguinte comando:

$ registros do docker < nome_do_container >

Saída:

Conclusão

Neste tutorial, você aprendeu como configurar rapidamente um servidor Logstash que roda como Docker usando um arquivo de configuração personalizado. Recomendamos verificar a documentação sobre os parâmetros da imagem e opções de configuração.