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>
其他信息:
- Fluentd 版本:1.14.3
- TD代理版本:4.3.0
- fluent-plugin-s3 版本:1.6.1
- 操作系统:Amazon Linux2
- 内核版本:5.10.102-99.473.amzn2.x86_64
并且我们使用了 s3-input-plugin:https://github.com/fluent/fluent-plugin-s3
谁能帮我们看看是不是配置有问题。而且我不确定这是 Fluentd 问题还是插件问题。
非常感谢!
如评论中所述,除非另行配置,否则 fluentd
不会创建 time/timestamp 字段。您可以 inject 此字段位于 filter
或 match
部分。
这里有一个使用 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"}
流利的专家和用户!
目前我们在使用 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>
其他信息:
- Fluentd 版本:1.14.3
- TD代理版本:4.3.0
- fluent-plugin-s3 版本:1.6.1
- 操作系统:Amazon Linux2
- 内核版本:5.10.102-99.473.amzn2.x86_64
并且我们使用了 s3-input-plugin:https://github.com/fluent/fluent-plugin-s3
谁能帮我们看看是不是配置有问题。而且我不确定这是 Fluentd 问题还是插件问题。
非常感谢!
如评论中所述,除非另行配置,否则 fluentd
不会创建 time/timestamp 字段。您可以 inject 此字段位于 filter
或 match
部分。
这里有一个使用 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"}