新增 ELK 日志搜集配置及文档

This commit is contained in:
thinkgem
2023-04-15 11:50:02 +08:00
parent 0ed161c986
commit aa84962a8a
19 changed files with 277 additions and 19 deletions

View File

@@ -87,6 +87,13 @@
<artifactId>jeesite-framework</artifactId>
<version>${project.parent.version}</version>
</dependency>
<!-- ELK 日志收集 -->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>${logstash-logback.version}</version>
</dependency>
</dependencies>

View File

@@ -228,7 +228,11 @@
<template>module_cloud/web/src/main/java/package.xml</template>
<template>module_cloud/web/src/main/java/startClass.xml</template>
<template>module_cloud/web/src/main/resources/config/bootstrap.xml</template>
<template>module_cloud/web/src/main/resources/config/bootstrap-elk.xml</template>
<template>module_cloud/web/src/main/resources/config/bootstrap-prod.xml</template>
<template>module_cloud/web/src/main/resources/config/logback-spring.xml</template>
<template>module_cloud/web/src/main/resources/config/logback-spring-elk.xml</template>
<template>module_cloud/web/src/main/resources/config/logback-spring-prod.xml</template>
<template>module_cloud/web/src/main/resources/static/static.xml</template>
<template>module_cloud/web/src/main/webapp/WEB-INF/startup.bat.xml</template>
<template>module_cloud/web/src/main/webapp/WEB-INF/startup.sh.xml</template>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2013-Now http://jeesite.com All rights reserved.
No deletion without permission, or be held responsible to law. -->
<template>
<name>bootstrap</name>
<filePath>${baseDir}/${moduleCode}/${moduleCode}/src/main/resources/config</filePath>
<fileName>bootstrap-elk.yml</fileName>
<content><![CDATA[
# 使用环境配置,只需 JVM 参数里加:-Dspring.profiles.active=prod,elk
# 日志配置
logging:
config: classpath:config/logback-spring-elk.xml
]]>
</content>
</template>

View File

@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2013-Now http://jeesite.com All rights reserved.
No deletion without permission, or be held responsible to law. -->
<template>
<name>bootstrap</name>
<filePath>${baseDir}/${moduleCode}/${moduleCode}/src/main/resources/config</filePath>
<fileName>bootstrap-prod.yml</fileName>
<content><![CDATA[
# 使用环境配置,只需 JVM 参数里加:-Dspring.profiles.active=prod
#======================================#
#========== Server settings ===========#
#======================================#
server:
port: \${random.int[10000,19999]}
#======================================#
#========== Cloud settings ============#
#======================================#
# 服务注册
eureka:
# 实例设置
instance:
# 实例主机名称
hostname: 192.168.56.1
# 实例是否允许使用IP
preferIpAddress: false
# 客户端设置
client:
# 注册中心地址(集群时指定另外一个注册中心地址)
serviceUrl:
defaultZone: http://192.168.56.1:8970/eureka/
#======================================#
#========== Spring settings ===========#
#======================================#
spring:
# 分布式配置中心
cloud:
config:
discovery:
enabled: true
serviceId: jeesite-cloud-config
# Consul 服务发现
consul:
host: 192.168.56.1
port: 8500
discovery:
hostname: 192.168.56.1
preferIpAddress: false
# 服务注册和配置
nacos:
discovery:
server-addr: 192.168.56.1:8848
config:
server-addr: 192.168.56.1:8848
file-extension: yml
group: jeesite-cloud-yml
extension-configs:
- data-id: application.yml
group: jeesite-cloud-yml
# 服务发现与注册优选IP前缀
#inetutils:
# preferred-networks: 192.168.56.
# 日志配置
logging:
config: classpath:config/logback-spring-prod.xml
]]>
</content>
</template>

View File

