Skip to content

日志采集

一、采集日志的核心作用

日志是线上定位系统故障、排查接口异常、追踪请求链路的核心依据,通过集中化日志采集可以快速检索、筛选、分析全服务日志,不用登录每台服务器查看本地文件。

二、两种日志存储采集方案

1. 传统本地日志方案

使用Logback按日期切割本地日志文件,每台服务器单独生成日志文件(格式:服务名-端口-日期.log)。 缺点:微服务多实例部署时,排查问题需要登录多台服务器,检索效率极低,不适合分布式项目。

2. ELK集中式日志采集方案(项目落地使用)

ELK是Elasticsearch、Logstash、Kibana三款开源组件的缩写,实现分布式日志统一收集、清洗、存储、可视化检索。 完整数据流:Java微服务(Logback) → Logstash → Elasticsearch → Kibana

三、ELK各组件职责

  1. 应用端 Logback Java项目日志输出框架,将程序运行日志实时推送到Logstash收集引擎,统一格式化日志内容。
  2. Logstash(日志收集引擎) 动态接收多服务推送的日志,完成日志过滤、清洗、字段解析,处理后将标准化日志写入Elasticsearch。
  3. Elasticsearch(全文检索存储引擎) 负责持久化所有日志数据,提供高速全文检索、聚合统计能力,支撑海量日志快速查询。
  4. Kibana(可视化分析平台) 对接Elasticsearch,提供Web可视化页面,支持日志关键词检索、条件过滤、数据图表展示、链路排查。

四、完整总结(面试背诵版)

  1. 日志采集用于线上问题快速定位,分为本地文件日志、ELK集中采集两种方案,分布式微服务推荐ELK。
  2. ELK架构流程:微服务通过Logback输出日志至Logstash,Logstash清洗过滤后存入ES,Kibana提供可视化检索页面。
  3. 三大核心组件分工:Logstash负责收集清洗日志;Elasticsearch存储、检索日志;Kibana可视化查询与分析。

五、面试简答

问:你们项目中日志是怎么采集的?

答: 项目采用ELK分布式集中日志采集系统,用来统一收集所有微服务日志,方便线上快速排查问题。

  1. 应用层使用Logback框架,将每个微服务的运行日志实时推送到Logstash;
  2. Logstash作为日志收集引擎,接收多服务日志并做过滤、清洗、字段解析,标准化日志格式;
  3. 清洗完成的日志存入Elasticsearch,ES提供海量日志的存储和全文检索能力;
  4. Kibana对接Elasticsearch,提供可视化Web页面,我们可以直接在线检索、筛选、分析日志,不用登录每台服务器查看本地日志文件。 对比传统按天分割的本地日志文件,ELK集中采集大幅提升线上故障排查效率。

Powered by VitePress 1.6.4 | 持续更新中