2

尝试设置 Promtail 时出现以下错误:

level=error ts=2020-11-27T06:10:30.310583Z caller=main.go:104 msg="error creating promtail" error="failed to make file target manager: pipeline stage must contain only one key"

我正在从命令行运行以下命令。

promtail-windows-amd64.exe --config.file=../conf/promtail-local-config.yml

我的日志行如下所示:

13:21:03.183 - 信息 - 成功接收来自“127.0.0.1”的文档。从地址 '/127.0.0.1' 在 102 毫秒内保存为 'c:\test\test_file.txt'

13:21:05.275 - 警告 - 无法从“127.0.0.1”接收文档。创建文件 c:\test\error_file.txt' 时出错

我的配置如下所示:

scrape_configs:
- job_name: promtailTest
  pipeline_stages:
  - match:
    selector: '{job="promtailTest"}'
    stages:
    - regex:
      expression: '^(?P<timestamp>\\d{2}:\\d{2}:\\d{2}\\.\\d{3})\\s\\-\\s(?P<logLevel>[A-Z]{4,5})\\s\\-\\s(?P<logMessage>.*)$'
    - labels:
      logLevel:
  static_configs:
  - targets:
      - localhost
    labels:
      job: promtailTest
      app: promtailTest
      host: LOCAL
      __path__: C:/test/logs/*log

当我取出pipeline_stages:部分时,我确实看到了 grafana 中的行,但是我无法让正则表达式部分工作。我实际上想为日志记录级别添加一个标签(这样我就可以计算错误)

4

1 回答 1

5

呸!!我是个傻瓜。我认为问题出在我的格式上(YAML 可以是真正的 PITA !!!)

我的新配置现在看起来像这样并且它可以工作。

scrape_configs:

  - job_name: promtailTest
    static_configs:
    - targets:
        - localhost
      labels:
        job: promtailTest
        app: promtailTest
        host: APOLLO99
        __path__: D:/SXI/XPress/Dispatch/logs/*log
    pipeline_stages:
    - match:
        selector: '{job="promtailTest"}'
        stages:
        - regex:
            expression: "^^(?P<myTime>\\d{2}:\\d{2}:\\d{2}\\.\\d{3})\\s\\-\\s(?P<logLevel>[A-Z]{4,5})\\s\\-\\s(?P<logMessage>.*)$$"
        - labels:
            logLevel:
于 2020-11-27T06:56:03.103 回答