当前位置: 首页 > news >正文

【Kubernetes】日志平台EFK+Logstash+Kafka【理论】

一,日志处理方案

方案一,【EFK】:Elasticsearch + Fluentd(或Filebeat) + Kibana

Elasticsearch(简称:ES):实时,分布式存储,可扩展,日志分析工具。

Fluentd/Filebeat:日志数据收集。Filebeat更轻量级。

Kibana:数据可视化(UI界面)

方案二,【ELK】:Elasticsearch + Logstash + Kibana

Logstash:日志收集,聚合,处理。损耗性能,但可处理多种格式的日志。

流程:app应用程序 –> Logstash –> ElasticSearch–> Kibana –> 浏览器

考虑到聚合端(日志处理、清洗等)负载问题和采集端传输效率,一般在日志量比较大的时候在采集端和聚合端增加队列,以用来实现日志消峰。

方案三,【ELK】 + Filebeat

流程:**Filebeat (采集) —> Logstash(聚合、处理) —> ElasticSearch (存储) —>Kibana (展示) **

方案四,Filebeat + ElasticSearch +Kibana

**Filebeat (采集、处理) —> ElasticSearch(存储) —>Kibana (展示) **

方案五,加入缓存机制(推荐)

**Filebeat (采集) —> Kafka/Redis(消峰) —> Logstash (聚合、处理) —> ElasticSearch (存储) —>Kibana (展示) **

日志处理有延迟,产生阻塞,添加 Kafka/Redis 缓存。


二,重点组件介绍

(1)Filebeat组件

1,Filebeat家族

Filebeat是Beats中的一员。
Beats包含六种工具:
1、Packetbeat:网络数据(收集网络流量数据)
2、Metricbeat:指标(收集系统、进程和文件系统级别的CPU和内存使用情况等数据)
3、Filebeat:日志文件(收集文件数据)
4、Winlogbeat:windows事件日志(收集Windows事件日志数据)
5、Auditbeat:审计数据(收集审计日志)
6、Heartbeat:运行时间监控(收集系统运行时的数据)

2,Filebeat传输方案

2-1 output.elasticsearch

output.elasticsearch:hosts: ["192.168.40.180:9200"]

2-2 output.logstash

output.logstash:hosts: ["192.168.40.180:5044"]

2-3 output.kafka

output.kafka:  # 引入kafka缓存enabled: truehosts: ["192.168.40.180:9092"]topic: elfk8stest

(2)Logstash组件

1,介绍

Logstash 是一个应用程序日志、事件的传输、处理、管理和搜索的平台。它可以对应用程序日志进行收集管理,提供 Web 接口用于查询和统计。

Logstash 能够动态地转换和解析数据,不受格式或复杂度的影响:
1、利用 Grok 从非结构化数据中派生出结构
2、从 IP 地址破译出地理坐标
3、将 PII 数据匿名化,完全排除敏感字段
4、整体处理不受数据源、格式或架构的影响

Logstash 事件处理的三个阶段:输入 > 过滤器 > 输出

2,组件
  • 输入(Input):采集各种样式、大小和来源的数据(必要元素)
  • 过滤器(filter):实时解析和转换数据(可选元素)
  • 输出(output):选择你的存储,导出你的数据(必要元素)

常用的Input模块:Logstash ,file,syslog,redis,beats
常用的Filter模块:grok(非结构转结构数据),mutate,drop,clone,geoip(添加IP地址地理信息)
常用的Output模块:elasticsearch,file,graphite,statsd

3,常用code插件

json:以JSON格式对数据进行编码或解码。
multiline:将多行文本事件(如java异常和堆栈跟踪消息)合并为单个事件。

input {kafka {bootstrap_servers => "192.168.40.180:9092"auto_offset_reset => "latest"consumer_threads => 5decorate_events => truetopics => ["elktest"]}
}output { elasticsearch { hosts => ["192.168.40.180:9200"]index => "elkk8stest-%{+YYYY.MM.dd}"}
}   

