温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎样用elasticsearch做日志分析

发布时间:2026-10-07 11:58:44 来源:亿速云 阅读:113 作者:小樊 栏目:软件技术

用 Elasticsearch 做日志分析,通常是 ELK / Elastic Stack 技术栈的一部分。下面从整体架构 → 采集 → 存储 → 查询分析 → 可视化一步一步说明。


一、整体架构(最常见方案)

日志产生 → 采集 → 传输/处理 → 存储/检索 → 可视化

常用组合:

  • Filebeat / Fluentd / Logstash:收集日志
  • Elasticsearch:存储和检索
  • Kibana:可视化分析
  • (可选)Kafka / Redis:缓冲日志

典型架构:

应用/服务器
   ↓
Filebeat
   ↓
Logstash(解析、过滤)
   ↓
Elasticsearch
   ↓
Kibana

二、日志采集(非常重要)

1. 应用日志规范(建议)

  • 使用 JSON 格式
  • 包含关键字段:
{
  "timestamp": "2026-01-15T10:00:00Z",
  "level": "ERROR",
  "service": "order-service",
  "trace_id": "abc123",
  "message": "timeout"
}

2. 采集工具选择

  • Filebeat(最轻量,推荐)
    • 读取日志文件
    • 直接发到 ES 或 Logstash
  • Logstash
    • 适合复杂日志解析(grok、filter)
  • Fluentd
    • 容器/K8s 场景常用

三、日志写入 Elasticsearch

1. 索引设计(关键)

不要所有日志放一个索引!

推荐:

logs-{service}-{yyyy.MM.dd}

例如:

logs-order-service-2026.01.15
logs-payment-service-2026.01.15

好处:

  • 按天滚动
  • 方便删除旧数据
  • 查询更快

2. 字段映射(Mapping)

常见字段类型:

{
  "timestamp": "date",
  "level": "keyword",
  "service": "keyword",
  "message": "text"
}

注意:

  • level / service 用 keyword(聚合快)
  • message 用 text(全文搜索)

四、日志分析与查询

1. 基础查询(Kibana Dev Tools)

GET logs-order-service-*/_search
{
  "query": {
    "bool": {
      "must": [
        { "match": { "level": "ERROR" }}
      ],
      "filter": [
        { "range": { "timestamp": { "gte": "now-1h" }}}
      ]
    }
  }
}

2. 常见分析场景

✅ 错误日志统计

{
  "aggs": {
    "by_level": {
      "terms": { "field": "level" }
    }
  }
}

✅ 某服务错误趋势

  • 按 @timestamp 做 Date Histogram
  • 过滤 service=order-service

✅ 慢请求分析

  • 日志中包含 response_time
  • 聚合平均/最大耗时

五、Kibana 可视化(最重要的一环)

常用面板

  • Discovery:原始日志搜索
  • Dashboard:
    • 错误数趋势图
    • 各服务日志量
    • Top 错误类型
  • Alerting:
    • ERROR > 100/分钟 → 邮件/钉钉告警

六、日志生命周期管理(ILM)

避免 ES 被日志撑爆:

  • 热节点:最近 7 天
  • 温节点:7–30 天
  • 删除:> 30 天

示例策略:

{
  "policy": {
    "phases": {
      "hot": { "actions": { "rollover": { "max_age": "1d" }}},
      "delete": { "min_age": "30d" }
    }
  }
}

七、典型使用建议

✅ 新手推荐:

  • Filebeat + Elasticsearch + Kibana
  • JSON 日志
  • 按天索引

✅ 进阶:

  • Logstash 做日志清洗
  • ILM 管理生命周期
  • 告警接入企业微信/钉钉

如果你愿意,可以告诉我:

  • 日志来源(Java / Nginx / Docker / K8s?)
  • 是否已有 ES?
  • 想做实时告警还是离线分析?

我可以直接给你 可落地的配置示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手