# ELK Stack logging: guia de configuração centralizada

> ELK Stack logging centraliza logs de múltiplas fontes em um único repositório, composto por Elasticsearch para armazenamento e busca, Logstash para processamento e ingestão, e Kibana para visualização. A configuração do ELK Stack exige instalação sequencial dos três componentes, definição de pipelines no Logstash e ajuste de índices no Elasticsearch. Para produção, recomenda-se monitoramento de recursos, autenticação e uso de filas persistentes.

*PosUp · Apps e Software · 03 de agosto de 2026 · Patrícia Lemos*

ELK Stack logging centraliza logs de múltiplas fontes em um só lugar. Neste guia, você configura Elasticsearch, Logstash e Kibana do zero, com dicas para produção.

ELK Stack logging centraliza logs de aplicações e servidores em uma única plataforma. Com Elasticsearch para armazenamento e busca, Logstash para processamento e Kibana para visualização, você ganha visibilidade sem depender de arquivos espalhados. Este guia cobre a configuração básica, com foco em produção.

Antes de começar, você precisa de um servidor Linux (Ubuntu 20.04 ou similar) com pelo menos 4 GB de RAM e 2 CPUs. Vamos usar versões 7.x do Elastic Stack, que são estáveis e amplamente documentadas. Certifique-se de ter acesso root e porta 5601 liberada para Kibana, 9200 para Elasticsearch e 5044 para Logstash.

## Passo 1: Instalar e configurar o Elasticsearch

O Elasticsearch é o coração do ELK: ele armazena e indexa os logs. Instale o pacote via repositório oficial da Elastic.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list sudo apt update && sudo apt install elasticsearch

Após instalar, edite o arquivo /etc/elasticsearch/elasticsearch.yml. Defina network.host como 0.0.0.0 para acessar de outros servidores, mas em produção restrinja ao IP interno. Aumente indices.fielddata.cache.size se planeja agregações pesadas no Kibana.

**Erro comum**: não configurar discovery.type: single-node em testes. Sem isso, o Elasticsearch tenta descobrir outros nós e falha ao iniciar. Adicione essa linha no arquivo de configuração.

Inicie o serviço:

sudo systemctl enable elasticsearch sudo systemctl start elasticsearch

Verifique com curl -X GET "localhost:9200". Você deve ver um JSON com o nome do cluster e versão.

## Passo 2: Instalar e configurar o Logstash

Logstash coleta, transforma e envia logs para o Elasticsearch. Instale com:

sudo apt install logstash

Crie um pipeline de configuração em /etc/logstash/conf.d/beats-input.conf. Um pipeline básico recebe logs via Beats (porta 5044) e envia ao Elasticsearch:

input { beats { port => 5044 } }

filter {

## Aqui você adiciona parsers, como grok para logs de acesso

}

output { elasticsearch { hosts => ["localhost:9200"] index => "logs-%{+YYYY.MM.dd}" } }

**Dica**: use o pattern grok no filter para extrair campos como IP, método HTTP e status. Por exemplo, grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } para logs de Apache. Teste o pipeline com sudo -u logstash /usr/share/logstash/bin/logstash --config.test_and_exit -f /etc/logstash/conf.d/beats-input.conf.

**Erro comum**: esquecer de criar o diretório /etc/logstash/conf.d e colocar os arquivos em outro lugar. O Logstash só lê configurações nesse diretório por padrão.

Inicie o Logstash:

sudo systemctl enable logstash sudo systemctl start logstash

## Passo 3: Instalar e configurar o Kibana

Kibana é a interface web para pesquisar e visualizar logs. Instale com:

sudo apt install kibana

Edite /etc/kibana/kibana.yml. Defina server.host como 0.0.0.0 para acessar externamente, e elasticsearch.hosts para apontar para http://localhost:9200.

**Dica**: em produção, coloque o Kibana atrás de um proxy reverso (Nginx) com HTTPS. Isso evita expor a interface diretamente na internet.

Inicie o serviço:

