You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Promtail仅保留指定Docker容器的日志消息

Promtail配置:仅抓取指定前缀的容器日志

可直接复制的有效配置

scrape_configs:
  - job_name: flog_scrape
    docker_sd_configs:
      - host: unix:///var/run/docker.sock
        refresh_interval: 5s
    relabel_configs:
      # 过滤保留名称以interesting_开头的容器
      - source_labels: ['__meta_docker_container_name']
        regex: '/interesting_.*'
        action: keep
      # 提取容器名称到container标签(去除前缀/)
      - source_labels: ['__meta_docker_container_name']
        regex: '/(.*)'
        target_label: 'container'

配置说明

  • 核心过滤逻辑:新增的relabel_configs规则使用action: keep,仅保留元数据中容器名(格式为/容器名)匹配/interesting_.*的目标,直接丢弃不符合条件的容器,从根源避免无效日志抓取。
  • 标签提取:原有的标签提取规则放在过滤之后,仅对符合条件的容器处理,将容器名(去除前缀/)赋值给container标签。

"pipeline stage must contain only one key"错误解决

这个错误几乎都是YAML缩进或格式错误导致的,常见场景和正确格式:

  1. 错误示例:同一个stage块中混合多个stage类型
# 错误写法
pipeline_stages:
  - match: '{container=~"interesting_.*"}'
    regex: 'some pattern'
  1. 正确格式:每个stage是独立的列表项,每个项仅包含一种stage类型
# 正确写法
pipeline_stages:
  - match:
      selector: '{container=~"interesting_.*"}'
      stages:
        - regex:
            expression: 'some pattern'
        - labels:
            log_level: level

确保每个stage块只有一个顶级key(如match、regex、labels),缩进严格对齐。

内容的提问来源于stack exchange,提问作者alamar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 19:30:39