在本指南中,我们将详细了解Grafana Loki架构及其组件。
在公司的分布式环境中,存储和管理来自各种系统资源的日志是一项具有挑战性的任务。为了简化这项任务,引入了一个称为日志聚合的概念,它从各种系统资源中收集、存储、管理日志。有各种各样的日志聚合工具,其中一个工具是 Grafana Loki,通过本文我们一起探索一下 Loki。
什么是 Grafana Loki?
Grafana Loki 是一个开源的日志收集系统,其功能是收集、存储和查询日志。Grafana Loki 压缩日志并将日志存储在块中,并将它们存储在文件系统或 AWS S3 等后端存储中。
块是一个压缩文件,其中包含基于日志卷的日志条目,因此当块大小达到其大小限制时,它会将日志存储在另一个块中。每当存储一个块时,它都会为每个块创建一个索引。索引不包含日志的内容,它只包含时间戳、块的标签和块的位置。
日志的默认保留期限为24小时,最短期限为1小时,最长可延长至30天。Loki 横向扩展并具有其查询语言 LogQL。
Grafana Loki 架构
下图显示了 Grafana Loki 的架构以及它如何收集日志的工作流程。

- 现在,让我们看看 Grafana Loki Logging 是如何工作的。该图显示了 Grafana Loki 如何收集、存储、查询和可视化日志。
- 在 Grafana Loki 中,agent 负责从文件、容器、pod、应用程序和系统日志中收集日志。
- Loki 使用日志收集代理(agent)来收集日志,如果您在 Kubernetes 中使用 Loki,代理将作为守护程序集(Daemonset)部署,因为我们需要来自集群每个可用节点的日志。
- Promtail 是该架构中使用的代理(agent),Promtail 收集日志,然后过滤和压缩日志以节省存储空间。
- 压缩日志后,它会为日志提供一个标签并将其发送给 Loki。
- 从 Promtail 接收到日志之后,Loki 将每个日志存储为一个块,该块将日志消息收集在一个文件中,以节省存储空间和有效检索。
- 它还为块提供标签和时间戳。每当存储块时,它都会为每个块创建一个索引,其中包含块的时间戳、标签和位置。
- Loki 使用 LogQL 查询语言查询日志,LogQL 允许我们根据我们选择的标签和值过

最低0.47元/天 解锁文章
122

被折叠的 条评论
为什么被折叠?



