架构设计 - 常用日志收集方案选型对比与推荐

目录

  • 1. 常用组合
    • 1.1 ELK Stack -> Elastic Stack
    • 1.2 EFK Stack
    • 1.3 Graylog
    • 1.4 PLG 日志系统
    • 1.5 Splunk
    • 1.6 Filebeat + ELK
    • 1.7 AWS CloudWatch Logs
    • 1.8 阿里云日志服务
    • 1.9 腾讯云 CLS(日志服务)
  • 2. 推荐

日志收集是系统监控和调试中的关键环节。常见的日志收集方案有多个,每种方案各有优劣,选择时应根据实际业务需求进行评估。以下是几种常用的日志收集方案及其特点,这里只是进行概括阐述,具体的细节还需要自己深入了解。

1. 常用组合

1.1 ELK Stack -> Elastic Stack

之前常说的 ELK = Elasticsearch、Logstash、Kibana;而现在 ELK Stack 已经演变为更广泛的 Elastic Stack,包含的核心组件除了传统的 Elasticsearch、Logstash 和 Kibana 外,还包括一些扩展工具来增强日志收集、监控和数据可视化的功能。

比如现在常用的 Elasticsearch + Logstash + Kibana + Beats 的组合,其中,Beats 负责日志的采集, Logstash 负责做日志的聚合和处理,Elasticsearch 作为日志的存储和搜索系统,Kibana 作为可视化前端展示。
例如 1.6 Filebeat + ELK/EFK 就是 Elastic Stack 中的。

在这里插入图片描述

  • 优点

    • 功能强大,可以处理大量的日志。
    • 提供强大的可视化和分析功能,通过 Kibana 展现日志的趋势、查询和告警。
    • Elasticsearch 支持强大的搜索和数据存储。
  • 缺点

    • 资源消耗较大,维护成本高,尤其是在大规模数据情况下。
    • Logstash 配置复杂,且性能相较其他方案较慢。
    • 当日志量非常大时,Elasticsearch 的性能可能会成为瓶颈。
  • 适用场景:适合日志量大、需要实时分析和搜索日志的场景,特别是在 DevOps 监控、生产环境中。

1.2 EFK Stack

之前的组合为:EFK = Elasticsearch、Fluentd、Kibana,但是后续推荐的组合为:EFK = Elasticsearch、Fluent Bit、Kibana;目前 Fluent Bit 被广泛用于轻量级的日志收集,而 Fluentd 则用于集中式的日志处理和管理。

  • Fluentd 是 Kubernetes 最常用的日志收集工具之一,可以从容器中直接收集日志,推送到 Elasticsearch。
  • Fluent Bit 是 Fluentd 的轻量级版本,适合资源受限的环境和简单的日志收集任务;Fluent Bit 现在被认为是下一代解决方案
  • 两者可相互补充或独立部署。

在这里插入图片描述
在这里插入图片描述

  • 优点

    • Fluentd 相对于 Logstash 更轻量级,性能更好。
    • 支持丰富的插件,可以方便地与各种系统集成。
    • 同样提供 Elasticsearch 的强大搜索能力和 Kibana 的可视化能力。
  • 缺点

    • Fluentd 配置复杂度仍然较高,调试需要一定经验。
    • 对于超大规模的日志数据,Elasticsearch 仍然存在性能瓶颈。
    • 在高并发日志数据处理上,可能需要一些优化。
  • 适用场景:适合需要高性能日志收集和轻量级日志处理的场景。

1.3 Graylog

专注于安全性和审计的日志系统,支持对用户行为和交易记录的追踪。

在这里插入图片描述

  • 优点

    • 专注于日志管理,使用 Elasticsearch 作为存储引擎,支持集中化日志管理和处理。
    • 拥有内置的日志解析和报警功能,支持插件扩展。
    • 界面友好,易于配置和管理。
  • 缺点

    • 与 ELK 类似,Elasticsearch 的性能瓶颈仍然存在。
    • 插件丰富度不如 Fluentd。
  • 适用场景:适合中小型团队或项目,特别是需要轻量化日志管理的环境。

1.4 PLG 日志系统

PLG = Promtail+ Loki + Grafana

