Spring Boot 配合 ELK 记录日志

本文介绍了 Spring Boot 2 配合 ELK 实现日志记录的方法和步骤。


目录

  • ELK 简介
  • 开发环境
  • 基础示例
  • 总结

ELK 简介

ELK 是 Elastic 公司提供的三个产品组件,配合使用可以完成日志记录功能。

  • E(ElasticSearch):存储日志
  • L(Logstash):收集、处理和转发日志
  • K(Kibana):提供日志检索功能的 Web 应用

有关 ELK 的其它信息请参看:ELK教程


开发环境

  • Oracle JDK 1.8.0_201
  • Apache Maven 3.6.0
  • IntelliJ IDEA (Version 2018.3.3)

基础示例

  1. 安装 ElasticSearch,Logstash 和 Kibana。

  2. 在 Logstash bin 目录下新增配置文件 logstash_tcp.conf,重启 Logstash(参考:CentOS 7.x 安装 Logstash 6.x)。

input {
  tcp {
    host => "0.0.0.0"
    mode => "server"
    port => 9600
    codec => "json"
  }
}

output {
  elasticsearch {
    hosts => "127.0.0.1:9200"
    index => "tcp-%{+YYYY.MM.dd}"
  }
}

说明:

  • input 配置参考:Input plugins
  • output 配置参考:Output plugins
  1. 修改 Kibana 配置文件 config/kibana.yml,添加 elasticsearch.url: "http://127.0.0.1:9200",重启 Kibana(参考:CentOS 7.x 安装 Kibana 6.x)

  2. 修改需要配合 ELK 记录日志的工程,在 pom.xml 中添加 logstash-logback-encoder 依赖。


  net.logstash.logback
  logstash-logback-encoder
  6.2

  1. 修改 Logback 配置文件,添加 net.logstash.logback.appender.LogstashTcpSocketAppender


    
    
        
        [Logstash IP]:9600
        
        
    
    
        
    

  1. 登录 Kibana Web 管理页面 IP:5601,执行 Create Index Pattern,配置完成后点击 Discover,选中 Available fields 中的 message,点击 add,页面刷新后可以看到上报的日志。
    注意:Create Index Pattern 前确保 Elasticsearch 中有数据,这样会自动刷新出 Elasticsearch 中已有的 Index,可以按照提示创建。

注意:本示例 Logback 配置实现日志同步发送到 Logstash,生产环境中最好配置异步日志记录,异步日志配置请参考:Logback 异步日志配置

异步日志配置示例:



    
    
        
        [Logstash IP]:9600
        
        
    
    
    
        0
        1024
        
    
    
        
    

你可能感兴趣的:(Spring Boot 配合 ELK 记录日志)