Fluend 不会自动在 JsonParser 中添加当前系统时间

Fluend does not automatically add the current system time in Json Parser

流利的专家和用户!

目前我们在使用 Fluentd 解析 json 格式日志时遇到了一个问题。 Fluentd不会自动将当前系统时间添加到解析结果中,虽然我根据文档配置了time_key和keep_time_key

我们日志的例子是, {"host": "204.48.112.175", "user-identifier": "-", "method": "POST", "request": "/synthesize/initiatives/integrated", "protocol": "HTTP/2.0", "status": 502, "bytes": 10272} 可以看到里面没有时间字段

但是解析出来的日志输出中没有系统当前时间(输出为stdout(debug模式)):

loghub_s3: {"host":"204.48.112.175","user-identifier":"-","method":"POST","request":"/synthesize/initiatives/integrated","protocol":"HTTP/2.0","status":502,"bytes":10272,"referer":"http://www.centralenable.name/user-centric/reintermediate/synergistic/e-business","s3_bucket":"loghub-logs-691546483958","s3_key":"json/json-notime.json"}

我的配置文件是:

<system>
  log_level debug
</system>

<match loghub_s3>
  @type stdout
  @id output_stdout
</match>

<source>
  @type s3
  tag loghub_s3

  s3_bucket loghub-logs-691546483958
  s3_region us-east-1
  store_as json
  add_object_metadata true
  <instance_profile_credentials>
    ip_address 169.254.169.254
    port       80
  </instance_profile_credentials>

  <sqs>
    queue_name loghub-fluentd-dev
  </sqs>
  
  <parse>
    @type json
    time_type string
    time_format %d/%b/%Y:%H:%M:%S %z
    time_key time
    keep_time_key true
  </parse>
</source>

其他信息:

并且我们使用了 s3-input-plugin:https://github.com/fluent/fluent-plugin-s3

谁能帮我们看看是不是配置有问题。而且我不确定这是 Fluentd 问题还是插件问题。

非常感谢!

如评论中所述,除非另行配置,否则 fluentd 不会创建 time/timestamp 字段。您可以 inject 此字段位于 filtermatch 部分。

这里有一个使用 sample input and stdout 输出插件的例子:

fluentd: 1.12.3

fluent.conf

<source>
  @type sample
  @id in_sample
  sample {"k":"v"}
  tag sample
</source>

<match sample>
  @type stdout
  @id out_stdout
  <inject>
    time_key timestamp
    time_type string
    time_format %Y-%m-%dT%H:%M:%S.%NZ
  </inject>
</match>

运行 流利:

fluentd -c ./fluent.conf

流利的日志

2022-04-10 08:46:26.053278947 +0500 sample: {"k":"v","timestamp":"2022-04-10T08:46:26.053278947Z"}
2022-04-10 08:46:27.056770340 +0500 sample: {"k":"v","timestamp":"2022-04-10T08:46:27.056770340Z"}
2022-04-10 08:46:28.059998159 +0500 sample: {"k":"v","timestamp":"2022-04-10T08:46:28.059998159Z"}