logstack 日志技术栈-04-opensource 开源工具 OpenObserve+Grafana Loki

news/2024/7/10 19:17:05 标签: 开源, grafana, elk, 日志

日志技术栈

日志管理包含日志数据存储、处理、分析和可视化,通过利用日志管理工具,可以监控性能趋势、解决问题、检测异常并优化整体系统性能。

近年来,开源日志管理解决方案在大家寻求灵活且经济有效的方式来管理现代系统典型的大量日志数据时,获得了显著的关注。这些工具为商业产品提供了有力的替代方案,使各种规模的企业都能有效地管理日志数据。

在这篇文章中,我们将讨论六种开源日志管理工具,这些工具为在生产环境中有效管理日志数据提供了灵活且经济有效的解决方案。我们将探讨它们的能力以及优缺点,以便你可以为自己的业务选择合适的解决方案。

1. OpenObserve

OpenObserve 是一个基于 Rust 的开源平台,可以通过支持日志、指标和追踪来满足你所有的可观察性需求。

它的目标是提供一个平台,该平台可以替代 Prometheus 用于指标、Elasticsearch 用于日志、Jaeger 用于链路追踪、Grafana 用于仪表板等,并且他还可以和 S3、GCS、Minio、Azure Blob 等对象存储服务兼容使用,比 Elasticsearch 低 140 倍的存储成本。

使用 OpenObserve,你不需要学习新的查询语言来查询日志,因为它支持 SQL 作为其主要的日志和追踪查询语言,以及 PromQL 用于查询指标数据。它也非常容易安装和操作,由于其基于 Rust 来编写的,所以它只需要很少的资源来运行。

它还提供了一个直观且易于使用的 UI 界面,允许你管理和可视化你正在收集的各种可观察性数据。在摄取或查询时,你可以丰富、解析、删除敏感数据,并删除日志的不需要的部分,以便只留下相关的部分。

OpenObserve 还提供了一个内置的报警机制,可以将警报发送到 Slack、Microsoft Teams 和其他渠道。它还支持团队成员之间的协作,并使用基于角色的访问控制来根据团队成员的级别控制对数据的访问,确保你的数据的整体安全。

OpenObserve 的优点

在一个包中提供日志、指标、链路追踪、仪表板、报警和函数支持。

免费计划提供每月 200GB 的摄取和 15 天的保留。

支持日志查询的 SQL 和指标的 PromQL。

团队的基于角色的访问控制。

由于其高效的数据存储过程,存储成本要低得多。

用 Rust 编写以获得高性能。

OpenObserve 的缺点

作为一个相对较新的产品,它没有像其他已经存在了更长时间的解决方案那样经过长时间的测试。

在撰写本文时,对日志和链路追踪的支持比指标更成熟。

2. Grafana Loki

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

它使用 Promtail(专门为 Loki 构建的日志收集器)通过 HTTP API 拉取日志。然后将日志分组成流并用标签进行索引,但是为了提高性能和降低存储成本,日志的文本并未被索引。一旦日志在 Loki 中,它们可以使用 Loki 的查询语言 LogQL 进行检索。它还与 Grafana 无缝集成,用于通过其可定制的仪表板显示从日志数据生成的各种数据。

Loki 还提供了一个强大的报警系统,你可以创建在满足某些条件时将触发的规则,然后将它们发送到 Prometheus AlertManager,然后将它们路由到适当的目的地,这确保了能够快速识别并及时解决关键问题。

部署 Grafana Loki 有 3 个方式:

单机模式:适合小型部署和开发环境。

微服务模式:适合大型部署和生产环境。

Grafana Cloud:由 Grafana 团队托管的 SaaS 解决方案。

Grafana Loki 的优点

与 Grafana 无缝集成,提供了强大的可视化功能。

由于其独特的索引策略,存储和处理日志的成本较低。

提供了一个强大的报警系统。

支持多种部署选项。

Grafana Loki 的缺点

日志搜索功能不如其他平台简单直接。

需要学习新的查询语言 LogQL。


http://www.niftyadmin.cn/n/5337435.html

相关文章

Dubbo源码解析第一期:如何使用Netty4构建RPC

一、背景 早期学习和使用Dubbo的时候(那时候Dubbo还没成为Apache顶级项目),写过一些源码解读,但随着Dubbo发生了翻天覆地的变化,那些文章早已过时,所以现在计划针对最新的Apache Dubbo源码来进行“阅读理解…

postman使用-07变量

文章目录 一、变量参数化(一)、环境变量1、两种方式设置环境变量方法一方法二 2、引用3、选择需要的环境变量 (二)、参数变量1、全局变量设置全局变量引用查看引用的变量是否是自己设定的值 2、局部变量设置局部变量引用 二、文档…

leetcode:每日温度---单调栈

题目: 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例&…

GoZero微服务个人探究之路(七)添加中间件、自定义中间件

说在前面 官方已经自己实现了很多中间件,我们可以方便的直接使用,不用重复造轮子了 开启方式可以看官方文档 中间件 | go-zero Documentation 实现自定义的中间件 在业务逻辑中,我们需要实现自定义功能的中间件 ------这里我们以实现跨源…

【AI】深度学习在编码中的应用(3)

接上,本文重点梳理基础架构设计相关的知识。 一、一些概念的理解和学习 有损/无损神经数据压缩: 有损神经数据压缩和无损神经数据压缩是两种不同的数据压缩方法,它们在神经科学领域中被广泛应用。以下是它们的定义、应用场景和关键技术&am…

基于ssm+vue的宠物医院系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

web漏洞总结大全(基础)

前言 本文章是和cike_y师傅一起写的,cike_y博客:https://blog.csdn.net/weixin_53912233?typeblog 也欢迎大家对本文章进行补充和指正,共同维护这个项目,本文的github项目地址: https://github.com/baimao-box/Sum…

在WIN从零开始在QMUE上添加一块自己的开发板(二)

文章目录 一、前言往期回顾 二、CPU虚拟化(一)相关源码(二)举个例子(三)测试 三、内存虚拟化(一)相关源码(二)举个例子测试 参考资料 一、前言 笔者这篇博客…