温馨提示×

温馨提示×

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

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

如何使用elasticsearch做日志分析

发布时间:2026-09-16 20:00:36 来源:亿速云 阅读:116 作者:小樊 栏目:软件技术

使用 Elasticsearch 做日志分析,通常是指结合 Elastic Stack(ELK:Elasticsearch + Logstash + Kibana,或 Elasticsearch + Beats + Kibana) 来完成日志的采集、存储、搜索、统计和可视化。下面从整体架构到实操步骤说明。


一、典型架构(ELK / Elastic Stack)

应用/服务器日志
     ↓
Filebeat / Fluentd(采集)
     ↓
Logstash(清洗、解析,可选)
     ↓
Elasticsearch(存储 + 索引 + 搜索)
     ↓
Kibana(可视化 + 查询分析)

常见组合

  • 轻量级:Filebeat → Elasticsearch → Kibana
  • 复杂处理:Filebeat → Logstash → Elasticsearch → Kibana

二、核心组件说明

1. Elasticsearch

  • 存储日志数据
  • 提供全文检索、聚合分析
  • 每个日志类型通常对应一个 Index(如 logs-app-2026.01.21)

2. Beats(常用 Filebeat)

  • 轻量日志采集器
  • 监控日志文件,实时发送

3. Logstash(可选)

  • 日志过滤、格式转换(JSON、正则解析)
  • 例如:拆分 Nginx / Java / 自定义日志

4. Kibana

  • 日志搜索
  • Dashboard 可视化
  • 异常监控、趋势分析

三、基本使用步骤

步骤 1:日志采集(以 Filebeat 为例)

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

步骤 2:日志结构化(重要)

原始日志:

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}\"" }
}

步骤 3:Elasticsearch 索引设计

  • 按天建索引:app-logs-2026.01.21
  • 使用 ILM(索引生命周期管理) 自动删除旧日志
  • 设置合理分片(如 1–3 个 shard)

步骤 4:Kibana 查询与分析

常见查询

level: ERROR
status: 500 AND service: order
message: "timeout"

聚合分析

  • 错误日志趋势(按时间)
  • TOP 异常类型
  • 各服务请求量
  • 响应时间 P95 / P99

四、常见日志分析场景

1. 错误日志分析

  • 统计 ERROR / WARN 数量
  • 定位高频异常

2. 业务监控

  • 接口调用量
  • 成功率 / 失败率

3. 安全分析

  • 登录失败次数
  • IP 异常访问

4. 性能分析

  • 慢请求日志
  • 耗时分布

五、最佳实践建议

✅ 日志尽量 JSON 格式(减少解析成本)
✅ 使用 ILM 控制存储成本
✅ 合理设置 mapping(避免 text 滥用)
✅ 重要字段建 keyword 用于聚合
✅ 使用 Kibana Alert 做异常告警


六、简单示例流程(最小可用)

  1. 应用输出 JSON 日志
  2. Filebeat 采集
  3. 直接写入 Elasticsearch
  4. Kibana 建索引模式
  5. 看板分析

如果你愿意,我可以:

  • 给你一个 Nginx / Java / Spring Boot 日志的完整示例
  • 帮你写 Filebeat + Logstash 配置
  • 或设计一个 日志分析 Kibana Dashboard

你目前是用什么类型的日志?

向AI问一下细节

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

AI
助
手