@@ -12,7 +12,7 @@
server:
port: 8989
port: \${random.int[10000,19999]}
#======================================#
#========== Cloud settings ============#
@@ -70,10 +70,10 @@ spring:
config:
server-addr: 127.0.0.1:8848
file-extension: yml
group: jeesite-cloud-50
group: jeesite-cloud-yml
extension-configs:
- data-id: application.yml
group: jeesite-cloud-50
group: jeesite-cloud-yml
# 服务发现与注册优选IP前缀
#inetutils:

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2013-Now http://jeesite.com All rights reserved.
No deletion without permission, or be held responsible to law. -->
<template>
<name>logback-spring</name>
<filePath>${baseDir}/${moduleCode}/${moduleCode}/src/main/resources/config</filePath>
<fileName>logback-spring.xml</fileName>
<content><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="false">
<!-- Log file path -Dspring.profiles.active=prod,elk -->
<property name="log.path" value="\${logPath:-\${java.io.tmpdir:-.}}/logs" />
<springProperty name="appname" source="spring.application.name" />
<!-- Framework level setting -->
<include resource="config/logger-core.xml"/>
<!-- Project level setting -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<logger name="io.seata" level="INFO" />
<logger name="zipkin2.reporter.AsyncReporter$BoundedAsyncReporter" level="ERROR" />
<logger name="org.springframework.cloud.openfeign.FeignClientFactoryBean" level="ERROR" />
<!-- <logger name="org.springframework.cloud.openfeign.support.SpringMvcContract" level="DEBUG" /> -->
<logger name="org.springframework.context.annotation.AnnotationConfigApplicationContext" level="ERROR" />
<!-- Console log output -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{MM-dd HH:mm:ss.SSS} %clr(%-5p) %clr([%-39logger{39}]){cyan} - %m%n%wEx</pattern>
</encoder>
</appender>
<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>localhost:5055</destination> <!-- 注意:替换为您的 Logstash 服务地址 -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" >
<customFields>{"appname":"\${appname}"}</customFields>
</encoder>
</appender>
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="WARN">
<appender-ref ref="console" />
<appender-ref ref="logstash" />
</root>
</configuration>]]>
</content>
</template>

View File

@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2013-Now http://jeesite.com All rights reserved.
No deletion without permission, or be held responsible to law. -->
<template>
<name>logback-spring</name>
<filePath>${baseDir}/${moduleCode}/${moduleCode}/src/main/resources/config</filePath>
<fileName>logback-spring.xml</fileName>
<content><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="false">
<!-- Log file path -Dspring.profiles.active=prod -->
<property name="log.path" value="\${logPath:-\${java.io.tmpdir:-.}}/logs" />
<!-- Framework level setting -->
<include resource="config/logger-core.xml"/>
<!-- Project level setting -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<logger name="io.seata" level="INFO" />
<logger name="zipkin2.reporter.AsyncReporter$BoundedAsyncReporter" level="ERROR" />
<logger name="org.springframework.cloud.openfeign.FeignClientFactoryBean" level="ERROR" />
<!-- <logger name="org.springframework.cloud.openfeign.support.SpringMvcContract" level="DEBUG" /> -->
<logger name="org.springframework.context.annotation.AnnotationConfigApplicationContext" level="ERROR" />
<!-- Production level setting -->
<logger name="org.mybatis.spring.transaction" level="INFO" />
<logger name="org.flowable.ui.modeler.domain" level="INFO" />
<logger name="org.flowable.idm.engine.impl.persistence" level="INFO" />
<logger name="org.flowable.task.service.impl.persistence" level="INFO" />
<logger name="org.flowable.identitylink.service.impl.persistence" level="INFO" />
<logger name="org.flowable.variable.service.impl.persistence" level="INFO" />
<logger name="org.flowable.engine.impl.persistence" level="INFO" />
<logger name="com.jeesite" level="INFO" />
<logger name="com.jeesite.common.mybatis.mapper" level="INFO" />
<!-- Project level setting -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<!-- Console log output -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{MM-dd HH:mm:ss.SSS} %clr(%-5p) %clr([%-39logger{39}]){cyan} - %m%n%wEx</pattern>
</encoder>
</appender>
<!-- Log file debug output -->
<appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>\${log.path}/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>\${log.path}/debug.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p \${PID:- } [%15.15t] [%-39logger{39}] [%X{TRACE_ID}] - %m%n%wEx</pattern>
</encoder>
<!--<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>DENY</onMatch>
<onMismatch>NEUTRAL</onMismatch>
</filter>-->
</appender>
<!-- Log file error output -->
<appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>\${log.path}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>\${log.path}/error.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p \${PID:- } [%15.15t] [%-39logger{39}] [%X{TRACE_ID}] - %m%n%wEx</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="WARN">
<appender-ref ref="console" />
<appender-ref ref="debug" />
<appender-ref ref="error" />
</root>
</configuration>]]>
</content>
</template>