在这里插入图片描述

  • 优点

    • Loki 是一种针对日志的轻量化存储方案,直接与 Promtail 和 Grafana 集成,易于安装和管理。
    • Loki 仅存储日志的索引,而非全文,因此性能较好,存储需求较低。
    • 与 Kubernetes 集成友好。
  • 缺点

    • Loki 的日志查询不如 Elasticsearch 灵活,只支持基于标签的查询。
      主要原因是 Promtail 收集日志时与 Prometheus 一样,使用是标签(如 app=webserver)来区分数据,这些标签会被存储在 Loki 中。
    • 不适合需要复杂全文搜索的场景。
  • 适用场景:适合容器化环境(如 Kubernetes),注重日志存储和监控的统一管理。

1.5 Splunk

Splunk 是金融行业的标杆日志管理工具,提供高度定制的安全合规性解决方案。

  • 优点

    • 企业级解决方案,功能非常强大,支持复杂查询和实时分析。
    • 内置机器学习分析工具,支持异常检测和高级数据分析。
    • 用户界面非常友好,支持自定义仪表板和报告。
  • 缺点

    • 成本非常高,通常只适用于大型企业。
    • 部署和维护复杂,需要专业运维人员。
  • 适用场景:适合大企业,尤其是有高性能需求且愿意支付较高费用的场景。

1.6 Filebeat + ELK

其实是 Elastic Stack 中的常用类型。Elastic Stack,包含的核心组件除了传统的 Elasticsearch、Logstash 和 Kibana 外,还包括一些扩展工具来增强日志收集、监控和数据可视化的功能。

比如现在常用的 Elasticsearch + Logstash + Kibana + Beats 的组合,其中,Beats 负责日志的采集, Logstash 负责做日志的聚合和处理,Elasticsearch 作为日志的存储和搜索系统,Kibana 作为可视化前端展示。


Filebeat 就是 Beats 中的常见的组件,主要用于收集和传输日志文件;此外常见的 Beats 还有:

  • Metricbeat:用于收集系统和服务的性能指标(如 CPU、内存、网络等)。
  • Packetbeat:用于网络数据流量的监控,分析 TCP、HTTP、DNS 等协议的性能。
  • Auditbeat:用于收集系统审计数据,包括用户登录、文件更改等活动。
  • Heartbeat:用于监控服务的可用性,通过 Ping 方式检查服务是否运行。
  • 更多…

在这里插入图片描述

  • 优点

    • Filebeat 是轻量级的日志收集器,适合边缘设备和微服务架构。
    • 配合 ELK 或 EFK,能够实现强大的日志存储和可视化功能。
    • 资源占用极低,易于配置和扩展。
  • 缺点

    • Filebeat 仅负责日志的收集,后续分析和存储仍需借助其他工具。
  • 适用场景:适合微服务架构和需要低资源占用的场景,尤其是边缘计算。

1.7 AWS CloudWatch Logs

  • 优点
    • 作为 AWS 的原生解决方案,易于与 AWS 其他服务集成,支持无缝扩展。
    • 支持自动化日志告警和可视化。
    • 提供按使用量付费的灵活收费模式,且免维护。
  • 缺点
    • 仅适用于 AWS 环境,难以在其他云或本地环境中使用。
    • 对日志分析和搜索功能有限,不如专用解决方案强大。
  • 适用场景:适合基于 AWS 云环境的应用程序,特别是需要快速集成和部署的场景。

1.8 阿里云日志服务

简介:阿里云日志服务是一种云原生的日志收集和分析解决方案,能够轻松收集、存储和查询日志数据。

  • 优点

    • 完全托管,适合无需复杂运维的公司。
    • 集成阿里云其他服务(如安全产品、监控产品)。
    • 支持弹性扩展,适应大规模日志收集。
  • 缺点

    • 云平台依赖,数据安全和合规需要关注。
    • 需要付费使用。
  • 适用场景:适合已经在 阿里云 生态环境的公司。

1.9 腾讯云 CLS(日志服务)

腾讯云提供的日志服务也是一种全托管的日志解决方案,适合中国企业,支持自动化日志收集、分析和警报。

  • 优点

    • 集成腾讯云的监控和告警系统,适合已有腾讯云用户。
    • 提供完善的权限管理和审计功能。
  • 缺点

    • 云平台锁定,适合已经在 腾讯云 生态系统中的公司。
    • 需要付费使用。
  • 适用场景:适合已经在 腾讯云 生态环境的公司。


