fluidd 丢失了毫秒,现在日志消息在 elasticsearch 中存储无序

2023-11-25

我正在使用 fluidd 将日志消息集中在 elasticsearch 中并使用 kibana 查看它们。当我查看日志消息时,同一秒内发生的消息是无序的,并且 @timestamp 中的毫秒数全为零

2015-01-13T11:54:01.000-06:00   DEBUG   my message

我如何才能流畅地存储毫秒?


fluidd 目前不支持亚秒级分辨率:https://github.com/ Fluent/ Fluentd/issues/461

我通过使用 record_reformer 在所有日志消息中添加一个新字段来存储自纪元以来的纳秒来解决这个问题

例如,如果您的 fluidd 有一些输入,如下所示:

#
# Syslog
#
<source>
    type syslog
    port 5140
    bind localhost
    tag syslog
</source>

#
# Tomcat log4j json output
#
<source>
    type tail
    path /home/foo/logs/catalina-json.out
    pos_file /home/foo/logs/fluentd.pos
    tag tomcat
    format json
    time_key @timestamp
    time_format "%Y-%m-%dT%H:%M:%S.%L%Z"
</source>

然后将它们更改为如下所示,并添加一个添加纳秒字段的 record_reformer

#
# Syslog
#
<source>
    type syslog
    port 5140
    bind localhost
    tag cleanup.syslog
</source>

#
# Tomcat log4j json output
#
<source>
    type tail
    path /home/foo/logs/catalina-json.out
    pos_file /home/foo/logs/fluentd.pos
    tag cleanup.tomcat
    format json
    time_key @timestamp
    time_format "%Y-%m-%dT%H:%M:%S.%L%Z"
</source>

<match cleanup.**>
    type record_reformer
    time_nano ${t = Time.now; ((t.to_i * 1000000000) + t.nsec).to_s}
    tag ${tag_suffix[1]}
</match>

然后将 time_nano 字段添加到您的 kibana 仪表板中,并使用它代替 @timestamp 进行排序,一切都会按顺序进行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

fluidd 丢失了毫秒,现在日志消息在 elasticsearch 中存储无序 的相关文章

随机推荐