Loki 是一个可水平扩展、高可用性、多租户日志聚合系统,其设计灵感来自 Prometheus。它的设计非常经济高效,而且易于操作
介绍
Loki
Like Prometheus, but for logs.
Loki
不索引日志内容,而是为每个日志流(log stream)
设置一组标签(tags)
- 特点
- Loki 不对日志进行全文索引。通过存储压缩的非结构化日志并只对元数据进行索引,Loki 的操作更简单,运行成本更低
- Loki 使用与 Prometheus 相同的标签对日志流进行索引和分组,使您能够使用与 Prometheus 相同的标签在指标和日志之间无缝切换
- Kubernetes Pod 是存储 Kubernetes Pod 日志的最佳选择。Pod 标签等元数据会被自动抓取并编入索引。
- Grafana v6.0 中开始支持 Loki
与其他日志系统对比
PLG
- promtail 负责收集日志并将其发送给 Loki 的 agent
Loki
主服务器,负责存储日志和处理查询
- Grafana 在这里用于查询和显示日志
安装
Docker
wget https://raw.githubusercontent.com/grafana/loki/v2.9.2/cmd/loki/loki-local-config.yaml -O loki-config.yaml
docker run --name loki -d -v $(pwd):/mnt/config -p 3100:3100 grafana/loki:2.9.2 -config.file=/mnt/config/loki-config.yaml
wget https://raw.githubusercontent.com/grafana/loki/v2.9.2/clients/cmd/promtail/promtail-docker-config.yaml -O promtail-config.yaml
docker run --name promtail -d -v $(pwd):/mnt/config -v /var/log:/var/log --link loki grafana/promtail:2.9.2 -config.file=/mnt/config/promtail-config.yaml
Docker Compose
wget https://raw.githubusercontent.com/grafana/loki/v2.9.2/production/docker-compose.yaml -O docker-compose.yaml
docker-compose -f docker-compose.yaml up
Helm