2. 推荐

【注】虽然是常用的固定搭配,但是在实际使用过程中可以根据自身需求进行自由的组合,为系统提供更好的日志服务。

  • 小型或轻量级项目

    • Filebeat + ELK 是较好的选择,具有更好的性能和可扩展性。
    • 如果是容器化环境,且日志设计符合标签化规范,选择 PLG 或许是一个比较好的选择;如果日志设计并不是很规范的话,使用 EFK 技术栈或许更好(支持全文检索)。
  • 大中型企业

    • ELK Stack 或 Graylog 能够处理大量日志,并提供强大的搜索和可视化功能;
    • 根据开源组件自研也是一个很好的方案,更加贴合自身的业务。
  • 云环境

    • 国内的话可以使用阿里云与腾讯云提供的托管服务。
    • 如果使用了 AWS,那么可以使用 AWS 提供的日志服务。
  • 容器化环境

    • PLG 是专为容器化设计的高效日志方案,特别适合 Kubernetes。
    • EFK (Elasticsearch + Fluent Bit + Kibana)也是常用的工具组合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/875924.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[ RK3566-Android11 ] 关于 RK628F 驱动移植以及调试说明

问题描述 我这个项目的SDK比较老,移植RK628F最新驱动的调试过程,踩了很多坑,希望大家别踩坑。 解决方案: 首先在FTP上下载最新的RK628的驱动 rk628-for-all-v27-240730 版本。 下载完后 不要直接替换,不要直接替换&a…

小琳AI课堂:o1系列模型

大家好,这里是小琳AI课堂!今天我们一起来探索OpenAI最新发布的o1系列模型,这可是AI领域的一大突破哦! OpenAI o1系列模型技术大揭秘 o1系列模型是基于强化学习(RL)训练的,包括o1-preview和o1-…

【CSS】选择器(基本选择器、复合选择器、属性匹配选择器、结构伪类选择器、伪元素选择器)

选择器 引入方式基础选择器复合选择器属性匹配选择器结构伪类选择器伪元素选择器 引入方式 1&#xff1a;外联 <!-- css引入方式1&#xff1a;外联 外联与内嵌优先级相同&#xff0c;取决于加载顺序 --><link rel"stylesheet" href"./样式.css"…

起重机检测系统源码分享

起重机检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Visio…

直播相关02-录制麦克风声音,QT 信号与槽,自定义信号和槽

一 信号与槽函数 #include "mainwindow.h" #include <QPushButton> #include <iostream> using namespace std;//我们的目的是在 window中加入一个button&#xff0c;当点击这个button后&#xff0c;关闭 MainWindow 。 MainWindow::MainWindow(QWidget …

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 GPT系列论文速通论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具…

【Unity学习心得】如何制作俯视角射击游戏

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、导入素材二、制作流程 1.制作地图2.实现人物动画和移动脚本3.制作单例模式和对象池4.制作手枪pistol和子弹bullet和子弹壳bulletShell5.制作散弹枪shotgun总…

MMLU-Pro 基准测试数据集上线,含 12k 个跨学科复杂问题,难度提升,更具挑战性!DeepSeek 数学模型一键部署

在大语言模型 (LLM) 蓬勃发展的时代&#xff0c;诸如大规模多任务语言理解 (MMLU) 之类的基准测试&#xff0c;在推动 AI 于不同领域的语言理解与推理能力迈向极限方面&#xff0c;发挥着至关重要的关键作用。 然而&#xff0c;伴随模型的持续改进与优化&#xff0c;LLM 在这些…

Vue路由:Vue router

目录 路由的基本概念 1. 路由 2. 单页应用SPA 3.前端路由的实现方式 3.1Hash模式 3.2History模式 Vue router 4 1.概述 2.安装使用 3.基础用法 3.1路由匹配规则声明 3.2动态路由匹配 3.3路由命名 3.4路由重定向 3.5路由嵌套 3.6命名视图 3.6声明式导航&编程…

el-input设置type=‘number‘和v-model.number的区别

