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

目录

  • 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)也是常用的工具组合。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 数学建模——ARMA 时间序列分析

文章目录 前言使用前提平稳性检验白噪声检验 用法代码实例第一步——平稳性分析方法一方法二方法三 第二步——白噪声分析第三步——确定参数第四步——模型构建与检验检验模型效果预测未来数据 前言 常见的时间序列分析方法有很多,之前介绍了一个稍微新颖的 Prophe…

vue项目如何在js文件中导入assets文件夹下图片

前言: 之前在vuewebpack项目中动态导入图片时,是使用的require()函数。但是在vite中不支持require()函数,换成了new URL()方式。 项目中使用:

HuggingFace Embedding 转为 Ollama Embedding

Ollama 是基于 LlamaCpp 开发的 CPU 上的推理引擎,通过 LlamaCpp 提供的脚本可以将大语言模型装换为 gguf 的二进制跟是文件,从而通过 Ollama 就行推理。Ollama 支持HuggingFace 大多开源模型,例如 Llama、Qwen、Gemma 和 Phi3 等等。 GGUF …

【运维监控】Prometheus+grafana监控zookeeper运行情况

运维监控系列文章入口:【运维监控】系列文章汇总索引 文章目录 一、prometheus二、grafana三、prometheus集成grafana监控zookeeper1、修改zookeeper配置2、修改prometheus配置3、导入grafana模板4、验证 本示例通过zookeeper自带的监控信息暴露出来,然后…

大模型入门3:理解LLAMA

LLama在transformers库中的代码,以及各部分原理Llama3.1技术报告LLama 33b 微调尝试 Model a stack of DecoderBlocks(SelfAttention, FeedForward, and RMSNorm) decoder block 整体结构:最大的区别在pre-norm x -> norm(x) -> attention() -…

Java应用压测工具JMeter

目录 1、下载JMeter 2、配置环境变量 3、配置语音 4、使用 1、下载JMeter Apache JMeter - Apache JMeter™ 千万别下载这个,会报错、 千万别下载这个,会报错、 千万别下载这个,会报错 下载这个,失败多下载几次 2、配置环…

视图(mysql)

一、什么是视图 视图是⼀个虚拟的表,它是基于⼀个或多个基本表或其他视图的查询结果集。视图本⾝不存储数 据,⽽是通过执⾏查询来动态⽣成数据。⽤⼾可以像操作普通表⼀样使⽤视图进⾏查询、更新和管 理。视图本⾝并不占⽤物理存储空间,它仅…

【python计算机视觉编程——9.图像分割】

python计算机视觉编程——9.图像分割 9.图像分割9.1 图割安装Graphviz下一步:正文9.1.1 从图像创建图9.1.2 用户交互式分割 9.2 利用聚类进行分割9.3 变分法 9.图像分割 9.1 图割 可以选择不装Graphviz,因为原本觉得是要用,后面发现好像用不…

Docker常用操作(基础篇)

Docker常用操作一览图 #查看镜像 docker images #拉取nginx镜像 docker pull nginx #拉取mysql镜像 docker pull mysql docker run -d --name nginx1 -p 80:80 nginx #docker run -d:创建并运行一个容器,-d是让容器以后台进程运行 #--name nginx1&#…

springBoot 集成https

springBoot 集成https 1、springBoot默认的证书格式 pring Boot 需要 .p12 或 .jks 格式的证书。如果你只有 .pem 和 .key 文件,可以使用 openssl 工具将它们转换成 .p12 文件 2、转换.p12 我的证书文件如下,需要转换 2.1 下载openssl https://slpr…

Docker零基础入门

参考课程https://www.bilibili.com/video/BV1VC4y177re/?vd_source=b15169a302bee35f484245aecc69d4dd 参考书籍Docker 实践 - 面向 AI 开发人员的 Docker 实践 (dockerpractice.readthedocs.io) 1. 什么是Docker 1.1. Docker起源 随着计算机的发展,计算机上已经可以运行多…

abVIEW 可以同时支持脚本编程和图形编程

LabVIEW 可以同时支持脚本编程和图形编程,但主要依赖其独特的 图形编程 环境(G语言),其中程序通过连线与节点来表示数据流和功能模块。不过,LabVIEW 也支持通过以下方式实现脚本编程的能力: 1. 调用外部脚本…

光伏选址和设计离不开气象分析!

都说光伏选址和设计离不开气象分析,气象条件对太阳能发电影响较大,具体有哪些影响呢?今天我就来讲解下。 - 太阳辐射:太阳辐射的强度是光伏发电的首要因素,对光伏发电有着重要的影响。太阳辐射的强度决定了光伏发电系…

vue2制作高复用页面

记录一下页面搭建记录,利用vue2组件化开发的思想。这个页面适合于大部分信息管理系统~。模板固定,每次使用,直接修改表单表格参数,api接口等。 以上图页面为例,一个基础数据信息页面可以分为,分类&#xff…

Uniapp + Vue3 + Vite +Uview + Pinia 实现购物车功能(最新附源码保姆级)

Uniapp Vue3 Vite Uview Pinia 实现购物车功能(最新附源码保姆级) 1、效果展示2、安装 Pinia 和 Uview3、配置 Pinia4、页面展示 1、效果展示 2、安装 Pinia 和 Uview 官网 https://pinia.vuejs.org/zh/getting-started.html安装命令 cnpm install pi…

docker-compose elasticsearch 集群搭建(用户登录+https访问)

文章目录 前言docker-compose elasticsearch 集群搭建(用户登录+https访问)1. 效果2. 制作elasticsearch + 分词器镜像2.1. 拉取elasticsearch:7.11.12.2. 制作特定版本镜像3. docker-compose elasticsearch 集群制作4. es账户密码初始化前言 如果您觉得有用的话,记得给博主点…

Proxyless Service Mesh:下一代微服务架构体系

一、项目背景及意义 在当今的微服务架构中,应用程序通常被拆分成多个独立的服务,这些服务通过网络进行通信。这种架构的优势在于可以提高系统的可扩展性和灵活性,但也带来了新的挑战,比如: 服务间通信的复杂性&#…

STM32中的计时与延时

前言 在裸机开发中,延时作为一种规定循环周期的方式经常被使用,其中尤以HAL库官方提供的HAL_Delay为甚。刚入门的小白可能会觉得既然有官方提供的延时函数,而且精度也还挺好,为什么不用呢?实际上HAL_Delay中有不少坑,而这些也只是HAL库中无数坑的其中一些。想从坑里跳出来…

安卓13允许app启动服务 android13允许应用启动服务 无法启动服务 Background start not allowed: service

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改5.编译6.彩蛋1.前言 android13应用启动服务,有些应用会被禁止启动服务,开启的服务会失败,这是高版本的android的特性,我们需要更改下frameworks的代码。 2.问题分析 查看下logcat信息 B…

军用软件安全性可靠性设计与编码规范技术培训

​课程介绍: 随着我国武器装备数字化、智能化水平不断提高,软件在武器装备中的作用越来越关键。由于软件能以人所不能比的速度可靠地完成关键控制任务,几乎在每个重要系统中都由计算机系统来进行控制,软件在运行和控制危险以及在…