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

日志收集监控告警平台的选型思考

目前市面上比较常见的日志收集系统有:ELK,Grafana Loki,OpenObserve,SigNoz,Graylog ,Syslog-ng,Highlight,接下来我会对这几个一一做分析。

1. ELK

ELK 是 Elasticsearch、Logstash 和 Kibana 组合起来的一个开源日志分析和可视化解决方案,常用于日志聚合、索引和检索,以及数据可视化。

优点:

  1. 实时搜索和分析:Elasticsearch 提供近乎实时的全文搜索和数据分析能力,非常适合日志数据的实时查询和分析。
  2. 分布式和横向扩展:Elasticsearch 支持分布式部署和水平扩展,能够在处理大量日志数据时保持高效性能。
  3. 跨平台兼容:基于 Java 开发,Elasticsearch 能够运行在多种操作系统之上,满足不同环境需求。
  4. 可视化友好:Kibana 提供丰富的数据可视化功能,允许用户创建交互式仪表板,帮助开发者和运维人员快速洞察系统状态。
  5. 数据摄取灵活:Logstash 作为数据处理管道,能够从多个来源收集日志,并进行过滤、转换和加载到 Elasticsearch 中,支持多种数据格式。
  6. 社区庞大:ELK 作为开源项目,背后有一个庞大的社区和丰富的插件生态,为各种应用场景提供了现成的解决方案。

缺点:
ELK最大的诟病:就是对资源的消耗,对硬件资源的要求相对较高,尤其是在处理大量数据或面对复杂查询时,内存和CPU占用较大。同时维护ELK的集群以及稳定性可能会比较复杂,比较重。

项目如果前期

2. Loki

Loki是由 Grafana 团队制作的一个日志管理系统,它根据开源 AGPLv3 许可证发布。由于其日志存储机制,它是独一无二的,只对每个日志流的标签和元数据进行索引,而不是日志的内容。这使它需要更少的存储空间,也可以更快地处理日志消息。然而,这种方式的缺点是,与其他平台相比,它在日志搜索功能上就不那么好用了。

优点:

  1. 与 Grafana 无缝集成,提供了强大的可视化功能。用于通过其可定制的仪表板显示从日志数据生成的各种数据。
  2. 由于其独特的索引策略,存储和处理日志的成本较低。
  3. 提供了一个强大的报警系统。你可以创建在满足某些条件时将触发的规则,然后将它们发送到 Prometheus AlertManager,然后将它们路由到适当的目的地,这确保了能够快速识别并及时解决关键问题。

缺点:

  1. 全文搜索限制:由于不支持全文索引,对于需要根据日志具体内容进行快速搜索的场景,Loki 可能不是最佳选择。
  2. 查询复杂性:虽然提供了LogQL查询语言,但相比其他日志解决方案,其查询语句可能更为复杂,尤其是涉及分析和聚合时。

使用场景:

  1. 容器化环境:Loki 特别适合于 Kubernetes 等容器化环境,可以轻松获取和处理Pod级别的日志,并利用容器标签对日志进行分类和筛选。
  2. 云原生应用:在云基础设施中,Loki 能很好地配合微服务架构,通过标签对大量服务产生的日志进行高效索引和查询。
    大规模日志处理:对于需要处理TB甚至PB级别日志数据的企业来说,Loki 的水平扩展特性使其成为理想的日志管理系统。
  3. 监控与告警:结合Grafana的可视化功能,Loki可用于实时监控系统状态,设置基于日志事件的告警规则,实现日志驱动运维(Logging-as-a-Service)。

3. OpenObserve

