elasticsearch Fluentd JSON日志在16385个字符后截断/拆分-如何合并?,elasticsearch,kibana,elastic-stack,fluentd,efk,elasticsearch,Kibana,Elastic Stack,Fluentd,Efk" /> elasticsearch Fluentd JSON日志在16385个字符后截断/拆分-如何合并?,elasticsearch,kibana,elastic-stack,fluentd,efk,elasticsearch,Kibana,Elastic Stack,Fluentd,Efk" />

elasticsearch Fluentd JSON日志在16385个字符后截断/拆分-如何合并?

elasticsearch Fluentd JSON日志在16385个字符后截断/拆分-如何合并?,elasticsearch,kibana,elastic-stack,fluentd,efk,elasticsearch,Kibana,Elastic Stack,Fluentd,Efk,我已经在K8s环境中部署了Bitnami EFK堆栈: repository: bitnami/fluentd tag: 1.12.1-debian-10-r0 目前,我的命名空间中的一个模块/应用程序被配置为生成JSON日志。我将Kibana中的日志视为JSON格式 但是在16385个字符之后会出现拆分/截断日志的问题,我看不到完整的日志跟踪。 我已经测试了一些concat插件,但到目前为止,它们没有给出预期的结果。或者可能是我错误地实现了插件 fluentd-inputs.conf

我已经在K8s环境中部署了Bitnami EFK堆栈:

  repository: bitnami/fluentd
  tag: 1.12.1-debian-10-r0
目前,我的命名空间中的一个模块/应用程序被配置为生成JSON日志。我将Kibana中的日志视为JSON格式

但是在16385个字符之后会出现拆分/截断日志的问题,我看不到完整的日志跟踪。 我已经测试了一些concat插件,但到目前为止,它们没有给出预期的结果。或者可能是我错误地实现了插件

fluentd-inputs.conf: |
      # Get the logs from the containers running in the node
      <source>
        @type tail
        path /var/log/containers/*.log
        tag kubernetes.*
        <parse>
          @type json
          time_key time
          time_format %Y-%m-%dT%H:%M:%S.%NZ
        </parse>
      </source>
      # enrich with kubernetes metadata
      <filter kubernetes.**>
        @type kubernetes_metadata
      </filter>
      <filter kubernetes.**>
        @type parser
        key_name log
        reserve_data true
        <parse>
          @type json
        </parse>
      </filter>
      <filter kubernetes.**>
        @type concat
        key log
        stream_identity_key @timestamp
        #multiline_start_regexp /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d+ .*/
        multiline_start_regexp /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3}
        flush_interval 5
      </filter>

    fluentd-output.conf: |
      <match **>
        @type forward
         # Elasticsearch forward
        <buffer>
          @type file
          path /opt/bitnami/fluentd/logs/buffers/logs.buffer
          total_limit_size 1024MB
          chunk_limit_size 16MB
          flush_mode interval
          retry_type exponential_backoff
          retry_timeout 30m
          retry_max_interval 30
          overflow_action drop_oldest_chunk
          flush_thread_count 2
          flush_interval 5s
          flush_thread_count 2
          flush_interval 5s
        </buffer>
      </match>
      {{- else }}
      # Send the logs to the standard output
      <match **>
        @type stdout
      </match>
      {{- end }}
fluentd-inputs.conf:|
#从节点中运行的容器获取日志
@型尾
路径/var/log/containers/*.log
塔格·库伯内特斯*
@类型json
时间键时间
时间\u格式%Y-%m-%dT%H:%m:%S.%NZ
#使用kubernetes元数据进行丰富
@类型kubernetes\u元数据
@类型分析器
密钥名称日志
保留数据为真
@类型json
@海螺型
密钥日志
流\标识\密钥@时间戳
#多行\u start\u regexp/^\d{4}-\d{2}-\d{2}\d{2}:\d{2}:\d{2}、\d+*/
多行\u start\u regexp/^\d{4}-\d{2}-\d{2}:\d{2}:\d{2}.\d{3}
冲洗间隔5
fluentd-output.conf:|
@打字前进
#弹性向前搜索
@类型文件
路径/opt/bitnami/fluentd/logs/buffers/logs.buffer
总限制大小1024MB
块\u限制\u大小16MB
刷新模式间隔
重试\u类型指数\u回退
重试\u超时30m
重试\u最大\u间隔30
溢出\u操作删除\u最旧\u块
齐平螺纹数2
冲洗间隔5s
齐平螺纹数2
冲洗间隔5s
{{-else}
#将日志发送到标准输出
@类型标准输出
{{-end}
我不确定,但一个原因可能是在fluentd配置中,一些插件已经用于过滤JSON数据,也许有一种不同的方式来使用新的concat插件?或者可以用不同的方式进行配置?

你们谁能支持我?
谢谢

你在哪里看到被截断的JSON,即
stdout
elasticsearch
两者都有?嗨,阿泽姆,我都看到了!你好您是否可以尝试在不使用筛选器和
stdout
的情况下进行测试?另外,fluentd日志中是否存在任何相关错误?您好,我在stdout中看到了日志。-->tag=“kubernetes.var.log.containers.authserver-ma-entersekt-86c687f778-jbm6z_dbh-v1-dev_authserver-ma-entersekt-7ee27fb6c10f78a6d31c63b1683591ab242bb56610977276b672ee9.log”time=2021-05-09 10:24:25.196245905+0000记录={“log”=>“2021-05-09 12:24:25195[,]DEBUG header.writers.HstsHeaderWriter(HstsHeaderWriter.java:129)-未注入HSTS头,因为它与requestMatcher org.springframework.security.web.header.writers.HstsHeaderWriter不匹配$SecureRequestMatcher@486a233c\“流”=>“标准输出”,“码头工人”=>{“容器id”=>“7ee27fb6c10f78a6”