Like Prometheus, but for logs.

Loki:类 Prometheus 的日志系统
Loki 是一款受 Prometheus 启发的水平可扩展、高可用多租户日志聚合系统。 其设计旨在实现极高的成本效益和简便的运维体验。 它不会对日志内容进行索引,而是为每个日志流建立一组标签索引。
与其他日志聚合系统相比,Loki 具有以下特点:
- 不对日志进行全文索引。通过存储压缩的非结构化日志并仅索引元数据,Loki 运维更简单,运行成本更低。
- 使用与 Prometheus 相同的标签对日志流进行索引和分组,使您能够使用已有的 Prometheus 标签在指标和日志之间无缝切换。
- 特别适合存储 Kubernetes Pod 日志。Pod 标签等元数据会被自动抓取并建立索引。
- 在 Grafana 中提供原生支持(需要 Grafana v6.0 及以上版本)。
基于 Loki 的日志栈由三个组件构成:
请注意,Alloy 已在日志栈中取代 Promtail,因为 Promtail 已被视为功能完善,未来的日志收集开发工作将集中在 Grafana Alloy。
Loki 就如同日志领域的 Prometheus:我们倾向于采用多维标签索引方式,并追求一个无依赖、易于运维的单二进制文件系统。 Loki 与 Prometheus 的不同之处在于,它专注于日志而非指标,并且通过推送而非拉取的方式获取日志。
快速开始
⚠️ Helm Chart 迁移通知
自2026年3月16日起,Grafana Loki Helm chart 将迁移至新仓库 grafana-community/helm-charts。Loki 仓库中的 chart 将仅继续为 GEL 用户提供维护。详情请参见 #20705。
升级
文档
常用章节:
- API 文档:用于将日志导入 Loki。
- 标签
- 运维操作
- Docker 驱动客户端:一个 Docker 插件,用于直接从 Docker 容器向 Loki 发送日志。
- LogCLI:提供查询日志的命令行界面。
- Loki Canary:监控 Loki 安装以检测日志丢失情况。
- 故障排除:提供错误消息的解决帮助。
- 在 Grafana 中使用 Loki:介绍如何在 Grafana 中配置 Loki 数据源。
获取帮助
如果您对 Loki 有任何问题或反馈:
- 在 Grafana Labs 社区论坛中搜索关于 Loki 的现有讨论:https://community.grafana.com
- 在 Loki Slack 频道提问。要加入 Grafana Slack,请访问 https://slack.grafana.com/ 并加入 #loki 频道。
- 提交 issue 以报告错误、问题或功能建议。
- 发送电子邮件至 lokiproject@googlegroups.com,或使用 网页界面。
- UI 问题应直接在 Grafana 中提交。
我们始终欢迎您的反馈。
进一步阅读
- Loki 的原始设计文档是了解其设计动机和决策的重要资料。
- Callum Styan 在 2019 年 3 月 DevOpsDays 温哥华会议上的演讲:“Grafana Loki:用于事件调查的日志聚合”。
- Grafana Labs 博客文章:“我们如何设计 Loki,使其既能轻松作为微服务运行,也能作为单体应用运行”。
- Tom Wilkie 在 2019 年初 CNCF 巴黎/FOSDEM 会议上的演讲:“Grafana Loki:类 Prometheus 的日志系统”(幻灯片,视频)。
- David Kaltschmidt 在 KubeCon 2018 上的演讲:“借助 Grafana 实现全面可观测性的开源之路”(幻灯片,视频),介绍了 Loki 在云原生环境中的应用。
- Goutham Veeramachaneni 的博客文章:“Loki:受 Prometheus 启发的云原生开源日志系统”,详细介绍了 Loki 的架构。
- David Kaltschmidt 的博客文章:“深入了解 Grafana 的 Loki 用户界面”,探讨了日志用户界面的设计理念。
贡献指南
请参考 CONTRIBUTING.md
从源代码构建
Loki 可以在单主机、无依赖模式下运行,使用以下命令即可。
您需要一个最新版本的 Go,我们建议使用 Makefile 中指定的版本。
# Checkout source code
$ git clone https://github.com/grafana/loki
$ cd loki
# Build binary
$ go build ./cmd/loki
# Run executable
$ ./loki -config.file=./cmd/loki/loki-local-config.yaml
或者,在 Unix 系统上,您可以使用 make 来构建二进制文件,这会向 go build 命令添加额外参数。
# Build binary
$ make loki
# Run executable
$ ./cmd/loki/loki -config.file=./cmd/loki/loki-local-config.yaml
要在本地运行多个 Loki 租户,请确保将 auth_enabled 设置为 true,并提供包含任何租户特定覆盖的运行时配置。
# Build binary
$ make loki
# Run executable
./loki -config.file=./cmd/loki/loki-local-multi-tenant-config.yaml -runtime-config.file=./cmd/loki/loki-overrides.yaml
采用者
有关目前使用 Loki 的部分组织,请参阅 ADOPTERS.md。 如果您希望将您的组织添加到列表中,请提交 PR 进行添加。
许可证
Grafana Loki 根据 AGPL-3.0-only 许可进行分发。有关 Apache-2.0 例外情况,请参见 LICENSING.md。