OpenObserve 是一个云原生的可观测性平台,旨在替代或补充现有的日志管理、指标监控和追踪工具如 Elasticsearch、Splunk、Datadog 等。它提供了一个高效的解决方案,用于收集、存储、查询和分析来自分布式系统的日志、指标和追踪数据。
优点:

  1. 成本优势:OpenObserve 提供了显著的存储成本优势,相比于 Elasticsearch 等传统工具,其声称的存储成本可降低140倍以上,这有助于降低运营成本。
  2. 使用 OpenObserve,你不需要学习新的查询语言来查询日志,因为它支持 SQL 作为其主要的日志和追踪查询语言,以及 PromQL 用于查询指标数据。它也非常容易安装和操作,由于其基于 Rust 来编写的,所以它只需要很少的资源来运行。
  3. 提供了一个直观且易于使用的 UI 界面,允许你管理和可视化你正在收集的各种可观察性数据。在摄取或查询时,你可以丰富、解析、删除敏感数据,并删除日志的不需要的部分,以便只留下相关的部分。
  4. OpenObserve 还提供了一个内置的报警机制,可以将警报发送到 Slack、Microsoft Teams 和其他渠道。
  5. 它还支持团队成员之间的协作,并使用基于角色的访问控制来根据团队成员的级别控制对数据的访问,确保你的数据的整体安全。
  6. 用 Rust 编写以获得高性能。

缺点:

  1. 生态成熟度:由于OpenObserve是一个新兴的解决方案,其生态系统的成熟度、社区支持以及插件和工具的丰富程度可能不及市场上久经考验的传统解决方案。
  2. 市场接受度和案例:在市场知名度和实际应用案例方面,OpenObserve可能还在逐步积累阶段,对于潜在用户来说可能存在一定的采纳风险。
  3. 只免费计划提供每月 200GB 的摄取和 15 天的保留。

使用场景:

  1. 云原生应用监控:对于运行在云环境中的微服务架构和容器化应用,OpenObserve 可以为运维人员提供全面的可观测性能力,帮助他们快速定位和解决问题。
  2. 大数据处理和分析:在处理海量日志和指标数据时,利用 OpenObserve 的高效存储和查询引擎,企业可以降低成本的同时提高数据洞察力。
  3. DevOps 和 SRE 实践:在 DevOps 流程中,OpenObserve 可以作为关键工具,用于持续监控应用程序的性能、故障排查、容量规划和系统优化。
  4. 企业级监控:对于大型企业来说,OpenObserve 的低成本和可扩展性特点使其成为替代或补充现有昂贵监控解决方案的理想选择。

4. SigNoz

SigNoz是一个日志收集和分析工具,可以收集和管理来自各种来源的日志、指标、跟踪和异常。它为使用 OpenTelemetry 检测应用程序提供本机支持,以防止供应商锁定,将收集到的数据存储在 ClickHouse 中,然后在用户友好的仪表板中聚合和可视化数据。
借助 SigNoz,可以使用其查询生成器、PromQL 或 ClickHouse 查询轻松设置警报的动态阈值。其查询生成器简化了搜索和过滤日志的过程,任何触发的警报都会通过 Slack、PagerDuty 等渠道向您发送通知。

优点:

  1. 提供了一个全面的解决方案,包括指标、追踪和日志。
  2. 使用 OpenTelemetry 进行数据收集,可以轻松地与你的应用程序集成。
  3. 提供良好的默认设置,可以将其安装在 Kubernetes 集群中,并立即开始收集日志和指标。
  4. 开箱即用地提供图表和可视化功能。
  5. 自动计算重要的指标,如错误率和 99 百分位数。
  6. 可以轻松设置动态警报阈值,并及时发送通知。

缺点:

  1. 文档可能不够清晰,因为它主要涵盖存储和保留期配置。
  2. 升级有时会导致问题。
  3. 统一的仪表板目前不可用。
  4. 定制性有限。

5. Graylog

Graylog是一个开源日志管理平台,可简化日志数据的收集、存储和分析过程。它从不同来源收集日志,解析和丰富它们,然后将它们存储在数据库中以供将来分析。正如它支持多个输入源一样,它能够将收集到的数据转发到其他系统,例如 Elasticsearch。

