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

如何解决Promtail过滤ALERT日志并添加alert:report标签失效问题

问题分析

你的配置存在两个核心问题:

  1. 未过滤不匹配的日志:默认情况下,Promtail的regex阶段仅尝试匹配日志内容,不会自动丢弃不匹配的日志,因此所有日志都会进入后续流程并推送到Loki。
  2. 标签添加未关联匹配条件:当前labels阶段是无条件执行,但由于正则匹配失败时没有触发逻辑,加上配置中使用了HTML转义的"(应替换为正常双引号"),导致标签未正确添加。
修正后的配置

使用regex阶段的action: keep参数仅保留匹配[ALERT]的日志,再为其添加标签:

positions:
  filename: /tmp/positions.yaml

clients:
  - url: http://loki:3100/loki/api/v1/push

scrape_configs:
  - job_name: API-LOGS
    static_configs:
      - targets:
          - localhost
        labels:
          job: api-logs
          __path__: ./logs/api/*.log
    pipeline_stages:
      # 仅保留包含[ALERT]的日志,不匹配的直接丢弃
      - regex:
          expression: '.*\[ALERT\].*'
          action: keep
      # 为过滤后的日志添加alert标签
      - labels:
          alert: "report"

  - job_name: CRAWLER-LOGS
    static_configs:
      - targets:
          - localhost
        labels:
          job: crawler-logs
          __path__: ./logs/crawler/*.log
关键说明
  • action: keep:该参数告诉Promtail仅保留匹配正则表达式的日志,不匹配的会被直接丢弃,实现过滤效果。
  • 替换转义引号:将配置中的"改为正常的双引号",避免Promtail解析标签值时出错。
  • 正则表达式:.*\[ALERT\].*中的\[和\]是转义字符,因为[和]在正则中是特殊符号,必须转义才能匹配日志中的[ALERT]字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 06:03:21