Springboot接入ELK进行日志收集
# Springboot接入ELK进行日志收集
本文基于 docker-compose部署ELK 环境下调试
# 关键配置
步骤:新建一个可运行的Springboot程序,引入jar包配置下日志即可完成接入。
在上面的安装文章中,开放了4560
,4570
,4580
,并且配置成了接受不同等级的日志,在日志配置文件中体现。
# 新建或修改logback-spring.xml
下面是我使用的配置,你只需要找到有关logstash的复制到你的配置中即可。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<contextName>vedio-download</contextName>
<!-- property标签可用于自定义属性,比如定义一个,然后使用${LOG_HOME}去引用它 -->
<property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/>
<!--
logback可配置多种颜色,支持:
“%black”, “%shired”, “%green”,“%yellow”,“%blue”, “%magenta”,“%cyan”,
“%white”, “%gray”, “%boldRed”,“%boldGreen”, “%boldYellow”, “%boldBlue”,
“%boldMagenta”“%boldCyan”,“%boldWhite” , “%highlight”
-->
<property name="pattern-color" value="%yellow(%d{yyyy-MM-dd HH:mm:ss.SSS}) [%thread] %highlight(%-5level) %green(%logger{50}) - %boldCyan(%msg) %n"/>
<property name="LOG_HOME" value="logs"/>
<!-- 控制台输出 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${pattern}</pattern>
</encoder>
</appender>
<!-- 控制台输出-带颜色 -->
<appender name="CONSOLE-WITH-COLOR" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${pattern-color}</pattern>
</encoder>
</appender>
<!-- 文件输出 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/application.%d.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 日志最大大小,超出就创建新的文件-->
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 日志最大保存时间 -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${pattern}</pattern>
</encoder>
</appender>
<!-- <include resource="org/springframework/boot/logging/logback/base.xml"/>-->
<springProperty scope="context" name="applicationName" source="spring.application.name"/>
<appender name="infoLogstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>你的logstashIP:4560</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
<!--添加applicationName字段 -->
<customFields>{"applicationName":"${applicationName}"}</customFields>
</encoder>
</appender>
<appender name="operationLogstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>你的logstashIP:4570</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
<customFields>{"applicationName":"${applicationName}"}</customFields>
</encoder>
</appender>
<appender name="securityLogstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>你的logstashIP:4580</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
<customFields>{"applicationName":"${applicationName}"}</customFields>
</encoder>
</appender>
<logger name="operation" level="info">
<appender-ref ref="operationLogstash"/>
</logger>
<logger name="security" level="info">
<appender-ref ref="securityLogstash"/>
</logger>
<root level="INFO">
<!-- 输入ELK info-->
<appender-ref ref="infoLogstash"/>
<!-- 控制台 -->
<appender-ref ref="CONSOLE-WITH-COLOR"/>
<!-- 文件 -->
<appender-ref ref="FILE"/>
</root>
</configuration>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# 关键jar包
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>7.3</version>
</dependency>
1
2
3
4
5
2
3
4
5
# 查看结果
展开查看
编辑 (opens new window)
上次更新: 2023/05/28, 08:23:00