Loki:类似Prometheus,但用于日志。
Loki是一个受Prometheus启发的水平可扩展、高可用、多租户日志聚合系统。它设计为非常经济实惠且易于操作。它不索引日志内容,而是为每个日志流索引一组标签。
与其他日志聚合系统相比,Loki:
- 不对日志进行全文索引。通过存储压缩的非结构化日志并仅索引元数据,Loki更简单操作且运行成本更低。
- 使用与Prometheus相同的标签来索引和分组日志流,使您能够使用已经在Prometheus中使用的相同标签无缝切换mellan指标和日志。
- 特别适合存储Kubernetes Pod日志。Pod标签等元数据会自动抓取和索引。
- 在Grafana中原生支持(需要Grafana v6.0)。
基于Loki的日志堆栈由3个组件组成:
promtail
是代理,负责收集日志并将其发送到Loki。loki
是主服务器,负责存储日志和处理查询。- Grafana用于查询和显示日志。
请注意,Promtail被认为功能已经完善,未来日志收集的开发将在Grafana Alloy中进行
Loki类似于Prometheus,但用于日志:我们更喜欢基于多维标签的索引方法,并希望有一个单二进制、易于操作且无依赖的系统。Loki与Prometheus的不同之处在于专注于日志而不是指标,并通过推送而不是拉取来传递日志。
入门
升级
文档
常用章节:
- API文档,用于将日志导入Loki。
- 标签
- 运维
- Promtail是一个代理,用于跟踪日志文件并将其推送到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频道。
- 提交问题报告错误、问题和功能建议。
- 发送电子邮件至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用户界面",介绍了日志用户界面背后的想法。
贡献
从源代码构建
Loki可以使用以下命令在单主机、无依赖模式下运行。
您需要go
,我们建议使用我们的构建Dockerfile中的版本
$ go get github.com/grafana/loki
$ cd $GOPATH/src/github.com/grafana/loki # GOPATH默认为$HOME/go。
$ go build ./cmd/loki
$ ./loki -config.file=./cmd/loki/loki-local-config.yaml
...
要在非Linux平台上构建Promtail,请使用以下命令:
$ go build ./clients/cmd/promtail
在Linux上,如果启用了Journal支持,Promtail需要安装systemd头文件。
要启用Journal支持,应传递go构建标签标志promtail_journal_enabled
在Ubuntu上启用Journal支持,运行以下命令:
$ sudo apt install -y libsystemd-dev
$ go build --tags=promtail_journal_enabled ./clients/cmd/promtail
在CentOS上启用Journal支持,运行以下命令:
$ sudo yum install -y systemd-devel
$ go build --tags=promtail_journal_enabled ./clients/cmd/promtail
否则,要在不启用Journal支持的情况下构建Promtail,请禁用CGO运行go build
:
$ CGO_ENABLED=0 go build ./clients/cmd/promtail
采用者
请查看ADOPTERS.md了解目前使用Loki的一些组织。 如果您希望将您的组织添加到列表中,请提交PR将其添加到列表中。
许可证
Grafana Loki根据AGPL-3.0-only分发。有关Apache-2.0例外情况,请参阅LICENSING.md。