使用Logback输出日志到ELK

使用Logback输出日志到ELK

背景介绍

前两篇文章中我们介绍了windows上如何搭建ELK日志收集系统,那么问题来了,日志系统搭建完成后如何使用java代码直接输出日志到ELK系统中?

logback支持ELK

我们带着背景中的问题进行下面的开始思路整理,其实在ELK文章中我们已经说了两种方案,其实ELK中logstash支持的日志收集的方式有很多种,下面说一下logstash收集其中方法:

  1. 使用logstash对文件进行检测
  2. 使用TCP协议,logstash开放对TCP协议端口的监听。
  3. 使用UDP协议,logstash开放对UDP协议端口的监听。

我们本章节中使用的是TCP协议的方式进行日志输出,下面看一下logback的配置文件。

  1. 引入依赖项logstash-logback-encoder

    1
    2
    3
    4
    5
    6
    <!-- logback和logstash结合 -->
    <dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>5.2</version>
    </dependency>
  2. 修改logback的配置文件信息。

    1
    2
    3
    4
    5
    6
    7
    8
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <destination>192.168.1.107:9250</destination>
    <!-- encoder必须配置,有多种可选 -->
    <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
    </appender>
    <root level="ERROR">
    <appender-ref ref="LOGSTASH"/>
    </root>

appender的name属性使用的是net.logstash.logback.appender.LogstashTcpSocketAppender
destination属性:tcp的IP地址和端口号
encoder:编码格式

文章目录
  1. 1. 使用Logback输出日志到ELK
    1. 1.1. 背景介绍
    2. 1.2. logback支持ELK