借助 Graylog 先进的搜索功能,您可以在几毫秒内快速浏览 TB 级的数据,甚至可以保存搜索查询以供将来使用。其可定制的仪表板提供了基本指标和数据的清晰可视化,从而提供了应用程序活动的全面概述。此外,您可以轻松创建和调度报告,这些报告会自动发送到您的收件箱。

Graylog 还擅长主动监控,允许定期搜索,在满足预定义条件时触发通知。通过指定搜索的时间范围和频率,可以轻松配置这些警报阈值。您还可以利用 Graylog Marketplace 中提供的插件来增强警报条件和其他业务用例。

优点:

  1. 提供团队协作功能。
  2. 简洁且用户友好的界面。
  3. 能够接收来自各种来源的日志。
  4. 快速而复杂的日志搜索。
  5. 支持可定制的警报阈值。

缺点:

  1. 资源消耗:由于使用Elasticsearch作为搜索引擎,Graylog在处理大规模日志时可能会消耗较多的硬件资源,特别是在索引和查询优化方面。
  2. 复杂性:部署和维护Graylog集群可能需要一定技术背景,特别是对于大规模集群的管理和调优。
  3. 生态与竞争:相较于其他日志处理领域内的竞品(如ELK stack),Graylog的生态系统和社区活跃度可能稍显不足,导致插件、文档和解决方案的丰富程度有限。
  4. 学习曲线:对于初次接触的用户,Graylog的配置和管理可能有一定的学习成本。

6. Syslog-ng

Syslog-ng是一款先进的日志管理工具,用于收集、处理和转发系统日志消息。它是syslog协议的改进版,提供了比传统的syslog守护进程更为强大和灵活的功能。

优点:

  1. 日志过滤与路由:Syslog-ng具有强大的过滤功能,可以根据日志的内容、源、优先级等多个维度对日志消息进行精细化过滤,并能灵活地将日志路由到不同的目的地,如文件、数据库、网络接口等。
  2. 高性能与可扩展性:Syslog-ng设计之初即考虑到了高性能和可扩展性,可以处理大量并发的日志流,适用于大型分布式环境。
  3. 多平台支持:Syslog-ng可以在多种操作系统平台上运行,包括Linux、Unix以及Windows等。
  4. 日志模板与解析:支持自定义日志模板,能够处理多种日志格式,并通过模板解析功能将非结构化的日志数据转化为结构化数据,便于后续处理和分析。
  5. 多源数据集成:不仅能够处理传统的syslog日志,还支持从其他来源(如数据库、文件系统、网络套接字等)收集日志信息。

缺点:

  1. 学习曲线:相较于传统的syslog,syslog-ng的配置文件语法更为复杂,初学者可能需要花费更多时间去学习和理解其配置规则。
  2. 资源消耗:在处理大量日志数据时,syslog-ng可能会占用较多的系统资源,特别是在启用高级过滤和转换功能时。
  3. 特定功能需求:虽然syslog-ng功能强大,但某些特殊场景下可能需要用户编写较复杂的配置脚本来满足特定需求。

7. Highlight.io

http://Highlight.io 是一个开源的日志管理工具,专为开发者和运维团队设计,用于收集、索引和分析日志数据。它使用 Elasticsearch 作为其后端存储,提供了一个强大的搜索和分析功能。

Highlight是一个全栈监控平台,不仅提供日志管理,还提供会话重放和错误监控,利用 ClickHouse 进行数据存储和检索。它旨在使您能够跟踪应用程序的行为、识别错误或错误、分析日志并轻松找到性能问题的根本原因。

只需两行代码,您就可以在安装此工具后开始使用它进行日志记录。它将立即开始从您的应用程序收集日志。然后可以轻松搜索和查询这些日志消息和属性。它还允许您将警报设置为当日志达到指定阈值时所需的频率。您将通过支持的渠道收到通知,包括电子邮件、Slack、Discord 或 webhooks。

