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

news/2024/9/24 22:08:03/

一,日志处理方案

方案一,【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


http://www.ppmy.cn/news/1529985.html

相关文章

35岁程序员转行大模型岗位:详细学习路线,从零基础到精通2024最新

随着人工智能(AI)和深度学习技术的飞速发展,越来越多的技术人才开始考虑转向这一前沿领域。对于已经拥有丰富编程经验但希望转型到大模型开发领域的35岁程序员来说,虽然面临一定的挑战,但也具备了坚实的基础。本文将提…

【flex-shrink】计算 flex弹性盒子的子元素的宽度大小

计算以下两个子div的宽度大小&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

编译 Android 11源码

参考小米6 lineageos官方编译文档&#xff1a;https://wiki.lineageos.org/devices/sagit/build 单独编译 framework 以LineageOS18.1&#xff08;Android 11&#xff09;为例&#xff1a; 1、在源码根目录执行&#xff1a; make framework-minus-apex 2、用生成的framewo…

【Docker】如何让docker容器正常使用nvidia显卡

首先确保宿主机正常安装了显卡驱动 nvidia-smi打印显卡信息如下&#xff1a; 安装nvidia-container-toolkit工具 sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker运行如下命令测试显卡是否在容器内可用 …

【ARM】A64指令介绍及内存屏障和寄存器

A64指令集介绍 ISA : Instruction System Architecture 指令集总结 跳转指令 使用跳转指令直接跳转&#xff0c;跳转指令有跳转指令B&#xff0c;带链接的跳转指令BL &#xff0c;带状态切换的跳转指令BX。 B 跳转指令&#xff0c;跳转到指定的地址执行程序。 BL 带链接的跳…

Android 车载应用开发指南 - CarService 详解(下)

车载应用正在改变人们的出行体验。从导航到娱乐、从安全到信息服务&#xff0c;车载应用的开发已成为汽车智能化发展的重要组成部分。而对于开发者来说&#xff0c;如何将自己的应用程序无缝集成到车载系统中&#xff0c;利用汽车的硬件和服务能力&#xff0c;是一个极具挑战性…

UWA支持鸿蒙HarmonyOS NEXT

华为在开发者大会上&#xff0c;宣布了鸿蒙HarmonyOS NEXT将仅支持鸿蒙内核和鸿蒙系统的应用&#xff0c;不再兼容安卓应用&#xff0c;这意味着它将构建一个全新且完全独立的生态系统。 为此&#xff0c;UWA也将在最新版的UWA SDK v2.5.0中支持鸿蒙HarmonyOS NEXT&#xff0c…

WebRtc一对一视频通话_New_peer信令处理

文章目录 一对一视频通话New_peer信令处理 2024-9-19 梳理信令处理的函数嵌套及实现思路一对一视频通话 New_peer信令处理 ZeroRTCEngine.prototype.onMessage function (event) {console.log("onMessage: " event.data);var jsonMsg null;try {jsonMsg JSON.p…