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

  金牌会员 | 2024-8-1 08:36:01 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 507|帖子 507|积分 1521

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

pom

IndexController
测试Controller,用以打印日记举行调试

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

NetUtil

启动项目,访问/index和/ero接口,可以看到项目中天生了app-collector.log和error-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-collector和error-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 &
查抄是否启动成功
ps -ef | grep filebeat
可以看到filebeat已经启动成功

然后我们访问192.168.11.31:8001/index和192.168.11.31:8001/err,再检察kafka的logs文件,可以看到已经天生了app-log-collector-0和error-log-collector-0文件,说明filebeat已经帮我们把数据收集好放到了kafka上。
5
logstash安装
logstash的安装可以参考《Logstash的安装与使用》。
我们在logstash的安装目录下新建一个文件夹
mkdir scrpit
然后cd进该文件,创建一个logstash-script.conf文件
cd scrpit
vim logstash-script.conf
multiline 插件也可以用于其他类似的堆栈式信息,好比 linux 的内核日记。

input {
kafka {
app-log-服务名称

topics_pattern => “app-log-.*”
bootstrap_servers => “192.168.11.51:9092”
codec => json
consumer_threads => 1  ## 增长consumer的并行消耗线程数
decorate_events => true
#auto_offset_rest => “latest”
group_id => “app-log-group”
}
kafka {
error-log-服务名称

topics_pattern => “error-log-.*”
bootstrap_servers => “192.168.11.51:9092”
codec => json
consumer_threads => 1
自我介绍一下,小编13年上海交大结业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提拔技能,往往是自己摸索发展或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易遇到天花板技术故步自封!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简朴,就是盼望可以或许资助到想自学提拔又不知道该从何学起的朋友,同时减轻各人的负担。



既有适合小白学习的零底子资料,也有适合3年以上履历的小同伴深入学习提拔的进阶课程,根本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部门目录截图出来,每个节点内里都包含大厂面经、学习笔记、源码课本、实战项目、解说视频,并且会持续更新!
如果你以为这些内容对你有资助,可以扫码获取!!(备注Java获取)
最后

在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例


由于篇幅限制,文档的详解资料太全面,细节内容太多,以是只把部门知识点截图出来粗略的介绍,每个小节点内里都有更细化的内容!
各人看完有什么不懂的可以在下方留言讨论也可以关注。
以为文章对你有资助的话记得关注我点个赞支持一下!
《一线大厂Java面试题解析+核心总结学习笔记+最新解说视频+实战项目源码》点击传送门即可获取!
2faed303032d36.jpg" alt=“img” style=“zoom: 33%;” />
最后

在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例
[外链图片转存中…(img-91HnBkWM-1712076401145)]
[外链图片转存中…(img-CkeSzQoj-1712076401146)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,以是只把部门知识点截图出来粗略的介绍,每个小节点内里都有更细化的内容!
各人看完有什么不懂的可以在下方留言讨论也可以关注。
以为文章对你有资助的话记得关注我点个赞支持一下!
《一线大厂Java面试题解析+核心总结学习笔记+最新解说视频+实战项目源码》点击传送门即可获取!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表