作者:梦想不被束缚 | 来源:互联网 | 2023-08-20 16:06
【前言:整个ELK日志系统已经搭建好了,接下来的流程就是:springboot项目中的logback日志配置通过tcp传输,把springboot项目中所有日志数据传到————》l
【
前言:整个ELK日志系统已经搭建好了,接下来的流程就是:
springboot项目中的logback日志配置通过tcp传输,把springboot项目中所有日志数据传到————》logstash,再由logstash把收集来的日志数据传到——————》elasticsearch集群————————》最后由kibana展示。
】
1、准备一个springboot项目,并配置logback日志
1.1、springboot项目demo怎么创建就不写了,pom.xml要配置logback包依赖和logstash包依赖,如下:
org.springframework.boot
spring-boot-starter-logging
net.logstash.logback
logstash-logback-encoder
4.11
1.2、然后是logback与spring的整合配置文件logback-spring.xml,内容如下:(里面有logback向logstash传输的配置)
"1.0" encoding="UTF-8"?>
"true" scanPeriod="60 seconds" debug="false">
"log_dir" value="/logs/jz-project" />
"maxHistory" value="30"/>
"STDOUT" class="ch.qos.logback.core.ConsoleAppender">
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n
"ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
class="ch.qos.logback.classic.filter.LevelFilter">
ERROR
ACCEPT
DENY
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
${log_dir}/%d{yyyy-MM-dd}/error-log.log
${maxHistory}
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
"WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
class="ch.qos.logback.classic.filter.LevelFilter">
WARN
ACCEPT
DENY
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
${log_dir}/%d{yyyy-MM-dd}/warn-log.log
${maxHistory}
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
"INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
class="ch.qos.logback.classic.filter.LevelFilter">
INFO
ACCEPT
DENY
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
${log_dir}/%d{yyyy-MM-dd}/info-log.log
${maxHistory}
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
"DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
class="ch.qos.logback.classic.filter.LevelFilter">
DEBUG
ACCEPT
DENY
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
${log_dir}/%d{yyyy-MM-dd}/debug-log.log
${maxHistory}
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
"TRACE" class="ch.qos.logback.core.rolling.RollingFileAppender">
class="ch.qos.logback.classic.filter.LevelFilter">
TRACE
ACCEPT
DENY
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
${log_dir}/%d{yyyy-MM-dd}/trace-log.log
${maxHistory}
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
"LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
192.168.26.233:9601
"UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" >
{"appname":"zj_test"}
"com.jzproject.mapper" level="DEBUG" />
"info">
ref ref="STDOUT" />
ref ref="ERROR" />
ref ref="INFO" />
ref ref="WARN" />
ref ref="DEBUG" />
ref ref="TRACE" />
ref ref="LOGSTASH" />
下面来看整合效果:
开启3台服务器es集群服务、开启logstash服务,开启kibana服务。
只是为了演示日志数据传入服务器ELK系统的效果,springboot项目就不上传服务器启动了,只在本地启动,本地启动时会立刻就会有日志生成,并通过刚才的logback与logstash的配置传输日志到服务器上的ELK日志系统里。
1、在idea上启动项目:
3、到浏览器上打开kibana,效果如下:也显示出了刚才启动项目生成的日志数据,不过要创建一下日志索引具体使用就要去学kibana的使用了
到此为止整个ELK日志系统与springboot项目整合算是完成了,这只是一个初步的日志系统,用户量一大,日志数据将会是爆发式增涨,下一步将考虑如何把kafka整合进来
放牛去。。。