springboot向elk写日志

Posted lori

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot向elk写日志相关的知识,希望对你有一定的参考价值。

springboot里连接elk里的logstash,然后写指定index索引的日志,而之后使用kibana去查询和分析日志,使用elasticsearch去保存日志。

添加引用

implementation 'net.logstash.logback:logstash-logback-encoder:5.3'

添加配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <property name="LOG_HOME" value="./logs" />
    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%dyyyy-MM-dd HH:mm:ss.SSS [%thread] %-5level %logger50 - %msg  %n</pattern>
        </encoder>
    </appender>

    <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <param name="Encoding" value="UTF-8"/>
        <destination>127.0.0.1:5000</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" >
            <customFields>"appname":"elkDemo"</customFields>
        </encoder>
    </appender>


    <!-- 日志输出级别 -->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="logstash" />
    </root>

</configuration>

指定配置

server.port=81
logging.config=classpath:logback-spring.xml

logstash配置索引

input 
    tcp 
        port => 5000
        codec => "json"

    


## Add your filters / logstash plugins configuration here

output 
    elasticsearch 
        hosts => "elasticsearch:9200"
        user => "elastic"
        password => "changeme"
        index => "%[appname]"
    

kibana里建立索引

通过kiban菜单去建立索引:Management>Index patterns>Create index pattern,这里会显示可用的索引名称。

以上是关于springboot向elk写日志的主要内容,如果未能解决你的问题,请参考以下文章

springboot集成elk 二:springboot + elk 采集日志

docker安装ELK 收集springboot日志(方法1)

SpringBoot应用整合并使用Docker安装ELK实现日志收集

springboot集成elk 一: springboot + Elasticsearch

话编程 | 日志系统 (elk +springboot)

SpringBoot+ELK日志系统搭建