Logstash é uma ferramenta de código aberto para processamento, transformação e transferência de dados. Ele suporta várias entradas, saídas e filtros, que podem coletar, transformar e produzir dados de várias fontes (como arquivos, bancos de dados, MQ, serviços da Web etc.) .) .
A arquitetura do Logstash consiste em três componentes principais: plug-ins de entrada, filtros e plug-ins de saída. O plug-in de entrada é responsável por coletar dados da fonte de dados, o filtro pode processar, transformar e limpar os dados e o plug-in de saída envia os dados processados para o sistema de destino. Veja a seguir um diagrama de arquitetura simples do Logstash:
+-------------------+
| Data Source |
+-------------------+
|
|
v
+-------------------+
| Logstash Input |
| Plugin |
+-------------------+
|
|
v
+-------------------+
| Logstash Filter |
| Plugin |
+-------------------+
|
|
v
+-------------------+
| Logstash Output |
| Plugin |
+-------------------+
|
|
v
+-------------------+
| Target System |
+-------------------+
Veja a seguir um exemplo simples de implementação do Logstash que demonstra como usar o Logstash para ler dados de um arquivo, filtrar e enviar para o console:
- Crie um
logstash.conf
arquivo de configuração chamado config com o seguinte conteúdo:
input {
file {
path => "/path/to/your/log/file.log"
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
}
output {
stdout {
codec => rubydebug
}
}
Este arquivo de configuração especifica um plug-in de entrada de arquivo, um plug-in de filtro grok e um plug-in de saída do console. Ele /path/to/your/log/file.log
lerá os dados de um arquivo, usará um filtro grok para analisar os dados de log no formato de log do Apache e enviará os dados processados para o console.
- Inicie o Logstash, especifique o arquivo de configuração:
bin/logstash -f logstash.conf
Isso iniciará o Logstash e carregará logstash.conf
o arquivo de configuração.
- Veja a saída no console:
{
"host" => "your-hostname",
"@version" => "1",
"@timestamp" => "2022-01-01T00:00:00.000Z",
"path" => "/path/to/your/log/file.log",
"message" => "127.0.0.1 - - [01/Jan/2022:00:00:00 +0000] \"GET /index.html HTTP/1.1\" 200 1234",
"clientip" => "127.0.0.1",
"ident" => "-",
"auth" => "-",
"timestamp" => "01/Jan/2022:00:00:00 +0000",
"verb" => "GET",
"request" => "/index.html",
"httpversion" => "1.1",
"response" => "200",
"bytes" => "1234"
}
Essa saída contém os dados de log do Apache analisados e pode ser visto que o valor de cada campo foi identificado e separado corretamente.
Logstash é uma ferramenta de código aberto para processamento, transformação e transmissão de dados. Sua arquitetura inclui três componentes principais: plug-ins de entrada, filtros e plug-ins de saída. O plug-in de entrada é responsável por coletar dados da fonte de dados, o filtro pode processar, transformar e limpar os dados e o plug-in de saída envia os dados processados para o sistema de destino.
O fluxo de trabalho do Logstash é o seguinte:
-
Os plug-ins de entrada coletam dados de fontes de dados, como leitura de dados de arquivos, bancos de dados, MQ, serviços da Web, etc.
-
Os filtros processam, transformam e limpam dados, como análise de dados de log, substituição de campos e filtragem de dados inúteis.
-
Os plug-ins de saída enviam dados processados para sistemas de destino, como Elasticsearch, Redis, Kafka, MySQL, etc.
O Logstash costuma ser usado nos seguintes cenários:
-
Processamento e análise de log: Logstash pode coletar, analisar e filtrar dados de log gerados por vários aplicativos e sistemas, que podem ser usados para monitoramento de log, análise de relatório, solução de problemas, etc.
-
Coleta de dados e ETL: o Logstash pode coletar dados de várias fontes de dados, convertê-los e limpá-los e pode ser usado para data warehouse, análise de dados, BI, etc.
-
Pipeline de dados e processamento de fluxo: o Logstash pode transferir dados de um sistema para outro, suportando streaming em tempo real e processamento em lote.
Aqui estão alguns links para literatura sobre conceitos e arquitetura do Logstash:
-
Documentação oficial do Logstash: Referência do Logstash [8.9] | Elastic
-
Introdução à arquitetura e princípio de funcionamento do Logstash: https://www.elastic.co/blog/a-practical-introduction-to-logstash-architecture
-
Documentação do plug-in de entrada do Logstash: Plug-ins de entrada | Referência do Logstash [8.9] | Elastic
-
Documentação do plug-in de filtro do Logstash: plug-ins de filtro | Referência do Logstash [8.9] | Elastic
-
Documentação do plug-in de saída do Logstash: Plug-ins de saída | Referência do Logstash [8.9] | Elastic
-
Práticas recomendadas e ajuste de desempenho do Logstash: https://www.elastic.co/blog/logstash-performance-tuning-part-1-pipelines-and-batching