Loki 概述
Loki 是 Grafana Labs 推出的开源日志聚合系统,受 Prometheus 启发,专为云原生环境设计。
核心特点(和 ELK/ES 对比):
| 特性 | Loki | Elasticsearch |
|---|---|---|
| 存储成本 | 极低(只存标签+原始日志) | 高(全文索引) |
| 查询性能 | 标签过滤极快,内容搜索稍慢 | 全文搜索极快 |
| 架构复杂度 | 简单(单二进制可运行) | 复杂 |
| 适合场景 | 大量微服务、Kubernetes 日志 | 需要复杂分析的业务日志 |
Loki = Labels(标签) + Chunks(日志块) + Index(轻量索引)
Loki 核心组件
- Loki 主程序:读写核心(可单进程模式或微服务模式)
- Promtail / Grafana Agent:日志采集(部署在每个节点)
- Querier:查询接口
- Ingester:写入接口
- Distributor:分发写入请求
- Ruler(可选):告警规则
- 对象存储:S3/MinIO/GCS/本地文件系统等(存放日志块和索引)
Loki 部署
在 K8S 中使用 Helm 以微服务的方式部署 Loki
#
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm search repo grafana/loki -l | grep 'loki '
helm show values grafana/loki --version 5.43.3 > values-loki-5.43.3.yaml
# 修改 values 文件后,执行
helm upgrade --install loki grafana/loki \
--version 5.43.3 \
--namespace monitoring \
--create-namespace \
-f values-loki-5.43.3.yaml