el-input设置typenumber’与设置.number修饰符的区别 1. 设置type‘number’ 使用el-input时想收集数字类型的数据&#xff0c;我们首先会想到typenumber&#xff0c;设置完type为number时会限制我们输入的内容只能为数字&#xff0c;不能为字符/汉字等非数字类型的数值&…

【网络安全】-文件下载漏洞-pikachu

文件操作漏洞包括文件上传漏洞&#xff0c;文件包含漏洞&#xff0c;文件下载漏洞。 文章目录  前言 什么是文件下载漏洞&#xff1f; 1.常见形式&#xff1a; 常见链接形式&#xff1a; 常见参数&#xff1a; 2.利用方式&#xff1a; 3.举例&#xff1a;pikachu不安全的文件…

智能语音技术在人机交互中的应用与发展

摘要&#xff1a;本文主要探讨智能自动语音识别技术与语音合成技术在构建智能口语系统方面的作用。这两项技术实现了人机语音通信&#xff0c;建立起能听能说的智能口语系统。同时&#xff0c;引入开源 AI 智能名片小程序&#xff0c;分析其在智能语音技术应用场景下的意义与发…

使用ESP8266和OLED屏幕实现一个小型电脑性能监控

前言 最近大扫除&#xff0c;发现自己还有几个ESP8266MCU和一个0.96寸的oled小屏幕。又想起最近一直想要买一个屏幕作为性能监控&#xff0c;随机开始自己diy。 硬件&#xff1a; ESP8266 MUColed小屏幕杜邦线可以传输数据的数据线 环境 Windows系统Qt6Arduino Arduino 库…

计算架构模式之负载均衡技巧

通用负载均衡算法 负载均衡算法 -轮询 & 随机 如果服务器挂掉了&#xff0c;那么负载均衡器还是可以感知到的&#xff0c;因为连接已经断掉了。 负载均衡算法-加权轮询 假设你有4核的和8核的&#xff0c;由于你的程序没有办法跑完CPU&#xff0c;那么有可能出现4核的和8核…

Coggle数据科学 | 科大讯飞AI大赛:人岗匹配挑战赛 赛季3

本文来源公众号“Coggle数据科学”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;科大讯飞AI大赛&#xff1a;人岗匹配挑战赛 赛季3 赛题名称&#xff1a;人岗匹配挑战赛 赛季3 赛题类型&#xff1a;自然语言处理、文本匹配 赛题…

Pikachu靶场之csrf

CSRF 跨站请求伪造 CSRF入门及靶场实战 - FreeBuf网络安全行业门户 攻击者伪造恶意链接&#xff0c;诱使用户点击&#xff0c;这个链接附带了用户的认证凭据Cookie、Session等&#xff0c;执行操作如转账。 因为带了cookie、session&#xff0c;服务器认为是用户的行为。借用…

【诉讼流程-健身房-违约认定-私教课-诉讼书前提材料整理-民事诉讼-自我学习-铺平通往法律的阶梯-讲解(2)】

【诉讼流程-健身房-违约-私教课-前期法律流程-民事诉讼-自我学习-铺平通往法律的阶梯-讲解&#xff08;2&#xff09;】 &#xff08;1&#xff09;前言说明1、目的2、一个小测试1、更换原教练2、频繁更换教练3、上课估计拖课&#xff0c;占用上课时间&#xff0c;抽烟等。4、以…

谈谈LLM训练中的“过拟合”与“欠拟合”

如今&#xff0c;由于其出色的理解、生成和操纵人类语言的能力&#xff0c;语言模型已经成为焦点。据最新调查数据显示&#xff0c;大概30%的企业计划使用非结构化数据来提高大型语言模型&#xff08;LLM&#xff09;的准确性。在训练这些语言模型时&#xff0c;一个基本挑战是…

知识笔记合集

文章目录 vsCode可以运行c程序却无法运行c程序帆软填报属性不起作用java-实体类日期类型格式化Java-数据库id字段使用雪花算法IDEA-快捷键 vsCode可以运行c程序却无法运行c程序 vsCode中的tasks.json文件中添加"-lstdc" {"tasks": [{"type": &…

【vuetify】v-select 无法正常显示,踩坑记录!

一、上代码 template <v-selectv-model"editedUser.userRole":items"roles"label"角色"item-value"value":rules"[rules.required]" ></v-select>script const editedUser ref({userRole: customer // 设置…