点击“终码一生”,关注,置顶公众号

每日技术干货,第一时间送达!

整体流程大概如下:

1

服务器准备

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

2

SpringBoot项目准备

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

pom

IndexController

测试Controller,用以打印日志进行调试

InputMDC

用以获取log中的[%X{hostName}][%X{ip}][%X{applicationName}]三个字段值

NetUtil

启动项目,访问/index/ero接口,可以看到项目中生成了app-collector.logerror-collector.log两个日志文件

我们将Springboot服务部署在192.168.11.31这台机器上。

3

Kafka安装和启用

kafka下载地址:http://kafka.apache.org/downloads.html

kafka安装步骤:首先kafka安装需要依赖与zookeeper,所以小伙伴们先准备好zookeeper环境(三个节点即可),然后我们来一起构建kafka broker。

创建两个topic

创建topic

kafka-topics.sh --zookeeper 192.168.11.111:2181 --create --topic app-log-collector --partitions 1 --replication-factor 1

kafka-topics.sh --zookeeper 192.168.11.111:2181 --create --topic error-log-collector --partitions 1 --replication-factor 1

我们可以查看一下topic情况

kafka-topics.sh --zookeeper 192.168.11.111:2181 --topic app-log-test --describe

可以看到已经成功启用了app-log-collectorerror-log-collector两个topic

4

filebeat安装和启用:

filebeat下载

cd /usr/local/software

tar -zxvf filebeat-6.6.0-linux-x86_64.tar.gz -C /usr/local/

cd /usr/local

mv filebeat-6.6.0-linux-x86_64/ filebeat-6.6.0

配置filebeat,可以参考下方yml配置文件

vim /usr/local/filebeat-5.6.2/filebeat.yml

###################### Filebeat Configuration Example #########################

filebeat.prospectors:

  • input_type: log

paths:

app-服务名称.log, 为什么写死,防止发生轮转抓取历史数据

  • /usr/local/logs/app-collector.log

#定义写入 ES 时的 _type 值

document_type: “app-log”

multiline:

#pattern: ‘^\s*(\d{4}|\d{2})-(\d{2}|[a-zA-Z]{3})-(\d{2}|\d{4})’ # 指定匹配的表达式(匹配以 2017-11-15 08:04:23:889 时间格式开头的字符串)

pattern: ‘^[’                              # 指定匹配的表达式(匹配以 "{ 开头的字符串)

negate: true                                # 是否匹配到

match: after # 合并到上一行的末尾

max_lines: 2000 # 最大的行数

timeout: 2s # 如果在规定时间没有新的日志事件就不等待后面的日志

fields:

logbiz: collector

logtopic: app-log-collector ## 按服务划分用作kafka topic

evn: dev

  • input_type: log

paths:

  • /usr/local/logs/error-collector.log

document_type: “error-log”

multiline:

#pattern: ‘^\s*(\d{4}|\d{2})-(\d{2}|[a-zA-Z]{3})-(\d{2}|\d{4})’ # 指定匹配的表达式(匹配以 2017-11-15 08:04:23:889 时间格式开头的字符串)

pattern: ‘^[’                              # 指定匹配的表达式(匹配以 "{ 开头的字符串)

negate: true                                # 是否匹配到

match: after # 合并到上一行的末尾

max_lines: 2000 # 最大的行数

timeout: 2s # 如果在规定时间没有新的日志事件就不等待后面的日志

fields:

logbiz: collector

logtopic: error-log-collector ## 按服务划分用作kafka topic

evn: dev

output.kafka:

enabled: true

hosts: [“192.168.11.51:9092”]

topic: ‘%{[fields.logtopic]}’

partition.hash:

reachable_only: true

compression: gzip

max_message_bytes: 1000000

required_acks: 1

logging.to_files: true

filebeat启动:

检查配置是否正确

cd /usr/local/filebeat-6.6.0

./filebeat -c filebeat.yml -configtest

Config OK

启动filebeat

/usr/local/filebeat-6.6.0/filebeat &

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后

关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。当然,这些内容我也全部整理在一份pdf文档内,分成了以下几大专题:

  • Java基础部分

  • 算法与编程

  • 数据库部分

  • 流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)

这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。

作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

aba)

[外链图片转存中…(img-f3y72Bj6-1712764177813)]

这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。

作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-PHARJnSO-1712764177814)]

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