sudo systemctl enable kibana sudo systemctl start kibana

Acesse http://seu-servidor:5601. Na primeira execução, o Kibana pede para criar um índice padrão. Use logs-* para visualizar todos os logs.

## Passo 4: Enviar logs com Filebeat

Filebeat é um agente leve que envia logs locais para o Logstash ou Elasticsearch. Instale nos servidores que geram logs:

sudo apt install filebeat

Configure /etc/filebeat/filebeat.yml para apontar para o Logstash:

filebeat.inputs:

- type: log

enabled: true paths:

- /var/log/*.log

output.logstash: hosts: ["seu-servidor:5044"]

**Dica**: use módulos prontos do Filebeat, como nginx ou system, para acelerar a configuração. Execute sudo filebeat modules enable nginx e ajuste os paths.

**Erro comum**: não testar a conectividade entre Filebeat e Logstash. Use nc -vz seu-servidor 5044 para verificar se a porta está acessível antes de iniciar o Filebeat.

Inicie o Filebeat:

sudo systemctl enable filebeat sudo systemctl start filebeat

## Passo 5: Criar dashboards no Kibana

Com os logs chegando, vá ao Kibana e crie visualizações. No menu, escolha "Stack Management" > "Index Patterns" e crie um padrão logs-*. Depois, em "Visualize Library", crie gráficos de barras para contagem de erros por hora ou mapas para IPs de origem.

**Dica**: use o painel "Discover" para testar consultas antes de salvar visualizações. Uma query como status: 500 filtra erros de servidor.

**Erro comum**: criar muitos dashboards sem necessidade. Comece com 3 a 5 visualizações que respondam a perguntas de negócio, como "quais endpoints têm mais latência?" ou "qual horário há pico de tráfego?"

## Checklist final

Confira se tudo está funcionando:

- Elasticsearch responde em localhost:9200 com status 200.
- Logstash está rodando e aceitando conexões na porta 5044.
- Kibana acessível em localhost:5601 e com índice padrão criado.
- Filebeat envia logs e você consegue ver eventos no Kibana em "Discover".
- Pipelines do Logstash não mostram erros no log em /var/log/logstash/logstash-plain.log.

Se algum passo falhou, revise as configurações e os logs de cada serviço. Logging centralizado é um processo incremental: comece com um tipo de log e expanda.

## FAQ

### O que é ELK Stack logging?

ELK Stack logging é a combinação de Elasticsearch, Logstash e Kibana para coletar, armazenar e visualizar logs de forma centralizada. Ele substitui a busca manual em arquivos por uma interface unificada com busca em tempo real.

### Qual a diferença entre ELK e Elastic Stack?

Elastic Stack inclui o Beats, que são agentes leves de coleta, além dos três componentes clássicos. O ELK original não tinha Beats; hoje, o termo é usado de forma intercambiável, mas Beats é recomendado para produção.

### Preciso de Logstash se uso Filebeat?

Não é obrigatório. Filebeat pode enviar logs diretamente ao Elasticsearch. Mas Logstash oferece filtros avançados, como parsing com grok e enriquecimento com geoip, que facilitam a análise.

### Como proteger o ELK Stack em produção?

Use autenticação com senha (X-Pack), HTTPS via proxy reverso para Kibana e restrinja as portas 9200 e 5044 a IPs internos. Evite expor Elasticsearch diretamente à internet.

### Quanto de memória o ELK Stack precisa?

Para testes, 4 GB de RAM no servidor são suficientes. Em produção, o consumo varia com o volume de logs. Monitore o uso de heap do Elasticsearch e ajuste com ES_JAVA_OPTS.

### Como lidar com volume alto de logs?

Use índices diários (logs-%{+YYYY.MM.dd}) e políticas de lifecycle para apagar índices antigos. O Elasticsearch pode configurar rollover e delete automático via ILM (Index Lifecycle Management).

---

Fonte (canonical): https://posup.com.br/apps-e-software/elk-stack-logging-guia-de-configuracao-centralizada/
