使用 Elasticsearch 做日志分析,通常是指结合 Elastic Stack(ELK:Elasticsearch + Logstash + Kibana,或 Elasticsearch + Beats + Kibana) 来完成日志的采集、存储、搜索、统计和可视化。下面从整体架构到实操步骤说明。
应用/服务器日志
↓
Filebeat / Fluentd(采集)
↓
Logstash(清洗、解析,可选)
↓
Elasticsearch(存储 + 索引 + 搜索)
↓
Kibana(可视化 + 查询分析)
logs-app-2026.01.21)filebeat.yml 示例
filebeat.inputs:
- type: log
paths:
- /var/log/app/*.log
output.elasticsearch:
hosts: ["http://localhost:9200"]
index: "app-logs-%{+yyyy.MM.dd}"
启动:
./filebeat -e -c filebeat.yml
原始日志:
2026-01-21 10:22:33 ERROR user=123 msg="timeout"
建议在 Logstash 或 ingest pipeline 中解析成:
{
"timestamp": "2026-01-21T10:22:33",
"level": "ERROR",
"user": "123",
"message": "timeout"
}
示例 Logstash filter:
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} user=%{NUMBER:user} msg=\"%{GREEDYDATA:msg}\"" }
}
app-logs-2026.01.21level: ERROR
status: 500 AND service: order
message: "timeout"
✅ 日志尽量 JSON 格式(减少解析成本)
✅ 使用 ILM 控制存储成本
✅ 合理设置 mapping(避免 text 滥用)
✅ 重要字段建 keyword 用于聚合
✅ 使用 Kibana Alert 做异常告警
如果你愿意,我可以:
你目前是用什么类型的日志?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。