ELK Log Analysis Platform Setup: Elasticsearch + Logstash + Kibana Hands-on Guide
The ELK Stack (Elasticsearch + Logstash + Kibana) is the gold standard for enterprise log analysis.
1. Architecture Design
Log Sources → Filebeat → Logstash → Elasticsearch → Kibana
| | | | |
App Logs Lightweight Filter/ Store/Index Visualization
Collection Transform
2. Docker Compose Deployment
version: '3'
services:
elasticsearch:
image: elasticsearch:8.12.0
environment:
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
ports:
- "9200:9200"
volumes:
- es-data:/usr/share/elasticsearch/data
logstash:
image: logstash:8.12.0
volumes:
- ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf
depends_on:
- elasticsearch
kibana:
image: kibana:8.12.0
ports:
- "5601:5601"
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
depends_on:
- elasticsearch
volumes:
es-data:
3. Logstash Configuration
input {
beats {
port => 5044
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
date {
match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
}
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "logs-%{+YYYY.MM.dd}"
}
}
4. Filebeat Configuration
filebeat.inputs:
- type: log
paths:
- /var/log/nginx/access.log
fields:
app: nginx
env: production
output.logstash:
hosts: ["logstash:5044"]
5. Key Features
| Feature | Description |
|---|---|
| Full-text Search | Quickly locate logs |
| Aggregation Analysis | Statistics on error rates, response times |
| Visualization | Dashboard for trend display |
| Alerting | Query-based alert rules |
| Permissions | RBAC multi-tenancy |