用 Elasticsearch 做日志分析,通常是 ELK / Elastic Stack 技术栈的一部分。下面从整体架构 → 采集 → 存储 → 查询分析 → 可视化一步一步说明。
日志产生 → 采集 → 传输/处理 → 存储/检索 → 可视化
常用组合:
典型架构:
应用/服务器
↓
Filebeat
↓
Logstash(解析、过滤)
↓
Elasticsearch
↓
Kibana
{
"timestamp": "2026-01-15T10:00:00Z",
"level": "ERROR",
"service": "order-service",
"trace_id": "abc123",
"message": "timeout"
}
不要所有日志放一个索引!
推荐:
logs-{service}-{yyyy.MM.dd}
例如:
logs-order-service-2026.01.15
logs-payment-service-2026.01.15
好处:
常见字段类型:
{
"timestamp": "date",
"level": "keyword",
"service": "keyword",
"message": "text"
}
注意:
level / service 用 keyword(聚合快)message 用 text(全文搜索)GET logs-order-service-*/_search
{
"query": {
"bool": {
"must": [
{ "match": { "level": "ERROR" }}
],
"filter": [
{ "range": { "timestamp": { "gte": "now-1h" }}}
]
}
}
}
{
"aggs": {
"by_level": {
"terms": { "field": "level" }
}
}
}
@timestamp 做 Date Histogramservice=order-serviceresponse_time避免 ES 被日志撑爆:
示例策略:
{
"policy": {
"phases": {
"hot": { "actions": { "rollover": { "max_age": "1d" }}},
"delete": { "min_age": "30d" }
}
}
}
✅ 新手推荐:
✅ 进阶:
如果你愿意,可以告诉我:
我可以直接给你 可落地的配置示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。