Grafana Loki 日志聚合代理
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/grafana-loki-log-aggregation-agent 到 AI 助手。
技能介绍
解决的问题
传统日志系统依赖全文索引,导致存储成本高且运维复杂。在多租户环境中,日志隔离和路由规则易出错,且难以关联分布式追踪数据,故障排查效率低。
核心能力与关键步骤
- Promtail 配置:自动生成
promtail-config.yml,定义日志源、标签和管道,支持容器和系统日志采集。 - LogQL 查询:提供查询模板,例如
sum by (service) (rate({namespace="prod"} |= "error"))),快速定位错误服务。 - 多租户路由:通过
tenant_id标签隔离日志,例如route_by_tenant("team-a", "team-b"),确保各团队日志独立存储和查询。 - 保留策略:设置日志生命周期,例如
retention_policy("30d"),避免长期存储占用资源。 - Tempo 关联:生成
tempo-config.yml,在日志中注入trace_id,例如link_trace("span_id"),实现日志与追踪的交叉跳转。
适用边界与注意点
- 依赖 Docker Driver Client:需在 Docker 环境中安装该插件,否则无法直接采集容器日志。
- 无全文索引:Loki 仅索引元数据,复杂文本搜索需依赖 LogQL 过滤,可能影响查询性能。
- 多租户配置复杂:需严格管理
tenant_id标签,避免跨租户数据泄露。 - Tempo 集成限制:需确保 Tempo 与 Loki 版本兼容,否则关联查询可能失败。
使用场景
- 团队需将多个容器日志统一采集到Loki,使用Promtail配置定义日志源和标签。
- 运维需快速定位生产环境错误日志,通过LogQL查询模板过滤特定服务日志。
- 多租户环境下需隔离各团队日志,通过tenant_id标签实现路由和查询隔离。
- 需关联日志与Tempo追踪数据,通过注入trace_id实现故障链路回溯。
适合人员
- 云原生工程师需要简化多租户日志隔离流程
- SRE团队希望快速关联日志与追踪数据进行故障排查
- DevOps工程师需优化日志存储成本通过元数据索引
- 平台管理员需统一管理跨团队日志路由规则