使用 promtail 在同一个日志文件中抓取两条不同格式的消息

问题描述 投票:0回答:1

我有一个 json 格式的日志文件(由 logback 生成但不相关),它有两种不同的消息类型:

   452  {
   453    "timestamp" : "2022-10-25 14:37:50.389",
   454    "level" : "INFO",
   455    "thread" : "http-nio-38080-exec-10",
   456    "logger" : "aaa.bbb.LogClass",
   457    "message" : "{\"methodName\":\"POST\",\"requestUri\":\"/api/v1/config/\",\"requestPayload\":11901,\"responseCode\":201,\"responseLenght\":2,\"time\":1666708670389,\"timeTaken\":37}",
   458    "context" : "default"
   459  }{
   460    "timestamp" : "2022-10-25 15:48:08.671",
   461    "level" : "INFO",
   462    "thread" : "SpringContextShutdownHook",
   463    "logger" : "com.zaxxer.hikari.HikariDataSource",
   464    "message" : "HikariPool-1 - Shutdown initiated...",
   465    "context" : "default"
   466  }

我从文档中了解到,您可以将文件拆分多次,所以我明白一定可以序列化不同的消息,对吧?这是我的 promtail 配置。

scrape_configs:
  - job_name: Promtail
    pipeline_stages:
    - json:
        expressions:
          timestamp:
          level:
          thread: 
          logger:
          message:
          context:
    - json:
        expressions:
          methodName:
          requestPayload:
          responseCode:
          responseLenght:
          time:
          timeTaken:
        source: message
    static_configs:
    - targets:
        - localhost
      labels:
        job: varlogs
        host: yourhost
        __path__: /var/log/*.log

  - job_name: Promtail2
    pipeline_stages:
    - json:
        expressions:
          timestamp:
          level:
          thread: 
          logger:
          message:
          context:
    static_configs:
    - targets:
        - localhost
      labels:
        job: varlogs2
        host: yourhost
        __path__: /var/log/*.log

另一个选择是,将其倒入不同的文件中?然后我可以将它与 grafana 中的查询放在一起?

logging logback grafana-loki promtail logql
1个回答
0
投票

尝试做类似的事情,但使用来自 Java/Go 的日志,因为它们是不同的。我想刮掉它们并使它们看起来相似,这样我就可以在 Grafana/Loki 中查询它们。可以

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.