用途:将多服务或多主机的日志集中到可搜索系统,替代本地日志文件,并与指标、追踪关联实现可观测性。
主要能力:选择 Loki 或 ELK 栈;用 Docker Compose 部署 Loki 与 Promtail;配置 Promtail 采集日志并做标签提取;用 LogQL 查询、过滤和聚合日志;通过 trace_id 关联日志与追踪;配置保留与压缩策略。
使用方式:先按需求选择栈(Loki 适合标签查询、低成本、K8s 场景;ELK 适合全文检索与复杂分析)。部署示例使用 grafana/loki:2.9.0 与 grafana/promtail:2.9.0,命令为 -config.file=/etc/loki/local-config.yaml 和 -config.file=/etc/promtail/config.yml。Promtail 配置包含 scrape configs、pipeline stages、relabel configs 和 positions 文件。LogQL 支持 {job="app"}、|~ 正则、| json、| logfmt、| pattern 及 count_over_time、rate 等聚合。保留策略通过 limits_config.retention_period 和 compactor 配置。
适用场景:多服务日志整合、生产事故排查、结构化日志与标签提取、按存储与合规要求设置保留期。
限制:资料未提供具体价格、平台支持范围或性能基准;高基数标签会导致索引膨胀,需使用固定标签;保留删除需启用 compactor;默认摄入速率限制可能需调整;查询超时需缩小时间窗口。