ELK 日志分析平台搭建:Elasticsearch + Logstash + Kibana 实战
ELK Stack(Elasticsearch + Logstash + Kibana)是企业日志分析的黄金标准。
一、架构设计
日志源 → Filebeat → Logstash → Elasticsearch → Kibana
| | | | |
应用日志 轻量采集 过滤/转换 存储/索引 可视化
二、Docker Compose 部署
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:
三、Logstash 配置
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}"
}
}
四、Filebeat 配置
filebeat.inputs:
- type: log
paths:
- /var/log/nginx/access.log
fields:
app: nginx
env: production
output.logstash:
hosts: ["logstash:5044"]
五、关键功能
| 功能 | 说明 |
|---|---|
| 全文搜索 | 快速定位日志 |
| 聚合分析 | 统计错误率、响应时间 |
| 可视化 | 仪表盘展示趋势 |
| 告警 | 基于查询的告警规则 |
| 权限 | RBAC 多租户 |