(3)Fluentd组件

1,介绍

Fluentd是一个针对日志的收集、处理、转发系统。通过丰富的插件系统,可以收集来自于各种系统或应用的日志,转化为用户指定的格式后,转发到用户所指定的日志存储系统之中。

(4)Logagent组件

Logagent 是 Sematext 提供的传输工具,它用来将日志传输到 Logsene(一个基于 SaaS 平台的 Elasticsearch API),因为 Logsene 会暴露 Elasticsearch API,所以 Logagent 可以很容易将数据推送到 Elasticsearch 。


三,各日志采集工具对比

名称优点缺点
Filebeat无依赖,占用资源少,5.x 版本具备过滤能力应用范围有限
Logstash灵活,插件多资源消耗(默认的堆大小是1GB),不支持缓存
Fluentd插件多数据结构化强,不灵活
Logagent轻量又快速,有本地缓冲,可掩盖敏感数据信息没有 Logstash 灵活
Logtail阿里云开发使用,占用机器cpu、内存资源最少类型解析弱
Rsyslog传输快,最轻的解析器配置难,相关资料少,会有bug

重点:Filebeat、Fluentd、Logstash

【相关阅读】

【kubernetes】集群日志管理 - ELK

相关文章:

【Kubernetes】日志平台EFK+Logstash+Kafka【理论】

一,日志处理方案 方案一,【EFK】:Elasticsearch Fluentd(或Filebeat) Kibana Elasticsearch(简称:ES):实时,分布式存储,可扩展,日…...

基于SpringBoot+Vue+MySQL的教学资料管理系统

系统展示 管理员后台界面 教师后台界面 系统背景 在当今信息化高速发展的时代,教育机构面临着日益增长的教学资料管理需求。为了提升教学管理的效率,优化资源的配置与利用,开发一套高效、便捷的教学资料管理系统显得尤为重要。基于SpringBoot…...

动态规划day45:编辑距离|115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离(动规终极好题)

动态规划day45:编辑距离|115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离(动规终极好题) 115. 不同的子序列583. 两个字符串的删除操作72. 编辑距离(动规终极好题) 115. 不同的子序列 给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中…...

剑指 offer 刷题集

目录 数组 1. LCR 121. 寻找目标值 - 二维数组 2. LCR 120. 寻找文件副本 3. LCR 128. 库存管理 I 4. LCR 131. 砍竹子 I 5. LCR 132. 砍竹子 II 6. LCR 135. 报数 7. LCR 139. 训练计划 I 8. LCR 158. 库存管理 II 9. LCR 159. 库存管理 III 10. LCR 160. 数据流中…...

C++在线开发环境搭建(WEBIDE)

C在线开发环境搭建 一、环境说明1.1 系统基础环境说明1.1 docker-ce社区版安装 二、codeserver构建2.1 构建codeserver环境的docker容器2.2 构建docker镜像2.3 运行docker2.4 运行展示 三、构建codeserver中的c开发环境3.1 插件下载3.2 插件安装 四、其他知识4.2 code-server配…...

重磅首发!大语言模型LLM学习路线图来了!

ChatGPT的出现在全球掀起了AI大模型的浪潮,2023年可以被称为AI元年,AI大模型以一种野蛮的方式,闯入你我的生活之中。 从问答对话到辅助编程,从图画解析到自主创作,AI所展现出来的能力,超出了多数人的预料&…...

neo4j关系的创建删除 图的删除

关系的创建和删除 关系创建 CREATE (:Person {name:"jack"})-[:LOVE]->(:Person {name:"Rose"})已有这个关系时,merge不起效果 MERGE (:Person {name:"Jack" })-[:LOVE]->(:Person {name:"Rose"})关系兼顾节点和关…...

【WRF运行第三期】服务器上运行WRF模型(官网案例-Hurricane Matthew)

