流利的Spring Boot日志记录

时间:2020-08-14 13:38:50

标签: java spring-boot fluent-bit

我们使用k8s fluent位将spring-boot日志发送到stackdriver。 我使用以下流利位配置:

  input-kubernetes.conf: |
    [INPUT]
      Name               tail
      Tag_Regex          var.log.containers.(?<pod_name>[a-z0-9](?:[-a-z0-9]*[a-z0-9])?(?:\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*)_(?<namespace_name>[^_]+)_(?<container_name>.+)-(?<docker_id>[a-z0-9]{64})\.log$
      Tag                k8s_container.<namespace_name>.<pod_name>.<container_name>
      Path               /var/log/containers/*.log
      Exclude_Path       /var/log/containers/*_kube-system_*.log,/var/log/containers/*_logging_*.log,/var/log/containers/*_ingress-nginx_*.log,/var/log/containers/*_kube-node-lease_*.log,/var/log/containers/*_kube-public_*.log,/var/log/containers/*_cert-manager_*.log,/var/log/containers/*_prometheus-operator_*.log
      Multiline          On
      Parser_Firstline   sb1
      Parser_1           sb2
      Buffer_Chunk_Size  512KB
      Buffer_Max_Size    5M
      Rotate_Wait        30
      Mem_Buf_Limit      30MB
      Skip_Long_Lines    On
      Refresh_Interval   10

  filter-kubernetes.conf: |

    [FILTER]
      Name                kubernetes
      Match               k8s_container.*
      Kube_URL            https://kubernetes.default.svc.cluster.local:443
      Kube_Tag_Prefix     k8s_container.
      Regex_Parser        k8s-container-custom-tag
      Annotations         Off
      Labels              Off
      Merge_Log           Off
      Keep_Log            On

  output-stackdriver.conf: |
    [OUTPUT]
      Name                       stackdriver
      Match                      *
      Resource                   k8s_container
      k8s_cluster_name           cw-cluster-staging
      k8s_cluster_location       digitalocean
      google_service_credentials /var/secrets/google/key.json
      tls                        On
      tls.verify                 Off
      severity_key               level

  parsers.conf: |
    [PARSER]
      Name        sb1
      Format      regex
      Regex       ^(?<time>(\d)+(-\d+)+(\S)+\W(\S)+)(\s+)(?<action>\S+)(\s+)(?<on>\S+)(\s+)(?<content>.*)
      Time_Key    time
      Time_Format %Y-%m-%d %H:%M:%S.%L
      Time_Keep   Off

    [PARSER]
      Name        sb2
      Format      regex
      Regex       (?m-ix)^(?<time>(\d)+(-\d+)+(\S)+\W(\S)+)(\s+)(?<action>\S+)(\s+)(?<on>\S+)(\s+)(?<content>.*)
      Time_Key    time
      Time_Format %Y-%m-%d %H:%M:%S.%L
      Time_Keep   Off

一键操作就可以了。日志如下:

2020-08-14 13:14:25.813  INFO 1 --- [nio-8080-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-08-14 13:14:25.814  INFO 1 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2020-08-14 13:14:25.841  INFO 1 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet        : Completed initialization in 27 ms

但是在堆栈驱动程序中,我看到类似以下内容的

2020-08-14 13:14:25.841 INFO 1 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Completed initialization in 27 ms\n","stream":"stdout","time":"2020-08-14T13:14:25.842142597Z

最后一个“ \n","stream":"stdout","time":"2020-08-14T13:14:25.842142597Z”来自哪里,如何将其隐藏在堆栈驱动器中?有什么想法吗?

0 个答案:

没有答案