在 fluidd 中使用日志时间更新时间戳/time_key 并不顺利

问题描述 投票:0回答:1

我有一个 Fluentd 客户端,它将日志转发到 Logstash,并最终通过 Kibana 查看。我尝试了几种配置来将时间戳更新为日志文件中的时间条目。然而,这样做并不幸运。

这是我的 Fluentd 配置文件的解析部分:

<parse>
  # @type none
  @type multiline
  format_firstline /^\[([\w]+)\s*\]\s*(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/
  format1 /\[(?<loglevel>[\w]+)\s*\]\s*(?<logtime>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\s*\[(?<thread>[^\]]*)\]\s*(?<class>[^ ]*)\s+-\s*(?<message>.*)/
  time_key logtime
  time_type string
  time_format %Y-%m-%d %H:%M:%S
  keep_time_key true
</parse>

为什么这个配置不起作用? kibana 中的时间戳仍然是

fluent_time
而不是我的
logtime

我还尝试在“匹配”内的“注入”部分添加

time_key
,如下所示,这也不起作用。参考 - 如何使用 Fluent 为 Elasticsearch 添加时间戳和密钥

<inject>
   time_key @logtime
   time_type string
   time_format %Y-%m-%d %H:%M:%S
</inject>

除此之外,我还尝试了如下所示的

record_transformer
,但这也不起作用。参考 - https://docs. Fluentd.org/v0.12/articles/filter_record_transformer#renew_time_key-(可选,-string-type)

<filter pattern>
   @type record_transformer
   <record>
     renew_time_key ${record["logtime"]} 
   </record>
</filter> 

我还在每次尝试中尝试过使用和不使用“@”来表示

logtime
。我还尝试在“源”部分中添加
time_key
组件,但这也不起作用。

Fluentd 和 ruby 版本 - Fluentd-1.0.2 ruby="2.4.2"

此时,我陷入了困境。我缺少什么?任何建议表示赞赏!

logstash fluentd td-agent
1个回答
-1
投票

老实说,不确定这是如何解决问题的,但是,在解析中添加以下注入标签以及我的 time_key 配置似乎已经成功了。 Kibana 中的时间戳现在基于 logtime。

<inject>
  time_key @timestamp
</inject>
© www.soinside.com 2019 - 2024. All rights reserved.