Loki 3.7.8 介绍与选型指南

介绍 Grafana Loki 3.7.8 的标签索引模型、部署模式、LogQL 查询与适用边界,并与 ELK、ClickHouse 日志方案、Graylog 做选型对比。

LokiLoki日志管理2026/10/19

Loki 3.7.8 介绍与选型指南

一、信息基准

本文为认知篇(A1),纯依据官方公开资料溯源编写,不包含本地安装与实测内容。查询日期为 2026-10-19。

1.1 版本依据表(2026-10-19 实查)

项目内容来源
软件名称Grafana Loki(水平可扩展、高可用的多租户日志聚合系统)grafana.com/oss/loki
最新稳定版v3.7.8(3.x 为主线;同期 v3.6.18 为 3.6 维护线补丁;官方尚无 4.x 发布)github.com/grafana/loki/releases.atom
开发语言Go官方仓库
开源许可AGPL-3.0(仓库 LICENSE 文件核对)github.com/grafana/loki
GitHub stars29,036(仓库页面实查)github.com/grafana/loki
官方采集器口径Promtail 已宣布进入弃用流程,官方推荐迁移到 Grafana Alloygrafana.com 官方文档

1.2 官方来源清单

来源URL用途
Loki 官方产品页https://grafana.com/oss/loki/产品定位
官方文档https://grafana.com/docs/loki/latest/架构、配置、快速上手
官方发布记录https://github.com/grafana/loki/releases.atom版本实查
官方源码仓库https://github.com/grafana/loki许可与代码
LogQL 语言文档https://grafana.com/docs/loki/latest/query/查询语言参考

二、软件概述

Grafana Loki 是 Grafana 公司开源的水平可扩展、高可用、多租户日志聚合系统,设计动机源于「只索引元数据、不索引日志全文」:日志以压缩块形式存入对象存储或文件系统,索引仅记录标签(label)集合。官方称这一设计显著降低了存储与运维成本,代价是查询时需要按标签缩小范围后扫描日志内容。

按 2026-10-19 官方实查口径,本次介绍 Grafana Loki v3.7.8(官方 releases 当前最新发布,3.x 主线;3.6.x 为并行维护线,尚无 4.x)。Loki 与 Grafana、Prometheus 同属 Grafana 可观测性生态:指标用 Prometheus、日志用 Loki、链路用 Tempo,通过 Grafana 统一查询。

Loki 的技术形态是 Go 编写的单二进制/多组件服务,支持三种部署规模:单体的 monolithic 模式、按读写分离的 simple scalable 模式与微服务模式(官方部署文档定义),存储后端可插拔(本地文件系统、S3 兼容对象存储、GCS/Azure Blob 等)。

三、核心架构

3.1 「标签索引 + 原文存储」模型

官方文档阐述的核心设计:每条日志流(stream)由一组标签键值对唯一标识(如 {job="nginx", host="web01"}),索引只为标签建立倒排,日志原文按时间分块(chunk)压缩存储。写入时同标签日志归为一路流;查询时先用标签匹配定位流集合,再在时间范围内解压过滤,配合 LogQL 的行过滤与解析完成全文级检索。

3.2 组件与部署模式

微服务视角下的核心组件(官方架构文档):

  • Distributor:写入入口,校验并按一致性哈希分发日志到 Ingester;
  • Ingester:内存缓冲与压缩日志块,周期性落盘(flush)到存储;
  • Querier / Query Frontend:查询执行层,前端负责拆分查询、去重与并行调度;
  • Compactor / Index Gateway:索引压缩与读取加速(随部署模式启用)。

官方提供三种部署模式对应不同规模:monolithic(单进程,小规模)、simple scalable(读写分离三角色,中等规模)、microservices(全组件拆分,大规模多租户)。

3.3 LogQL 查询语言

Loki 官方查询语言 LogQL 语法对齐 PromQL:标签选择器 + 管道操作(|= 行过滤、| json/| logfmt/| pattern 解析、| line_format 改写),并支持以日志行数、字节数为数值的指标化查询(如 rate({...}[5m])),可在 Grafana 中像指标一样绘制日志图表与告警。

四、功能特性

  • 低成本存储:只索引标签,日志原文进对象存储,官方宣称显著低于全文索引方案的存储成本;
  • 水平扩展与多租户:组件无状态化设计可横向扩容,X-Scope-OrgID 实现多租户隔离(官方多租户文档);
  • 对象存储友好:S3/GCS/Azure/本地文件系统等可插拔存储后端,配合单副本(复制因子内置于一致性环)即可运行;
  • LogQL 指标化查询:日志转指标(rate、count_over_time 等),告警规则可基于日志直接定义;
  • 弹性采集生态:Grafana Alloy(官方推荐,替代已弃用的 Promtail)、OpenTelemetry Collector、Prometheus/Promtail 远写、平台原生日志驱动等多路接入(官方接入文档);
  • 规则与告警:内建 ruler 组件可直接基于 LogQL 评估告警规则并推送 Alertmanager;
  • 统一可视化:与 Grafana 深度集成,日志-指标-链路可在同一仪表盘关联跳转。

五、快速上手

