Configuracao do Elasticsearch para Analise de Logs
A analise centralizada de logs e fundamental para monitorar a saude de sistemas, identificar problemas rapidamente e manter a seguranca de infraestruturas complexas. A stack ELK (Elasticsearch, Logstash e Kibana) e a solucao open-source mais popular para esse proposito, permitindo coletar, processar, armazenar e visualizar logs de centenas de servidores em tempo real. Este guia cobre a instalacao e configuracao completa da stack ELK no Linux para ambientes de producao.
Instalacao do Elasticsearch
Adicione o repositorio oficial da Elastic e instale o Elasticsearch:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg
echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt update && sudo apt install elasticsearch -y
Configure o Elasticsearch editando o arquivo principal:
sudo nano /etc/elasticsearch/elasticsearch.yml
cluster.name: logs-producao
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
discovery.seed_hosts: ["192.168.1.10", "192.168.1.11", "192.168.1.12"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
Ajuste o heap da JVM para 50% da RAM disponivel (maximo 32 GB):
sudo nano /etc/elasticsearch/jvm.options.d/heap.options
-Xms16g
-Xmx16g
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
curl -X GET "localhost:9200/_cluster/health?pretty"
Pipelines do Logstash
O Logstash processa logs de diversas fontes antes de armazena-los no Elasticsearch:
sudo apt install logstash -y
sudo nano /etc/logstash/conf.d/syslog.conf
input {
beats {
port => 5044
}
syslog {
port => 5514
type => "syslog"
}
}
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:hostname} %{DATA:program}: %{GREEDYDATA:log_message}" }
}
date {
match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "logs-%{+YYYY.MM.dd}"
user => "elastic"
password => "${ES_PASSWORD}"
}
}
Nos servidores de origem, instale o Filebeat para coletar logs e enviar ao Logstash:
sudo apt install filebeat -y
sudo filebeat modules enable system nginx
sudo systemctl start filebeat
Gerenciamento de Ciclo de Vida de Indices
Configure politicas ILM para gerenciar automaticamente indices antigos:
curl -X PUT "localhost:9200/_ilm/policy/logs-policy" -H 'Content-Type: application/json' -d '{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_size": "50GB",
"max_age": "1d"
}
}
},
"warm": {
"min_age": "7d",
"actions": {
"shrink": { "number_of_shards": 1 },
"forcemerge": { "max_num_segments": 1 }
}
},
"delete": {
"min_age": "90d",
"actions": { "delete": {} }
}
}
}
}'
Essa politica mantem indices na fase hot por 1 dia, move para warm apos 7 dias (reduzindo shards e otimizando armazenamento) e exclui automaticamente apos 90 dias.
Kibana: Visualizacao e Dashboards
Instale o Kibana e conecte-o ao Elasticsearch:
sudo apt install kibana -y
sudo nano /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "${KIBANA_PASSWORD}"
sudo systemctl enable kibana
sudo systemctl start kibana
Acesse o Kibana em http://seu-servidor:5601, crie um index pattern logs-* e explore os dados com Discovery. Crie dashboards com visualizacoes para monitorar volume de logs por servidor, erros por aplicacao e tendencias ao longo do tempo.
Resumo
A stack ELK fornece uma plataforma poderosa para analise centralizada de logs em ambientes de producao. Com Elasticsearch configurado em cluster, pipelines do Logstash processando logs de multiplas fontes, ILM gerenciando o ciclo de vida dos dados e Kibana fornecendo visualizacoes intuitivas, voce obtem visibilidade completa sobre a saude e seguranca da sua infraestrutura.