springboot集成LogStash的步骤

2023-05-20,,

这篇文章给大家分享的是springboot集成LogStash的步骤。小编觉得挺实用的,因此分享给大家学习。如下资料是关于springboot集成LogStash的内容。

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

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依赖

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>5.1</version>
</dependency>

2. resouces目录下添加logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>

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

    <root level="INFO">
        <appender-ref ref="LOGSTASH"/>
    </root>
</configuration>

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 => ["elasticsearch:9200"]
    }
}

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

 

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

关于springboot集成LogStash的步骤就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果喜欢这篇文章,不如把它分享出去让更多的人看到。

《springboot集成LogStash的步骤.doc》

下载本文的Word格式文档,以方便收藏与打印。