以下内容引自官方文档「Get started with Loki」(https://grafana.com/docs/loki/latest/get-started/)与官方仓库 local-config 示例,仅作认知示意,不包含本地实测结果。

5.1 单机最小配置

官方仓库提供的本地运行配置(local-config.yaml 形态,存储指向文件系统):

auth_enabled: false

server:
  http_listen_port: 3100

common:
  path_prefix: /tmp/loki
  storage:
    filesystem:
      chunks_directory: /tmp/loki/chunks
      rules_directory: /tmp/loki/rules
  replication_factor: 1
  ring:
    kvstore:
      store: inmemory

schema_config:
  configs:
    - from: 2020-10-24
      store: tsdb
      object_store: filesystem
      schema: v13
      index:
        prefix: index_
        period: 24h

启动:./loki -config.file=local-config.yaml,服务监听 3100 端口(HTTP API)。

5.2 logcli 查询示例

官方文档 Get started 章节的查询形态:

# 查询某标签流的最近日志
logcli query '{job="varlogs"}' --since=1h

# 统计包含 error 的行数速率
logcli query 'rate({job="varlogs"} |= "error" [5m])'

5.3 官方文档入口

六、适用场景与限制

6.1 适用场景

  • Kubernetes 与云原生环境的日志聚合:标签化日志流模型与节点/工作负载标签天然契合,配合 Alloy/OTel 采集;
  • 已有 Grafana 技术栈:指标-日志-链路统一在 Grafana 查询,Loki 是官方推荐日志组件;
  • 大规模低成本日志留存:日志量大、全文索引成本不可接受、且查询通常可按标签先缩小范围的场景;
  • 多团队共享日志平台:内建多租户与配额(官方租户文档),适合平台团队统一建设。

6.2 限制

  • 查询依赖标签设计:不建标签全表扫描代价高,官方文档明确「先选标签、再过滤内容」的查询范式,标签基数(cardinality)失控会显著影响性能;
  • 全文检索能力弱于 Elasticsearch:无倒排全文索引,跨海量日志的即席全文搜索不如 ES 高效;
  • 采集器迁移成本:Promtail 已弃用,存量部署需规划迁移到 Alloy 或 OTel Collector(官方迁移指南);
  • AGPL-3.0 许可:网络服务形态的改造集成需履行开源义务;另需注意部分企业功能(多副本对象存储层级、企业安全特性)位于 Grafana 商业版。

七、同类选型对比

按任务口径对比 ELK(以 Elasticsearch 为核心的日志方案)、ClickHouse 日志方案、Graylog。数据均为 2026-10-19 联网实查。

7.1 量化对比表

维度Loki v3.7.8ELK(Elasticsearch 9.5.5)ClickHouse v26.9.21.9-stableGraylog Open 7.2.0
开源许可AGPL-3.0(仓库 LICENSE 实查)三重许可:AGPLv3 / SSPL v1 / ELv2(仓库 LICENSE.txt 实查)Apache-2.0(仓库 LICENSE 实查)SSPL v1(仓库 LICENSE 实查)
GitHub stars29,036(仓库页面实查)78,309(仓库页面实查)50,478(仓库页面实查)8,156(graylog2-server 仓库页面实查)
最近发版v3.7.8(releases.atom 实查;3.6.18 为维护线)9.5.5(releases.atom 实查)v26.9.21.9-stable,另有 v26.3.55.2-lts 长期支持线(releases.atom 实查)7.2.0(7.1.10/7.0.14 并行维护,releases.atom 实查)
版本节奏3.x 双线并行(3.7 主线 + 3.6 维护),季度级大版本9.x/8.19.x 多线并行,随 Elastic Stack 季度发布年度多版本 + LTS 线并行7.x 为主版本线,多线并行
索引模型仅索引标签,原文进对象存储全文倒排索引列存 OLAP 引擎(日志表方案)全文索引(构建于 Elasticsearch/OpenSearch 之上)
定位云原生日志聚合全功能搜索与分析(日志/SIEM)通用 OLAP(可作日志存储底座)开箱即用日志管理平台
兼容矩阵Linux 单二进制 + 多种对象存储Linux 发行包 + JVMLinux/macOS/FreeBSDLinux 发行包 + JVM(依赖 Mongo/搜索后端)

7.2 选型分析

  • Loki:存储成本与运维复杂度最低,标签模型与 Grafana 生态契合;适合「标签可预期」的云原生日志场景,不适合任意字段即席全文检索为主的需求;
  • ELK(Elasticsearch):全文检索与聚合分析能力最强、生态最成熟;存储成本高、运维重,许可为三重许可需按场景核对(AGPLv3 分支使其重新具备开源可用性);
  • ClickHouse:以列存 OLAP 承载日志(自建日志表 + 物化视图),压缩比与聚合查询吞吐突出,Apache-2.0 许可干净;但日志采集、查询界面与告警需自行搭建,属「底座」而非成品;
  • Graylog Open:开箱即用的日志管理界面(解析、仪表盘、告警),上手最快;底层仍依赖 Elasticsearch/OpenSearch,SSPL 许可与商业版功能边界需评估。

选型建议一句话:Kubernetes 环境或 Grafana 生态内做低成本日志聚合选 Loki;需要强全文检索与成熟生态选 ELK;日志量巨大且愿意自建查询层可用 ClickHouse;要开箱即用的日志运营界面选 Graylog。

八、参考链接

  1. Loki 官方产品页:https://grafana.com/oss/loki/
  2. 官方文档(Get started):https://grafana.com/docs/loki/latest/get-started/
  3. 官方部署文档:https://grafana.com/docs/loki/latest/setup/install/
  4. 官方发布记录:https://github.com/grafana/loki/releases.atom
  5. Loki 源码仓库(AGPL-3.0):https://github.com/grafana/loki
  6. Elasticsearch 仓库与 LICENSE:https://github.com/elastic/elasticsearch
  7. ClickHouse 官网:https://clickhouse.com/
  8. Graylog 官网:https://graylog.org/
  9. Graylog 源码仓库:https://github.com/Graylog2/graylog2-server