使用 ELK(Elasticsearch + Logstash + Kibana) 分析服务器日志,一般可分为 采集 → 解析 → 存储 → 可视化分析 四个阶段。下面以最常见的 Linux 服务器日志(如 Nginx、系统日志、应用日志) 为例,说明完整思路和做法。
实际生产中常用:Filebeat(轻量采集) + Logstash(复杂处理) + ES + Kibana
服务器日志
↓
Filebeat(采集)
↓
Logstash(过滤/解析)
↓
Elasticsearch(存储)
↓
Kibana(分析)
docker-compose up -d
filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/access.log
output.logstash:
hosts: ["logstash:5044"]
启动:
filebeat -e -c filebeat.yml
nginx.conf
input {
beats {
port => 5044
}
}
filter {
grok {
match => {
"message" => '%{IPORHOST:clientip} - %{USER:ident} \[%{HTTPDATE:timestamp}\] "%{WORD:method} %{URIPATH:url} HTTP/%{NUMBER:httpversion}" %{NUMBER:status} %{NUMBER:bytes}'
}
}
date {
match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
}
}
output {
elasticsearch {
hosts => ["http://elasticsearch:9200"]
index => "nginx-logs-%{+YYYY.MM.dd}"
}
}
nginx-logs-2026.01.21nginx-logs-*status >= 500
clientip: "192.168.1.10"
| 场景 | 方法 |
|---|---|
| 系统异常 | 采集 /var/log/messages |
| 安全分析 | 分析 SSH 登录失败 |
| 性能问题 | 响应时间、QPS |
| 业务监控 | 自定义应用日志 |
如果你愿意,可以告诉我:
我可以给你一份 可直接用的配置示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。