写点什么

使用 logstash 获取 springboot 控制台日志并传输到 elasticsearch

作者:小黄鸡1992
  • 2021 年 12 月 03 日
  • 本文字数:1416 字

    阅读完需:约 5 分钟

使用logstash获取springboot控制台日志并传输到elasticsearch

上文已经日志打印在了 springboot 控制台,接下来需要 logstash 将日志解析,并传入 elasticsearch。下文将介绍如何配置日志收集。

一.集成 springboot

1.修改 pom 文件

    <!-- logback 推送日志文件到logstash -->    <dependency>        <groupId>net.logstash.logback</groupId>        <artifactId>logstash-logback-encoder</artifactId>        <version>6.5</version>    </dependency>
复制代码

2.修改 logstash.xml

1.连接 logstash

在原有的 logstash.xml 的添加以下代码,连接 logstash 中间件。详细解析见下文注释。

<!--logstash配置-->    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">        <!--logstaship地址-->        <destination>192.168.xx.xx:5000</destination>        <!-- 日志输出编码 -->        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">            <providers>                <timestamp>                    <timeZone>UTC</timeZone>                </timestamp>                <pattern>                    <pattern>                        {                        "logLevel": "%level",                        "serviceName": "${springAppName:-}",                        "pid": "${PID:-}",                        "thread": "%thread",                        "class": "%logger{40}",                        "rest": "%message"                        }                    </pattern>                </pattern>            </providers>        </encoder>        <!--<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>-->    </appender>
复制代码


注意:<destination>192.168.xx.xx:5000</destination>中 ip 为 logstash 服务器的 ip,端口号是向 logstash 发送请求的端口(需要与下文 logstash 监控配置相同),随便指定,但端口不能被占用,并开启防火墙。

2.激活上文配置

需要在 logstash.xml 添加以下配置,使连接信息生效。

   <root level="info">        <appender-ref ref="CONSOLE" />        <appender-ref ref="INFO_FILE" />        <appender-ref ref="LOGSTASH"/>    </root>
复制代码


注意:<appender-ref ref="LOGSTASH"/> 一定要配置 否则无法输出。

3.修改 application.yml

指定 logstash.xml 需要的配置,不多说。


二.测试连接配置 logstash

1.新增连接配置

在/logstash/bin 中新建 log_to_es.conf,新增以下配置。

//获取从springboot传来的数据input{        tcp {          mode => "server"        host => "0.0.0.0"                port => 5000  监控spring boot发来的请求 与spring boot中端口号相同 且不能有其他端口占用                codec => json_lines        }}//将数据向elasticsearch输出output{        elasticsearch{                hosts=>["192.168.xx.xx:9200"]     es地址                 index => "index-%{+YYYY.MM.dd}"   索引名称                }        stdout{codec => rubydebug}}
复制代码

2.修改 logstash 下的 logstash.yml

修改/logstash/config 下的 logstash.yml 为当前服务器的 ip。

http.host: "192.168.xx.xx"
复制代码

3.查看结果

访问 kibana,按照图中点击,访问接口,查看下文红框处,如果出现下文字样,则传输成功。


发布于: 3 小时前阅读数: 7
用户头像

小黄鸡1992

关注

小黄鸡加油 2021.07.13 加入

一位技术落地与应用的博主,带你从入门,了解和使用各项顶流开源项目。

评论

发布
暂无评论
使用logstash获取springboot控制台日志并传输到elasticsearch