巧用 SpringBoot+Kafka+ELK 完成海量日志收集(超详细)

整体流程大概如下:

52a6e273d8a295a6ace2f1806840b69f.jpeg

服务器准备

在这先列出各服务器节点,方便同学们在下文中对照节点查看相应内容

f97db72b2b1324c780072c34a92b743f.jpeg

SpringBoot项目准备

引入log4j2替换SpringBoot默认log,demo项目结构如下:

664b9be2863ee6fec71802f06884a4e2.jpeg

pom

<dependencies>
&nbsp;&nbsp;&nbsp;&nbsp; <dependency>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <groupId>org.springframework.boot </groupId>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <artifactId>spring-boot-starter-web </artifactId>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <!--&nbsp;&nbsp;排除spring-boot-starter-logging&nbsp;-->
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <exclusions>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <exclusion>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <groupId>org.springframework.boot </groupId>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <artifactId>spring-boot-starter-logging </artifactId>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </exclusion>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </exclusions>
&nbsp;&nbsp;&nbsp;&nbsp; </dependency>&nbsp;
&nbsp; <!--&nbsp;log4j2&nbsp;-->
&nbsp; <dependency>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <groupId>org.springframework.boot </groupId>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <artifactId>spring-boot-starter-log4j2 </artifactId>
&nbsp; </dependency>&nbsp;
&nbsp;&nbsp;&nbsp; <dependency>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <groupId>com.lmax </groupId>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <artifactId>disruptor </artifactId>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <version>3.3.4 </version>
&nbsp;&nbsp;&nbsp; </dependency>&nbsp;
</dependencies>&nbsp;

log4j2.xml

<?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?>
<Configuration&nbsp;status="INFO"&nbsp;schema="Log4J-V2.0.xsd"&nbsp;monitorInterval="600"&nbsp;>
&nbsp;&nbsp;&nbsp;&nbsp; <Properties>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <Property&nbsp;name="LOG_HOME">logs </Property>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <property&nbsp;name="FILE_NAME">collector </property>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <property&nbsp;name="patternLayout">[%d{yyyy-MM-dd'T'HH:mm:ss.SSSZZ}]&nbsp;[%level{length=5}]&nbsp;[%thread-%tid]&nbsp;[%logger]&nbsp;[%X{hostName}]&nbsp;[%X{ip}]&nbsp;[%X{applicationName}]&nbsp;[%F,%L,%C,%M]&nbsp;[%m]&nbsp;##&nbsp;'%ex'%n </property>
&nbsp;&nbsp;&nbsp;&nbsp; </Properties>
&nbsp;&nbsp;&nbsp;&nbsp; <Appenders>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <Console&nbsp;name="CONSOLE"&nbsp;target="SYSTEM_OUT">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <PatternLayout&nbsp;pattern="${patternLayout}"/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </Console>&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <RollingRandomAccessFile&nbsp;name="appAppender"&nbsp;fileName="${LOG_HOME}/app-${FILE_NAME}.log"&nbsp;filePattern="${LOG_HOME}/app-${FILE_NAME}-%d{yyyy-MM-dd}-%i.log"&nbsp;>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <PatternLayout&nbsp;pattern="${patternLayout}"&nbsp;/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <Policies>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <TimeBasedTriggeringPolicy&nbsp;interval="1"/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SizeBasedTriggeringPolicy&nbsp;size="500MB"/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </Policies>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <DefaultRolloverStrategy&nbsp;max="20"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </RollingRandomAccessFile>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <RollingRandomAccessFile&nbsp;name="errorAppender"&nbsp;fileName="${LOG_HOME}/error-${FILE_NAME}.log"&nbsp;filePattern="${LOG_HOME}/error-${FILE_NAME}-%d{yyyy-MM-dd}-%i.log"&nbsp;>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <PatternLayout&nbsp;pattern="${patternLayout}"&nbsp;/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <Filters>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <ThresholdFilter&nbsp;level="warn"&nbsp;onMatch="ACCEPT"&nbsp;onMismatch="DENY"/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </Filters>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <Policies>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <TimeBasedTriggeringPolicy&nbsp;interval="1"/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SizeBasedTriggeringPolicy&nbsp;size="500MB"/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </Policies>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <DefaultRolloverStrategy&nbsp;max="20"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </RollingRandomAccessFile>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp; </Appenders>
&nbsp;&nbsp;&nbsp;&nbsp; <Loggers>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <!--&nbsp;业务相关&nbsp;异步logger&nbsp;-->
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <AsyncLogger&nbsp;name="com.bfxy.*"&nbsp;level="info"&nbsp;includeLocation="true">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <AppenderRef&nbsp;ref="appAppender"/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </AsyncLogger>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <AsyncLogger&nbsp;name="com.bfxy.*"&nbsp;level="info"&nbsp;includeLocation="true">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <AppenderRef&nbsp;ref="errorAppender"/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </AsyncLogger>&nbsp;&nbsp;&nbsp;&a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值