部署教程|Grafana Loki + Promtail:轻量日志聚合与检索
部署教程|Grafana Loki + Promtail:轻量日志聚合与检索
笨鸟先飞1. 方案概览
Loki 是“类 Prometheus 的日志系统”,索引少、存储便宜;Promtail 负责采集并推送到 Loki;Grafana 用来查询/仪表盘/告警。
2. Docker Compose 部署(最小示例)
docker-compose.yml:
1 | version: "3.8" |
loki-config.yaml 使用官方 local-config 即可;promtail-config.yaml 示例:
1 | server: |
启动:
1 | docker compose up -d |
Grafana 可单独用官方镜像,连接 Loki 数据源:URL = http://loki:3100.
3. Kubernetes 部署(Helm)
1 | helm repo add grafana https://grafana.github.io/helm-charts |
Promtail 默认会抓取容器日志路径 /var/log/pods,并自动附带 k8s 标签(namespace/pod/container)。
4. 在 Grafana 查询
- 添加数据源:Loki → URL 指向
http://loki:3100. - 示例 LogQL:
- 最近错误:
{job="varlogs"} |= "error" - 按服务聚合:
sum by (service) (count_over_time({service!=""}[$5m]))
- 最近错误:
- 可把 LogQL 转成图表或告警。
5. 生产化提示
- 存储:为 Loki 配置持久卷;按量级选单实例/微服务模式。
- 分片与限流:高并发写入时调整
ingester/querier并发与限流。 - 标签控制:避免高基数标签(如随机 ID),保持查询高效。
- 安全:开启 auth,或放到内网;对 Grafana 启用登录/SSO。
- 备份:对象存储后端(S3/R2/OSS)可直接备份;本地盘需定期快照。
6. 常见故障
- 日志没入库:检查 Promtail
clients.url、网络和标签路径。 - 查询慢:减少高基数标签,缩短时间范围,检查存储 IO。
- 磁盘占用猛增:调整保留策略、压缩、下沉冷数据。
7. 总结
Loki + Promtail 用极低成本解决日志聚合,既能跑在 Compose,也能在 Kubernetes 一键部署。加上 Grafana,查询与告警即可闭环。先用最小配置跑通,再按量级调优存储与标签。***


