日志收集监控告警平台的选型思考
目前市面上比较常见的日志收集系统有:ELK,Grafana Loki,OpenObserve,SigNoz,Graylog ,Syslog-ng,Highlight,接下来我会对这几个一一做分析。
1. ELK
ELK 是 Elasticsearch、Logstash 和 Kibana 组合起来的一个开源日志分析和可视化解决方案,常用于日志聚合、索引和检索,以及数据可视化。
优点:
- 实时搜索和分析:Elasticsearch 提供近乎实时的全文搜索和数据分析能力,非常适合日志数据的实时查询和分析。
- 分布式和横向扩展:Elasticsearch 支持分布式部署和水平扩展,能够在处理大量日志数据时保持高效性能。
- 跨平台兼容:基于 Java 开发,Elasticsearch 能够运行在多种操作系统之上,满足不同环境需求。
- 可视化友好:Kibana 提供丰富的数据可视化功能,允许用户创建交互式仪表板,帮助开发者和运维人员快速洞察系统状态。
- 数据摄取灵活:Logstash 作为数据处理管道,能够从多个来源收集日志,并进行过滤、转换和加载到 Elasticsearch 中,支持多种数据格式。
- 社区庞大:ELK 作为开源项目,背后有一个庞大的社区和丰富的插件生态,为各种应用场景提供了现成的解决方案。
缺点:
ELK最大的诟病:就是对资源的消耗,对硬件资源的要求相对较高,尤其是在处理大量数据或面对复杂查询时,内存和CPU占用较大。同时维护ELK的集群以及稳定性可能会比较复杂,比较重。
项目如果前期
2. Loki
Loki是由 Grafana 团队制作的一个日志管理系统,它根据开源 AGPLv3 许可证发布。由于其日志存储机制,它是独一无二的,只对每个日志流的标签和元数据进行索引,而不是日志的内容。这使它需要更少的存储空间,也可以更快地处理日志消息。然而,这种方式的缺点是,与其他平台相比,它在日志搜索功能上就不那么好用了。
优点:
- 与 Grafana 无缝集成,提供了强大的可视化功能。用于通过其可定制的仪表板显示从日志数据生成的各种数据。
- 由于其独特的索引策略,存储和处理日志的成本较低。
- 提供了一个强大的报警系统。你可以创建在满足某些条件时将触发的规则,然后将它们发送到 Prometheus AlertManager,然后将它们路由到适当的目的地,这确保了能够快速识别并及时解决关键问题。
缺点:
- 全文搜索限制:由于不支持全文索引,对于需要根据日志具体内容进行快速搜索的场景,Loki 可能不是最佳选择。
- 查询复杂性:虽然提供了LogQL查询语言,但相比其他日志解决方案,其查询语句可能更为复杂,尤其是涉及分析和聚合时。
使用场景:
- 容器化环境:Loki 特别适合于 Kubernetes 等容器化环境,可以轻松获取和处理Pod级别的日志,并利用容器标签对日志进行分类和筛选。
- 云原生应用:在云基础设施中,Loki 能很好地配合微服务架构,通过标签对大量服务产生的日志进行高效索引和查询。
大规模日志处理:对于需要处理TB甚至PB级别日志数据的企业来说,Loki 的水平扩展特性使其成为理想的日志管理系统。 - 监控与告警:结合Grafana的可视化功能,Loki可用于实时监控系统状态,设置基于日志事件的告警规则,实现日志驱动运维(Logging-as-a-Service)。
3. OpenObserve
OpenObserve 是一个云原生的可观测性平台,旨在替代或补充现有的日志管理、指标监控和追踪工具如 Elasticsearch、Splunk、Datadog 等。它提供了一个高效的解决方案,用于收集、存储、查询和分析来自分布式系统的日志、指标和追踪数据。
优点:
- 成本优势:OpenObserve 提供了显著的存储成本优势,相比于 Elasticsearch 等传统工具,其声称的存储成本可降低140倍以上,这有助于降低运营成本。
- 使用 OpenObserve,你不需要学习新的查询语言来查询日志,因为它支持 SQL 作为其主要的日志和追踪查询语言,以及 PromQL 用于查询指标数据。它也非常容易安装和操作,由于其基于 Rust 来编写的,所以它只需要很少的资源来运行。
- 提供了一个直观且易于使用的 UI 界面,允许你管理和可视化你正在收集的各种可观察性数据。在摄取或查询时,你可以丰富、解析、删除敏感数据,并删除日志的不需要的部分,以便只留下相关的部分。
- OpenObserve 还提供了一个内置的报警机制,可以将警报发送到 Slack、Microsoft Teams 和其他渠道。
- 它还支持团队成员之间的协作,并使用基于角色的访问控制来根据团队成员的级别控制对数据的访问,确保你的数据的整体安全。
- 用 Rust 编写以获得高性能。
缺点:
- 生态成熟度:由于OpenObserve是一个新兴的解决方案,其生态系统的成熟度、社区支持以及插件和工具的丰富程度可能不及市场上久经考验的传统解决方案。
- 市场接受度和案例:在市场知名度和实际应用案例方面,OpenObserve可能还在逐步积累阶段,对于潜在用户来说可能存在一定的采纳风险。
- 只免费计划提供每月 200GB 的摄取和 15 天的保留。
使用场景:
- 云原生应用监控:对于运行在云环境中的微服务架构和容器化应用,OpenObserve 可以为运维人员提供全面的可观测性能力,帮助他们快速定位和解决问题。
- 大数据处理和分析:在处理海量日志和指标数据时,利用 OpenObserve 的高效存储和查询引擎,企业可以降低成本的同时提高数据洞察力。
- DevOps 和 SRE 实践:在 DevOps 流程中,OpenObserve 可以作为关键工具,用于持续监控应用程序的性能、故障排查、容量规划和系统优化。
- 企业级监控:对于大型企业来说,OpenObserve 的低成本和可扩展性特点使其成为替代或补充现有昂贵监控解决方案的理想选择。
4. SigNoz
SigNoz是一个日志收集和分析工具,可以收集和管理来自各种来源的日志、指标、跟踪和异常。它为使用 OpenTelemetry 检测应用程序提供本机支持,以防止供应商锁定,将收集到的数据存储在 ClickHouse 中,然后在用户友好的仪表板中聚合和可视化数据。
借助 SigNoz,可以使用其查询生成器、PromQL 或 ClickHouse 查询轻松设置警报的动态阈值。其查询生成器简化了搜索和过滤日志的过程,任何触发的警报都会通过 Slack、PagerDuty 等渠道向您发送通知。
优点:
- 提供了一个全面的解决方案,包括指标、追踪和日志。
- 使用 OpenTelemetry 进行数据收集,可以轻松地与你的应用程序集成。
- 提供良好的默认设置,可以将其安装在 Kubernetes 集群中,并立即开始收集日志和指标。
- 开箱即用地提供图表和可视化功能。
- 自动计算重要的指标,如错误率和 99 百分位数。
- 可以轻松设置动态警报阈值,并及时发送通知。
缺点:
- 文档可能不够清晰,因为它主要涵盖存储和保留期配置。
- 升级有时会导致问题。
- 统一的仪表板目前不可用。
- 定制性有限。
5. Graylog
Graylog是一个开源日志管理平台,可简化日志数据的收集、存储和分析过程。它从不同来源收集日志,解析和丰富它们,然后将它们存储在数据库中以供将来分析。正如它支持多个输入源一样,它能够将收集到的数据转发到其他系统,例如 Elasticsearch。
借助 Graylog 先进的搜索功能,您可以在几毫秒内快速浏览 TB 级的数据,甚至可以保存搜索查询以供将来使用。其可定制的仪表板提供了基本指标和数据的清晰可视化,从而提供了应用程序活动的全面概述。此外,您可以轻松创建和调度报告,这些报告会自动发送到您的收件箱。
Graylog 还擅长主动监控,允许定期搜索,在满足预定义条件时触发通知。通过指定搜索的时间范围和频率,可以轻松配置这些警报阈值。您还可以利用 Graylog Marketplace 中提供的插件来增强警报条件和其他业务用例。
优点:
- 提供团队协作功能。
- 简洁且用户友好的界面。
- 能够接收来自各种来源的日志。
- 快速而复杂的日志搜索。
- 支持可定制的警报阈值。
缺点:
- 资源消耗:由于使用Elasticsearch作为搜索引擎,Graylog在处理大规模日志时可能会消耗较多的硬件资源,特别是在索引和查询优化方面。
- 复杂性:部署和维护Graylog集群可能需要一定技术背景,特别是对于大规模集群的管理和调优。
- 生态与竞争:相较于其他日志处理领域内的竞品(如ELK stack),Graylog的生态系统和社区活跃度可能稍显不足,导致插件、文档和解决方案的丰富程度有限。
- 学习曲线:对于初次接触的用户,Graylog的配置和管理可能有一定的学习成本。
6. Syslog-ng
Syslog-ng是一款先进的日志管理工具,用于收集、处理和转发系统日志消息。它是syslog协议的改进版,提供了比传统的syslog守护进程更为强大和灵活的功能。
优点:
- 日志过滤与路由:Syslog-ng具有强大的过滤功能,可以根据日志的内容、源、优先级等多个维度对日志消息进行精细化过滤,并能灵活地将日志路由到不同的目的地,如文件、数据库、网络接口等。
- 高性能与可扩展性:Syslog-ng设计之初即考虑到了高性能和可扩展性,可以处理大量并发的日志流,适用于大型分布式环境。
- 多平台支持:Syslog-ng可以在多种操作系统平台上运行,包括Linux、Unix以及Windows等。
- 日志模板与解析:支持自定义日志模板,能够处理多种日志格式,并通过模板解析功能将非结构化的日志数据转化为结构化数据,便于后续处理和分析。
- 多源数据集成:不仅能够处理传统的syslog日志,还支持从其他来源(如数据库、文件系统、网络套接字等)收集日志信息。
缺点:
- 学习曲线:相较于传统的syslog,syslog-ng的配置文件语法更为复杂,初学者可能需要花费更多时间去学习和理解其配置规则。
- 资源消耗:在处理大量日志数据时,syslog-ng可能会占用较多的系统资源,特别是在启用高级过滤和转换功能时。
- 特定功能需求:虽然syslog-ng功能强大,但某些特殊场景下可能需要用户编写较复杂的配置脚本来满足特定需求。
7. Highlight.io
http://Highlight.io 是一个开源的日志管理工具,专为开发者和运维团队设计,用于收集、索引和分析日志数据。它使用 Elasticsearch 作为其后端存储,提供了一个强大的搜索和分析功能。
Highlight是一个全栈监控平台,不仅提供日志管理,还提供会话重放和错误监控,利用 ClickHouse 进行数据存储和检索。它旨在使您能够跟踪应用程序的行为、识别错误或错误、分析日志并轻松找到性能问题的根本原因。
只需两行代码,您就可以在安装此工具后开始使用它进行日志记录。它将立即开始从您的应用程序收集日志。然后可以轻松搜索和查询这些日志消息和属性。它还允许您将警报设置为当日志达到指定阈值时所需的频率。您将通过支持的渠道收到通知,包括电子邮件、Slack、Discord 或 webhooks。
优点:
- 集成式解决方案:集成了日志收集、索引和分析功能,简化了日志管理流程。
- Elasticsearch 后端:得益于 Elasticsearch 的分布式搜索和分析引擎,Highlight.io 能够处理大规模的日志数据并提供快速的全文检索。
- 开发者友好:面向开发者和运维人员设计,通常包含易于使用的图形界面和 API 接口,方便日志查询和报表生成。
- 开源社区支持:开源意味着更低的成本和更大的灵活性,同时也意味着有机会获得社区的支持和不断改进的特性。
缺点:
- 社区活跃度和成熟度:相较于已经广泛应用的 ELK Stack(Elasticsearch, Logstash, Kibana),Highlight.io 是否具有同样活跃的社区支持和丰富的插件生态不得而知。
- 功能扩展性:开源软件的具体功能和性能可能受限于其当前的开发状态,某些高级功能可能不如商业化产品完善。
- 维护和升级:使用开源工具意味着需要自行承担部分维护和升级责任,如果没有足够的技术支持,可能需要投入额外的人力和时间成本。
总结:
- 对于寻求与Grafana紧密结合、侧重标签索引、存储成本低的日志解决方案,推荐Grafana Loki,尤其是对于已经使用Grafana进行监控的团队。
- 如果希望有一体化的可观测性解决方案,看重日志、指标和跟踪的整合,OpenObserve是个值得关注的新星,适合愿意探索和贡献的早期使用者。
- 对于预算有限且关注应用性能监控的小型团队,SigNoz可以作为一个性价比高的选项。
- 对于需要全面日志管理功能和复杂查询能力的传统IT设施或较复杂的分布式系统,Graylog是成熟的选择。
- 对于只需要基础日志收集、转发和简单的本地处理的场景,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 系统中,正常情况下,子进程是通过父进程创建的,且两者的运行是相互独立的ÿ…...

苍穹外卖项目-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等系统上运行,甚至…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...