Spring Boot+ELK+Kafka

本文详细介绍了如何解决分布式日志问题,通过Spring Boot与Kafka结合,利用ELK(Elasticsearch、Logstash、Kibana)进行日志收集。文章涉及了Docker搭建ELK+Kafka的步骤,Kafka的相关概念,以及如何在Spring Boot中实现Producer。同时,还阐述了使用Logstash收集日志和在Kibana中定义规则查询日志的方法,并提供了一个通用工具类的定义和测试。
摘要由CSDN通过智能技术生成

分布式日志问题

1.分布式系统日志
(1)分布多
(2)追踪难
2.处理方式
(1)日志收集
(2)可视化
3.常见日志解决方案
(1)ELK+Kafka
(2) 第三方

Elatsicsearch

1.分布式搜索引擎
2.特性
(1)分布式实时全文搜索引擎
(2)分布式实时分析搜索引擎
(3)分布式实时大数据处理引擎

Kibana

1. Elastic Stack 成员
2.数据分析和可视化
(1)图形
(2)表格
(3) …
2. Web端访问

Logstash

1.Elastic Stack 成员
2. 数据处理管道
(1)Input(采集)
(2)Output(迁移)

Kafka

1.定义
(1) 一个由Java+Scala开发的开源流处理平台
2.特点
(1)稳定性
(2)高吞吐
(3)易扩展
3.依赖环境
(1)Zookeeper

在这里插入图片描述

ELK+Kafka日志收集原理

1.Kafka:日志接收+异步处理
2.Logstash:获取日志+发送日志
3.Elasticsearch:存储日志+分析日志
4.Kibana:查询展示

在这里插入图片描述

基于Docker搭建ELK+Kafka

1. 安装步骤
 ① 上传Dockerfile包至ELK+Kafka目录(如果没有Dockerfile文件直接push也可以)
 ② 进入ELK+Kafka目录
 ③ 执行以下命令,生成镜像
(1)docker build -t elasticsearch Elasticsearch
(2)docker build -t kibana Kibana
(3)docker build -t kafka Kafka
(4)docker build -t logstash Logstash
 ④ 创建容器
(1)docker run -d --name kafka -p 9092:9092 kafka
(2)docker run -d --name elasticsearch -p 9200:9200 elasticsearch
(3)docker run -d -it --name kibana -p 5601:5601 --link elasticsearch:elasticsearch kibana
(4)docker run -d -it --name logstash --link elasticsearch:elasticsearch --link kafka:kafka logstash
注意:1 、Kafka 的advertised.listeners 要指向宿主机IP
	 2 、进行环境搭建前,需要设置vm.max_map_count( 进程中内存映射区域的最大数		           	量,默认值 65536 )
	  打开系统配置   vi /etc/sysctl.conf
	 vm.max_map_count=655360 
	 sysctl -p
	 3、--link  代表使用别名映射到指定容器

Kafka相关概念

1、Broker:Kafka集群中的服务
2、Producer:消息生产方
3、Consumer:消息消费方
4、Topic:消息类型

Spring Boot整合Kafka实现Producer

① 引入依赖

<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>

② 配置文件

spring.kafka.producer.bootstrap-servers=192.168.9.150:9092
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer

③ 编写客户端

@Autowired
pri
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值