用途:本技能是 Grafana Loki 的实施指南。Loki 是受 Prometheus 启发的水平可扩展、高可用、多租户日志聚合系统,只索引元数据(标签)而非全文,将压缩块存入对象存储(S3、GCS、Azure Blob),用 Prometheus 风格标签组织日志流,默认多租户隔离,索引小、成本低。
主要能力:涵盖核心组件(Distributor、Ingester、Querier、Query Frontend、Query Scheduler、Index Gateway、Compactor、Ruler)与读写路径;三种部署模式——单体(-target=all,适合实验与约 20GB/天小规模)、简单可扩展 SSD(推荐默认,分 write/read/backend)、微服务分布式;Schema 推荐 TSDB + v13;Azure/S3/GCS 存储配置;chunk 编码 snappy、目标约 1.5MB、max_chunk_age 2h 等最佳实践;limits_config 的保留期、摄入与查询限制;Compactor 保留与删除;Memcached 结果与块缓存;LogQL 流选择器、过滤表达式、管道阶段(json、logfmt、pattern)与指标查询(rate、count_over_time、topk);OTLP 原生集成(需 allow_structured_metadata: true);Helm 部署与 Azure 托管身份配置;多租户 X-Scope-OrgID;常见故障排查与 API 参考。
使用方式:通过 Helm 安装,如 helm repo add grafana https://grafana.github.io/helm-charts 后 helm install loki grafana/loki --namespace monitoring --values values.yaml;查询用 /loki/api/v1/query 与 query_range,推送用 /loki/api/v1/push,OTLP 用 /otlp/v1/logs。
适用场景:Kubernetes 环境下的日志聚合、多租户日志平台、与 OpenTelemetry 集成的可观测性栈。
限制与注意:Ingester 会拒绝中途改变基数的标签,导致流被静默拆分;LogQL 行过滤比标签过滤快;缺少 X-Scope-OrgID 会静默写入 fake 租户;保留期按租户配置,全局变量仅为回退;Compactor 未运行会堆积孤儿块;Promtail 迁移到 Alloy 时标签归一化存在差异。具体版本兼容与性能数据暂未提供。