优点:

  1. 集成式解决方案:集成了日志收集、索引和分析功能,简化了日志管理流程。
  2. Elasticsearch 后端:得益于 Elasticsearch 的分布式搜索和分析引擎,Highlight.io 能够处理大规模的日志数据并提供快速的全文检索。
  3. 开发者友好:面向开发者和运维人员设计,通常包含易于使用的图形界面和 API 接口,方便日志查询和报表生成。
  4. 开源社区支持:开源意味着更低的成本和更大的灵活性,同时也意味着有机会获得社区的支持和不断改进的特性。

缺点:

  1. 社区活跃度和成熟度:相较于已经广泛应用的 ELK Stack(Elasticsearch, Logstash, Kibana),Highlight.io 是否具有同样活跃的社区支持和丰富的插件生态不得而知。
  2. 功能扩展性:开源软件的具体功能和性能可能受限于其当前的开发状态,某些高级功能可能不如商业化产品完善。
  3. 维护和升级:使用开源工具意味着需要自行承担部分维护和升级责任,如果没有足够的技术支持,可能需要投入额外的人力和时间成本。

总结:

  1. 对于寻求与Grafana紧密结合、侧重标签索引、存储成本低的日志解决方案,推荐Grafana Loki,尤其是对于已经使用Grafana进行监控的团队。
  2. 如果希望有一体化的可观测性解决方案,看重日志、指标和跟踪的整合,OpenObserve是个值得关注的新星,适合愿意探索和贡献的早期使用者。
  3. 对于预算有限且关注应用性能监控的小型团队,SigNoz可以作为一个性价比高的选项。
  4. 对于需要全面日志管理功能和复杂查询能力的传统IT设施或较复杂的分布式系统,Graylog是成熟的选择。
  5. 对于只需要基础日志收集、转发和简单的本地处理的场景,Syslog-ng仍不失为一种稳定且久经考验的工具。

相关文章:

日志收集监控告警平台的选型思考

目前市面上比较常见的日志收集系统有:ELK,Grafana Loki,OpenObserve,SigNoz,Graylog ,Syslog-ng,Highlight,接下来我会对这几个一一做分析。 1. ELK ELK 是 Elasticsearch、Logsta…...

苹果Find My产品需求增长迅速,伦茨科技ST17H6x芯片供货充足

苹果的Find My功能使得用户可以轻松查找iPhone、Mac、AirPods以及Apple Watch等设备。如今Find My还进入了耳机、充电宝、箱包、电动车、保温杯等多个行业。苹果发布AirTag发布以来,大家都更加注重物品的防丢,苹果的 Find My 就可以查找 iPhone、Mac、Ai…...

题目:忐忑楼梯Ⅱ

问题描述: 解题思路: 利用差分,当第一个以后的差分元素都为零时就代表楼梯高度等于第一个楼梯的高度。为什么是第一个呢,因为以第一个为标准的区间操作数最少。 注意点:每次都只能加一或减一,ans开ll 题解&…...

TS函数类型

函数类型表达式 function hello(x: string) {console.log(x) } //greeter函数的参数是一个函数fn,fn也有一个string类型参数,无返回值。 function greeter(fn: (a: string) > void) {fn(hello) } greeter(hello)也可以把定义参数类型的语句单独提取出…...

数据链路层(四):数据链路层协议

目录 1 数据链路层协议1.1 异步协议1.2 同步协议1.3 局域网数据链路层协议1.4 广域网数据链路层协议 1 数据链路层协议 数据链路层“协议”也称为“规程”,数据链路控制协议也称数据链路控制规程。 数据链路控制协议主要分为异步协议和同步协议两大类。 1.1 异步协…...

#Linux系统编程(孤儿进程及僵尸进程以及wait函数)

(一)发行版:Ubuntu16.04.7 (二)记录: (1)概述 在 Unix/Linux 系统中,正常情况下,子进程是通过父进程创建的,且两者的运行是相互独立的&#xff…...

苍穹外卖项目-01(开发流程,介绍,开发环境搭建,nginx反向代理,Swagger)

