日志在系统中至关重要,尤其是生产环境,一旦出现问题,首先是日志中的错误信息触发预警系统,然后通过邮件、短信甚至电话通知的方式报警给系统负责人。在排查修复问题阶段,开发测试人员通常也要查看系统日志,分析故障原因。

 

ELK是常用的日志处理系统,Spring集成LogStash非常方便,配置LogBack将日志发送给LogStash。


代码文件

功能要点

SpringBoot集成LogStash

pom.xml

引入LogStash依赖spring-boot-starter-logging

logback.xml

配置LogStash日志格式

application.yml

引用logback.xml配置

启动LogStash

安装包bin目录

配置logstash.conf,启动logstash -f logstash.conf

 

代码

Github下载:https://github.com/jextop/StarterApi/

 

SpringBoot集成LogStash

1. pom.xml中添加LogStash依赖


    net.logstash.logback
    logstash-logback-encoder
    5.1

2. resouces目录下添加logback.xml

xml version="1.0" encoding="UTF-8"?>

    resource="org/springframework/boot/logging/logback/base.xml"/>

    name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        127.0.0.1:9600
        charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
    


    level="INFO">
        ref="LOGSTASH"/>
    

3. application.yml中引用logback.xml配置:

logging:
  config: classpath:logback.xml

 

启动LogStash

1. 下载LogStash:https://www.elastic.co/downloads/logstash

官网慢时可用网盘:https://pan.baidu.com/s/1b-czkB8z5aL6rdxZtBmNEw 提取码: arfb

2. bin目录下添加logstash.conf:

input.tcp.host可设置本机ip

input.tcp.port设置端口

output.elasticsearch.hosts设置输出地址

input{

    tcp {

        mode => "server"

        host => "0.0.0.0"

        port => 9600

        codec => json_lines

    }

}

output{

    stdout{

     codec => rubydebug

    }

    elasticsearch {

     hosts => ["127.0.0.1:9200"]

    }

}

3. 启动:logstash -f logstash.conf,看到端口信息提示,运行成功

 3步集成LogStash,搭建ELK日志处理系统_第1张图片

运行Spring项目,LogStash将收到日志信息

3步集成LogStash,搭建ELK日志处理系统_第2张图片