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

这篇具有很好参考价值的文章主要介绍了SpringBoot+Kafka+ELK 完成海量日志收集(超详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SpringBoot项目准备

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

SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk

pom

SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk

IndexController

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

SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk

InputMDC

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

SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk

NetUtil

SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk

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

SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk

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

3

Kafka安装和启用

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

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

SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk

创建两个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

SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk

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已经启动成功

SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk

然后我们访问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开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk

SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk

SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk

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

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

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk

最后

SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk

SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

SpringBoot+Kafka+ELK 完成海量日志收集(超详细),程序员,spring boot,kafka,elk

最后

[外链图片转存中…(img-JUkfIcPn-1712681006601)]

[外链图片转存中…(img-rdt0SknF-1712681006601)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!文章来源地址https://www.toymoban.com/news/detail-853140.html

到了这里,关于SpringBoot+Kafka+ELK 完成海量日志收集(超详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ELK分布式日志收集快速入门-(一)-kafka单体篇

    JDK 安装教程自行百度-这个比较简单。 zookeeper zookeeper安装参考地址((2条消息) 快速搭建-分布式远程调用框架搭建-dubbo+zookper+springboot demo 演示_康世行的博客-CSDN博客) 修改zookeeper配合文件 启动成功 开放端口号 下载kafka安装包 安装遇到的问题(由于网站证书不安全导致) 解

    2023年04月08日
    浏览(45)
  • SpringBoot利用ELK实现日志收集

    ELK是Elasticsearch、Logstash、Kibana他们三个组合起来可以搭建日志系统,本文主要记录使 用ELK收集SoringBoot应用产生的日志 Elasticsearch:存储日志信息 Logstash: 日志收集,springboot利用Logstash把日志发送个Logstash,然后Logstash将日志传递 给Elasticsearch。 Kibana:通过web端对日志进行可视化操

    2023年04月08日
    浏览(38)
  • Elasticsearch实践:ELK+Kafka+Beats对日志收集平台的实现

    可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个全文搜索引擎,它还提供了分布式的多用户能力,实时的分析,以及对复杂搜索语句的处理能力,使其在众多场景下,如企业搜索,日志和事件数据分析等,都有广泛的应用。 本文将介绍 ELK+Kafka+Beats 对日志收集

    2024年02月08日
    浏览(38)
  • docker搭建Elk+Kafka+Filebeat分布式日志收集系统

    目录 一、介绍 二、集群环境 三、ES集群 四、Kibana  五、Logstash 六、Zookeeper 七、Kafka 八、Filebeat 八、Nginx (一)架构图  (二)组件介绍 1.Elasticsearch 是一个基于Lucene的搜索服务器。提供搜集、分析、存储数据三大功能。它提供了一个分布式多用户能力的全文搜索引擎,基于

    2024年02月04日
    浏览(52)
  • SpringBoot2 集成 ELK 实现日志收集

    目录 一 简介 二 ELK 各组件作用 三 ELK 各组件安装 四 Spring Boot2 集成 logstash  ELK 即 Elasticsearch、Logstash、Kibana 组合起来可以搭建线上日志系统,本文主要讲解使用ELK 来收集 SpringBoot2 应用产生的日志。 Elasticsearch:用于存储收集到的日志信息; Logstash:用于收集日志,SpringBo

    2024年02月06日
    浏览(34)
  • ZooKeeper+Kafka+ELK+Filebeat集群搭建实现大批量日志收集和展示

    大致流程:将nginx 服务器(web-filebeat)的日志通过filebeat收集之后,存储到缓存服务器kafka,之后logstash到kafka服务器上取出相应日志,经过处理后写入到elasticsearch服务器并在kibana上展示。 一、集群环境准备 二、搭建zookeeper集群 前提条件:三台机器分别修改时区、关闭防火墙

    2024年02月04日
    浏览(48)
  • 基于elk的springboot web日志收集存储方案

    web系统的日志按照价值排序分类 controller层的接口访问日志(debug日志) 自定义包下的其他日志(debug日志) 全局日志 ① 全局错误日志 ② 部分组件的debug日志 ③ 部分组件的Info日志 一般来讲,1和2的价值最大,2可基于实际业务情况,进一步划分,如component目录下日志,ser

    2024年02月09日
    浏览(37)
  • SpringBoot应用整合并使用Docker安装ELK实现日志收集

    ELK即Elasticsearch、Logstash、Kibana,组合起来可以搭建线上日志系统,本文主要讲解使用ELK来收集SpringBoot应用产生的日志。 Elasticsearch:用于存储收集到的日志信息; Logstash:用于收集日志,SpringBoot应用整合了Logstash以后会把日志发送给Logstash,Logstash再把日志转发给Elasticsearch; Kiban

    2023年04月08日
    浏览(46)
  • 基于Filebeat+Kafka+ELK实现Nginx日志收集并采用Elastalert2实现钉钉告警

           先准备3台Nginx服务器,用做后端服务器,(由于机器有限,也直接用这三台机器来部署ES集群),然后准备2台服务器做负载均衡器(Nginx实现负载均衡具体实现操作有机会在介绍),如果是简单学习测试,可以先使用3台Nginx服务器就可以,先告一段落。 3台Nginx服务

    2024年02月15日
    浏览(37)
  • springboot整合ELK+kafka采集日志

    在分布式的项目中,各功能模块产生的日志比较分散,同时为满足性能要求,同一个微服务会集群化部署,当某一次业务报错后,如果不能确定产生的节点,那么只能逐个节点去查看日志文件;logback中RollingFileAppender,ConsoleAppender这类同步化记录器也降低系统性能,综上一些

    2024年02月15日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包