【WRF运行第三期】运行WRF模型(官网案例-Hurricane Matthew) 官网案例-Hurricane Matthew介绍0 创建DATA文件夹1 WPS预处理1.1 解压GRIB数据(ungrib.exe)1.1.1 解压GRIB数据---GFS(Matthew案例研究数据)1.1…...

基于springboot的书店图书销售管理系统的设计与实现 (含源码+sql+视频导入教程)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于springboot的书店图书销售管理系统拥有三个角色 管理员:用户管理、角色管理、权限管理、店铺管理等商家:图书管理、上架图书、访问量统计、销售总额统计、订单…...

Spring MVC 基本配置步骤 总结

1.简介 本文记录Spring MVC基本项目拉起配置步骤。 2.步骤 在pom.xml中导入依赖&#xff1a; <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>6.0.6</version><scope>…...

HCIP--以太网交换安全(一)

以太网交换安全概述&#xff1a;以太网交换安全是一系列技术和策略的集合&#xff0c;旨在保护以太网交换机免受各种网络攻击和威胁。 端口隔离 一、端口隔离概述&#xff1a; 作用&#xff1a;可以实现同一个VLAN内端口的隔离 优势&#xff1a; 端口隔离功能为用户提供了更…...

PyQt5中关于QLineEdit的空输入报错的简单处理

PyQt5中关于QLineEdit的空输入报错的简单处理 前言分析原因解决办法总结 前言 在PyQt5的界面中对于数据的输入&#xff0c;最常用的就是QLineEdit控件&#xff0c;该控件作为基本的数据输入控件已经能满足我们的简单使用。在使用过程&#xff0c;出现闪退情况&#xff0c;发现…...

【前端】ES12:ES12新特性

文章目录 1 逻辑赋值操作符2 数字分隔符3 replaceAll4 Promise.any5 WeakRef6 FinalizationRegistry 1 逻辑赋值操作符 逻辑赋值操作符 ??、&&、 ||。 let a true let b false //a && b //false a || b ; //true console.log(a)let obj {name:"ker…...

语音识别(非实时)

1.环境 python &#xff1a;3.10.14 2.完整代码 import whisper #whisper import wave # 使用wave库可读、写wav类型的音频文件 import pyaudio # 使用pyaudio库可以进行录音&#xff0c;播放&#xff0c;生成wav文件 def record(time): # 录音程序# 定义数据流块CHUNK …...

【计算机网络】--URL统一资源定位符

一个网站地址实例 scheme://host.domain:port/path/filename scheme——定义因特网服务的类型&#xff0c;常见的类型是http host——定义域主机&#xff08;http的默认主机是www&#xff09; domain———定义因特网的域名&#xff0c;例如&#xff0c;jinyun.fun &#xf…...

在成都建“圈”五年,鲲鹏让智能化新风吹遍巴蜀大地

科技圈里流行着“互联网四大中心”的说法&#xff0c;即南边的深圳、东边的杭州、北边的北京和西边的成都。 深圳、杭州、北京几乎没有太大的争议&#xff0c;这里是国内著名的互联网公司聚集地&#xff0c;有着国内排行前三的互联网企业总部&#xff0c;单单一个北京西二旗就…...

Unity图形用户界面!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。(万字解析)

Unity 3D GUI 简介 游戏开发过程中&#xff0c;开发人员往往会通过制作大量的图形用户界面&#xff08; Graphical User Interface&#xff0c;GUI &#xff09;来增强游戏与玩家的交互性。 Unity 3D 中的图形系统分为 OnGUI、NGUI、UGUI等&#xff0c;这些类型的图形系统内容…...

【JAVA报错已解决】Java.lang.NullPointerException

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…...

JSON 教程

JSON 教程 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> …...

HBase 的基本架构 详解

HBase 是一个分布式的、面向列的数据库&#xff0c;构建在 HDFS&#xff08;Hadoop Distributed File System&#xff09;之上&#xff0c;提供高效的随机读写操作。为了全面理解 HBase 的基础架构&#xff0c;需要从逻辑架构、物理存储、组件之间的交互、数据管理和底层设计出…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...