目录 一、软件开发整体介绍 1. 软件开发流程 1 第1阶段: 需求分析 2 第2阶段: 设计 3 第3阶段: 编码 4 第4阶段: 测试 5 第5阶段: 上线运维 2. 角色分工 3. 软件环境 1 开发环境(development) 2 测试环境(testing) 3 生产环境(production) 二、苍穹外卖项目介绍 …...

学习笔记(16)函数防抖和节流

JavaScript 中的函数防抖(Debounce)和函数节流(Throttle)是两种优化频繁触发事件回调函数执行的技术,它们主要用于限制函数调用的频率,尤其是在处理高频率触发且响应开销较大的用户交互场景时。 函数防抖 …...

【揭秘】空号检测平台挑选秘籍:让每一分钱都花在“刀刃”上

在数字化营销时代,精准的数据是企业制胜的关键。而空号检测平台作为数据清洗的重要工具,其选择的正确与否直接影响到营销效果与成本效益。如何在众多平台中慧眼识珠,找到最适合自己的“黄金搭档”?今天,就跟着企讯通一…...

Linux源码包安装

目录 一、transmission源码包安装 二、 nginx源码包安装 一、transmission源码包安装 1、下载编译环境所需的软件包依赖 2、下载transmision源码包到用户主目录下 https://github.com/transmission/transmission/releases/download/4.0.5/transmission-4.0.5.tar.xz 3、解压…...

【P1328】[NOIP2014 提高组] 生活大爆炸版石头剪刀布

[NOIP2014 提高组] 生活大爆炸版石头剪刀布 题目背景 NOIP2014 提高组 D1T1 题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。在《生活大爆炸》第二季第 8 集中出现了一种…...

查看k8s中的secret

kubectl get secret xxx -o yaml -n xxxx参考: Managing Secrets using kubectl...

[深度学习]yolov8+pyqt5搭建精美界面GUI设计源码实现五

【简单介绍】 依托先进的目标检测算法YOLOv8与灵活的PyQt5界面开发框架,我们倾力打造出了一款集直观、易用与功能强大于一体的目标检测GUI界面软件。通过深度融合YOLOv8在目标识别领域的出色性能与PyQt5的精美界面设计,我们成功推出了一款高效且稳定的软…...

C# get set 访问器

在C#中get 访问器set 访问器属性的优势例子 在C#中 get 和 set 是访问器(accessors)的关键词,它们用于定义属性的读取和写入行为。属性是一种特殊的类成员,它提供了对字段(field)或计算结果的灵活访问。 …...

【OpenGL】使用 python + Qt + OpenGL 的现代渲染

伴随资源 目录 一、说明二、 PyQt4三、PyOpenGL四、OpenGL 管线五、Python集成开发环境5.1 Emacs配置5.2 pycharm环境 六、你好,OpenGL!七、QGL控件八、平截头体.svg九、定义几何9.1 立即模式与保留模式9.2 使用 VBO 定义 Cube 十、渲染立方体十一、渲…...

vlan、三层交换机、网关、DNS、子网掩码、MAC地址详解

vlan、三层交换机、网关、DNS、子网掩码、MAC地址详解 一、 什么是VLAN? VLAN中文是“虚拟局域网”。 ​ LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。 ​ VLAN所指的LAN特指使用路由器分割的网络——也就是广…...

嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记11:数字电位器MCP4017