View File

@@ -15,9 +15,11 @@
<include resource="config/logger-core.xml"/>
<!-- Project level setting -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<logger name="io.seata" level="INFO" />
<logger name="zipkin2.reporter.AsyncReporter$BoundedAsyncReporter" level="ERROR" />
<logger name="org.springframework.cloud.openfeign.FeignClientFactoryBean" level="ERROR" />
<!-- <logger name="org.springframework.cloud.openfeign.support.SpringMvcContract" level="DEBUG" /> -->
<logger name="org.springframework.context.annotation.AnnotationConfigApplicationContext" level="ERROR" />
<!-- Console log output -->
@@ -36,7 +38,7 @@
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p \${PID:- } [%15.15t] [%-39logger{39}] - %m%n%wEx</pattern>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p \${PID:- } [%15.15t] [%-39logger{39}] [%X{TRACE_ID}] - %m%n%wEx</pattern>
</encoder>
<!--<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
@@ -54,7 +56,7 @@
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p \${PID:- } [%15.15t] [%-39logger{39}] - %m%n%wEx</pattern>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p \${PID:- } [%15.15t] [%-39logger{39}] [%X{TRACE_ID}] - %m%n%wEx</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>

View File

@@ -15,6 +15,7 @@
<modules>
<module>core</module>
<module>cms</module>
<module>app</module>
</modules>
<developers>

View File

@@ -41,6 +41,7 @@
<pinyin4j.version>2.5.1</pinyin4j.version>
<groovy.version>3.0.10</groovy.version>
<joda-time.version>2.10.4</joda-time.version>
<logstash-logback.version>7.3</logstash-logback.version>
<elasticsearch.version>7.17.8</elasticsearch.version>
<lucene.version>8.11.1</lucene.version>

View File

@@ -275,7 +275,7 @@ spring:
# maxIdle: 3
# # 最大活动连接数
# maxActive: 20
#
# # 缓存配置
# cache:
# # 缓存及会话共享(专业版)

View File

@@ -17,7 +17,7 @@
<logger name="com.jeesite.common.mybatis.mapper" level="INFO" />
<!-- Project level setting -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<!-- Console log output -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">

View File

@@ -8,7 +8,7 @@
<include resource="config/logger-core.xml"/>
<!-- Project level setting -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<!-- Console log output -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">

View File

@@ -17,7 +17,7 @@
<logger name="com.jeesite.common.mybatis.mapper" level="INFO" />
<!-- Project level setting -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<!-- Console log output -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">

View File

@@ -8,7 +8,7 @@
<include resource="config/logger-core.xml"/>
<!-- Project level setting -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<!-- Console log output -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">

View File

@@ -42,6 +42,13 @@
<version>${project.parent.version}</version>
</dependency>
<!-- 移动端模块 -->
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-module-app</artifactId>
<version>${project.parent.version}</version>
</dependency>
<!-- 在线文档接口 -->
<dependency>
<groupId>com.jeesite</groupId>
@@ -56,19 +63,19 @@
<version>${project.parent.version}</version>
</dependency>
<!-- 内容管理扩展模块(标准版)
<!-- 内容管理-页面静态化(标准版)
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-module-cms-extend</artifactId>
<artifactId>jeesite-module-cms-pagecache</artifactId>
<version>${project.parent.version}</version>
</dependency> -->
<!-- 移动端模块 -->
<!-- 内容管理-网站全文检索(专业版)
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-module-app</artifactId>
<artifactId>jeesite-module-cms-elasticsearch</artifactId>
<version>${project.parent.version}</version>
</dependency>
</dependency> -->
<!-- 文件管理共享(标准版)
<dependency>

View File

@@ -275,7 +275,7 @@ spring:
# maxIdle: 3
# # 最大活动连接数
# maxActive: 20
#
# # 缓存配置
# cache:
# # 缓存及会话共享(专业版)

View File

@@ -17,7 +17,7 @@
<logger name="com.jeesite.common.mybatis.mapper" level="INFO" />
<!-- Project level setting -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<!-- Console log output -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">

View File

@@ -8,7 +8,7 @@
<include resource="config/logger-core.xml"/>
<!-- Project level setting -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<!-- <logger name="your.package" level="DEBUG" /> -->
<!-- Console log output -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">