springboot项目日志通过logback+logstash同步到ES

**

springboot项目日志通过logback+logstash同步到ES

**
主要内容

直接上干货 es和logstash安装自己去百度哦
这里假设大家是已经安装好了es和对应版本的logstash

logstash配置文件

input {
  tcp {
    mode => "server"
    host => "127.0.0.1"
    port => 4560 #监听端口号
  }
}

output {
  elasticsearch {
	action => "index" # es里的新增命令
    hosts => "localhost:9200" #同步到es的地址
    index => "logstash-%{+YYYY.MM}" #存储日志的索引库名称,不存在的话会自动创建
	}
}

springBoot项目的依赖(其余依赖根据自身项目自己添加)这里主要讲解日志同步es功能

<!--        logstash-logback-encoder就是转码后向logstash中输入的依赖-->
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>5.3</version>
        </dependency>


logback.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!--该日志将日志级别不同的log信息保存到不同的文件中 -->
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />

    <springProperty scope="context" name="springAppName"
                    source="spring.application.name" />

    <!-- 日志在工程中的输出位置 -->
    <property name="LOG_FILE" value="${BUILD_FOLDER:-build}/${springAppName}" />

    <!-- 控制台的日志输出样式 -->
    <property name="CONSOLE_LOG_PATTERN"
              value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}" />

    <!-- 控制台输出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <!-- 日志输出编码 -->
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!-- logstash远程日志配置-->
    <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--        127.0.0.1:4560 ->监听端口号-->
        <destination>127.0.0.1:4560</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">

            <customFields>{"server_name":"peanut-goods-service"}</customFields>
        </encoder>
    </appender>

    <!-- 日志输出级别 -->
    <root level="info">
        <appender-ref ref="console" />
        <appender-ref ref="logstash" />
    </root>
</configuration>

放入resources目录下
在这里插入图片描述

在Kibana中查看日志信息

在这里插入图片描述

Kibana界面查看

进入到Kibana后按图所示点击。创建索引表达式
在这里插入图片描述

选择没有时间过滤后,点击“Create index pattern”按钮

在这里插入图片描述

点击菜单中Discover,选择右侧logstash-2023.11

在这里插入图片描述

IDEA中控制台打印的原日志内容是下面内容。Logstash作用就是把下面内容转换为上面Elasticsearch存储的内容。在中间做了数据格式转换,收集数据放入Elasticsearch中的工作。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值