ELK 日志平台搭建
线上出了问题,还要登录每台机器 grep 日志?ELK 日志平台让你在一个界面搜索所有服务的日志。
一、为什么需要集中日志
- 1.1 微服务架构——日志分散在多台机器
- 1.2 容器化——Pod 重启日志丢失
- 1.3 排查效率——关联查询多个服务的日志
二、ELK 架构
- 2.1 Elasticsearch——存储和索引
- 2.2 Logstash——日志解析和转换
- 2.3 Kibana——可视化和检索
- 2.4 Filebeat——轻量级采集(替代 Logstash 的采集功能)
三、Filebeat 配置
- 3.1 采集 Spring Boot 日志文件——
paths配置 - 3.2 多行日志合并——Java 异常堆栈
- 3.3 添加字段——
fields(服务名、环境) - 3.4 输出到 Logstash / ES
四、Logstash 配置
- 4.1 input——接收 Filebeat 数据
- 4.2 filter——grok 解析日志格式
- 4.3 自定义日志 Pattern——匹配 Java 日志格式
- 4.4 output——输出到 ES
五、Spring Boot 日志配置
- 5.1 Logback JSON 格式——
logstash-logback-encoder - 5.2 输出 TraceId——链路追踪关联
- 5.3 异步日志——
AsyncAppender
六、Kibana 使用
- 6.1 Index Pattern 创建
- 6.2 Discover——检索日志
- 6.3 按 TraceId 串联一次请求的所有日志
- 6.4 Dashboard 创建
七、总结
- ELK 是微服务日志管理的基础设施
- 关键——结构化日志 + TraceId 关联
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 谜思录!