06.1、Grafana Loki简介
Grafana Loki 简介
欢迎来到第 6 章的学习。在前面的章节中,我们学习了 Prometheus 和 Grafana,它们主要负责指标数据的收集和可视化。现在我们要学习 Grafana Loki,这是一个专门用于日志管理的系统。
本节将学习:Loki 是什么?它与传统日志系统有什么区别?以及它的标签索引机制是什么?
Grafana Loki 是什么
Grafana Loki 是什么? Grafana Loki 是一个聚合日志的日志系统。
Loki 有什么特点呢?
- 水平可扩展。 Loki 可以轻松扩展。支持大规模日志。
- 高可用。 Loki 采用高可用架构。可以保证服务的可用性。
- 多租户。 Loki 支持多租户。不同的租户可以隔离。
- 与 Prometheus 标签模型兼容。 Loki 使用与 Prometheus 相同的标签模型。可以关联指标和日志。
- 成本优化。 Loki 不索引日志内容,只索引标签。这样可以大大降低存储成本。
Loki 的核心设计理念是什么?
第一个理念:不索引日志内容。 只索引标签,降低存储成本,提高写入性能。传统日志系统会索引所有内容,成本很高。
第二个理念:与 Prometheus 兼容。 使用相同的标签模型,可以关联指标和日志,统一的查询体验。这样可以更好地关联指标和日志。
第三个理念:水平可扩展。 可以轻松扩展,支持大规模日志,高可用架构。
Loki 架构: Promtail 收集应用日志,发送到 Loki,Loki 存储到对象存储,Grafana 使用 LogQL 查询日志。
这就是 Grafana Loki。一个现代化的日志系统。
与传统日志系统的区别
传统日志系统(如 ELK)有什么特点呢?
- 索引所有日志内容。 传统系统会索引所有日志内容。包括每条日志的文本内容。
- 全文搜索。 可以进行全文搜索。可以搜索日志中的任何内容。
- 存储成本高。 索引所有内容,存储成本很高。特别是对于大量日志。
- 写入性能低。 索引所有内容,写入性能会受到影响。
- 复杂的数据模型。 传统系统使用复杂的数据模型。例如 Elasticsearch 的索引和文档。
Loki 有什么特点呢?
- 只索引标签。 Loki 只索引标签,不索引日志内容。这样可以大大降低存储成本。
- 标签查询 + 过滤。 先用标签查询,然后在结果中过滤。虽然不能全文搜索,但可以高效查询。
- 存储成本低。 只索引标签,存储成本很低。
- 写入性能高。 不索引内容,写入性能很高。
- 简单的标签模型。 Loki 使用简单的标签模型。与 Prometheus 兼容。
对比图: 传统系统索引所有内容、全文搜索、成本高。Loki 只索引标签、标签查询、成本低。
这就是 Loki 与传统日志系统的区别。Loki 更适合大规模日志场景。
标签索引机制
Loki 的标签索引机制是什么? Loki 只索引标签,不索引日志内容。
Loki 的工作流程是什么?
第一步:日志通过标签分组。 日志通过标签分组。例如
{job="api", service="order-service", instance="server-1"}第二步:标签组成时间序列。 标签组成时间序列。相同标签的日志组成一个流。
第三步:查询时先用标签过滤。 查询时先用标签过滤。例如
{job="api"}第四步:然后在结果中过滤内容。 然后在结果中过滤内容。例如
|="error"标签示例: 日志流:
{job="api", service="order-service", instance="server-1"}{job="api"}|="error"索引架构: 日志 → 添加标签 → 标签索引 → 时间序列 → 存储。查询时:查询 → 标签过滤 → 内容过滤 → 返回结果。
标签索引的优势是什么?
- 存储成本低。 只索引标签,不索引内容。
- 写入性能高。 不需要索引内容,写入很快。
- 查询高效。 先用标签过滤,缩小范围。然后再过滤内容。
这就是标签索引机制。这是 Loki 的核心优势。
本节小结
在本节中,我们学习了 Grafana Loki 简介:
第一个是 Loki 是什么。 Loki 是聚合日志的日志系统。核心特点是只索引标签,不索引日志内容。
第二个是核心特点。 不索引日志内容,只索引标签。这样可以大大降低存储成本,提高写入性能。
第三个是与传统系统区别。 成本低、性能高、简单。传统系统索引所有内容,成本高。
第四个是标签索引机制。 标签过滤 + 内容过滤。先用标签过滤,然后在结果中过滤内容。
Loki 核心优势: 成本低(只索引标签)、性能高(写入快)、简单(标签模型)、兼容(Prometheus)。这些优势让 Loki 更适合大规模日志场景。
这就是 Grafana Loki 简介。理解这些基础知识,是掌握 Loki 的关键。
在下一节,我们将学习安装 Loki 和 Promtail。学习如何在 Linux 上安装,以及使用 Docker 安装。