我有一个流利的客户端,它将日志转发到 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 而不是我的日志时间。
我还尝试在“匹配”中的“注入”部分添加 time_key,如下所示,这也不起作用。参考 -如何使用 fluent 为弹性搜索添加时间戳和密钥
<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"
在这一点上,我难住了。我错过了什么?任何建议表示赞赏!