zoukankan      html  css  js  c++  java
  • 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>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %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,这里会显示可用的索引名称。

  • 相关阅读:
    不会全排列算法(Javascript实现),我教你呀!
    驰骋页面,谁主沉浮-也谈清除浮动
    你不知道的parseInt
    Javascript函数重载,存在呢—还是存在呢?
    在这个看脸的世界,该如何优雅的创建JS对象
    Python 函数的使用小结
    Python 集合(set)的使用总结
    Python 文件操作
    python 中字典的操作(增、删、改、查)
    python 中list的操作(循环、切片、增、删、改、查、反转、排序)
  • 原文地址:https://www.cnblogs.com/lori/p/11517334.html
Copyright © 2011-2022 走看看