系列文章目录 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记01:赛事介绍与硬件平台 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记02:开发环境安装 嵌入式|蓝桥杯STM32G431(…...

CTF题型 nodejs(1) 命令执行绕过典型例题

CTF题型 nodejs(1) 命令执行绕过 文章目录 CTF题型 nodejs(1) 命令执行绕过一.nodejs中的命令执行二.nodejs中的命令绕过1.编码绕过2.拼接绕过3.模板字符串4.Obejct.keys5.反射6.过滤中括号的情况典型例题1.[GFCTF 2021]ez_calc2.[西湖论剑 2022]Node Magical Login 一.nodejs中…...

Mybatis在SpringBoot中是如何被加载执行

首先依赖于springboot的自动装配EnableAutoConfiguration注解,这个注解最终帮助我们读取mybatis-spring-boot-autoconfigure-x.x.x.jar中的META-INF\spring.factories配置类: org.springframework.boot.autoconfigure.EnableAutoConfiguration\ org.myb…...

数据采集用,集成了主流工业通讯协议

IoTClient 是一个物联网设备通讯协议实现客户端,集成了主流工业通讯协议,包括主流PLC通信读取、ModBus协议、Bacnet协议等。该组件基于.NET Standard 2.0,适用于.NET的跨平台开发,可在Windows、Linux等系统上运行,甚至…...

Django(三)-搭建第一个应用(2)

一、编写更多视图 问题详情页——展示某个投票的问题和不带结果的选项列表。问题结果页——展示某个投票的结果。投票处理器——用于响应用户为某个问题的特定选项投票的操作。 # 1.问题详情页:展示某个投票的问题和不带结果的选项列表 def detail(request,questi…...

求助:配置脚手架代理,跨域问题proxyTable配置无效,访问后显示404?

已经在这里卡了一天了。找了很多解决办法,比如重启,修改proxytable等等,但是每次但是404,求助各位大佬,怎么解决? 1、代码 (1)config的index.js (2) App.v…...

【4月】组队打卡《山有木Python特征工程极简入门》

活动名称 CDA Club 第2期《山有木兮Python数据分析极简入门》组队打卡 活动介绍 本次打卡活动由CDA俱乐部旗下学术部主办。目的是通过数据分析科普内容,为数据分析爱好者提供学习和交流的机会。方便大家利用碎片化时间在线学习,以组队打卡的形式提升学…...

Wireshark 抓包

启动时选择一个有信号的网卡双击打开,或者在 捕获选择里打开选择网卡。 然后输出下面的规则就可以抓到报文了。 最上面的三条是建立连接时的三次握手, 下面是发送数据hello 对应两条数据 最下面的4条是断时的4次挥手...

c语言运算符优先级

1、运算符介绍 在C语言中,运算符优先级是指在表达式中执行运算的先后顺序。按照C语言的标准规范,不同的运算符被赋予了不同的优先级等级,优先级高的运算符会先进行运算。如果同一优先级的运算符出现在同一个表达式中,则按照从左到…...

纳斯达克大屏媒体尺寸与投放费用:一次投放需要多少钱?

纳斯达克大屏媒体尺寸与投放费用:一次投放需要多少钱? 1. 纳斯达克图片要求 1.1 像素要求 高度:2336 像素宽度:1832 像素 1.2 分辨率要求 像素比率:1.0 px 72 dpi 1.3 文件格式要求 静态图片格式:.…...

将word转为PDF的几种简单方式

第一种:使用spire.doc.jar包,用时7秒左右。 引入spire.doc-11.1.1.jar包,该包带水印,建议使用免费版的spire.doc.free-5.2.0.jar,免费版只能转三页。 package web.tools.excel; import com.spire.doc.*; public cl…...

大型集团公司企业文化知识竞活动赛策划方案

一场高端企业文化知识竞赛活动完整策划书,按诗词大会舞美标准进行设计,竞赛规则新颖,值得收藏。 天纵高端知识竞赛服务商,20多年现场经验和软硬件开发。 专业承办全国高端知识竞赛活动。线上线下各类竞赛活动均可执行,…...

Spring Boot设置io临时目录

在部署springboot项目,使用MultipartFile上传文件会出现以下异常 Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.3016596448718765136.18001/work/Tomcat/localhost/xx] is …...

Polar 2024春季个人挑战赛 Jay17 WP

Polar 2024春季个人挑战赛 Rank&#xff1a;7 【WEB】机器人 开题 起手敏感文件robots.txt 【WEB】PHP反序列化初试 最简单的php反序列化 POC&#xff1a; <?php class Easy{public $name;public function __wakeup(){echo $this->name;} } class Evil{public $evi…...