首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能正确地使用promtail解析登录

不能正确地使用promtail解析登录
EN

Stack Overflow用户
提问于 2022-11-17 20:59:41
回答 1查看 109关注 0票数 0

有人能就如何正确配置promtail来解析我的日志中的json输出提供建议吗?我还没有弄清楚promtail为什么没有识别json属性并在Grafana中显示它们。

我的logback附录,在logback.xml中:

代码语言:javascript
复制
<appender name="json"
    class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.contrib.json.classic.JsonLayout">
        <jsonFormatter
            class="ch.qos.logback.contrib.jackson.JacksonJsonFormatter">
            <prettyPrint>true</prettyPrint>
        </jsonFormatter>
        <timestampFormat>yyyy-MM-dd' 'HH:mm:ss.SSS</timestampFormat>
    </layout>
</appender>

promtail.yaml

代码语言:javascript
复制
        ...
        ...
        ...
 scrape_configs:
    - job_name: parse-logs
      pipeline_stages:
        - docker: {}
        - json:
            expressions:
              subscriptionType:
              AuthenticationSuccess:
              user:
              execution_lasted: execution_lasted
              time-to-pull(.ms): time-to-pull(.ms)
            source: message
        - json:
            expressions:
              logger: logger
              level: level
              timestamp: timestamp
              message: message
        - labels:
            level:
            timestamp:
        ...
        ...
        ...

日志:

代码语言:javascript
复制
...
{
  "timestamp" : "2022-11-24 09:33:03.361",
  "level" : "DEBUG",
  "thread" : "http-nio-8081-exec-3",
  "logger" : "com.vanitysoft.boundariesio.unitedstates.domain.dao.impl.PostalGrabberDAOImpl",
  "message" : "{\"time-to-pull(.ms)\":12,\"user\":\"unknown\",\"number-of-postals\":1}",
  "context" : "default"
}{
  "timestamp" : "2022-11-24 09:33:03.361",
  "level" : "DEBUG",
  "thread" : "http-nio-8081-exec-3",
  "logger" : "com.vanitysoft.boundariesio.unitedstates.domain.dao.impl.PostalGrabberDAOImpl",
  "message" : "{\"time-to-pull(.ms)\":12,\"user\":\"unknown\",\"number-of-postals\":1}",
  "context" : "default"
}

在编辑promtail配置之后,我准备了一个汇总更新..。

代码语言:javascript
复制
kubectl edit configmap loki-promtail --namespace loki-stack
kubectl rollout restart deployment/lke-monitor-grafana

更新 promtail解析要求将日志写入同一行(没有漂亮的打印!)

代码语言:javascript
复制
<layout class="ch.qos.logback.contrib.json.classic.JsonLayout">
    <jsonFormatter          class="ch.qos.logback.contrib.jackson.JacksonJsonFormatter">
    </jsonFormatter>
     <appendLineSeparator>true</appendLineSeparator>
    <timestampFormat>yyyy-MM-dd' 'HH:mm:ss.SSS</timestampFormat>
</layout>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-28 04:33:24

假设您正确地复制到您的promtail.yaml中,则存在格式化错误:-docker: {}应该是- docker: {}

代码语言:javascript
复制
---
scrape_configs:
  - job_name: parse-logs
    pipeline_stages:
      - docker: {}
      - json:
          expressions:
            subscriptionType: null
            AuthenticationSuccess: null
            user: null
            execution_lasted: execution_lasted
            time-to-pull(.ms): time-to-pull(.ms)
          source: message
      - json:
          expressions:
            logger: logger
            level: level
            timestamp: timestamp
            message: message
      - labels:
          level: null
          timestamp: null
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74482028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档