1

我的 Fluent Bit Docker 容器正在向通过 STDIN 接收的日志添加带有本地时间的时间戳;否则通过 rsyslog 或 journald 收到的所有日志似乎都具有 UTC 时间格式。

我有一个基本的 EFK 堆栈,我在其中运行 Fluent Bit 容器作为远程收集器,它们将所有日志转发到 FluentD 中央收集器,它将所有内容推送到 Elasticsearch。

我在 Fluent Bit 配置文件中添加了一个过滤器,我在其中尝试了多种修改时间戳的方法,但无济于事。好像我想多了;修改时间戳应该容易得多。

这些都是我尝试使用fluent-bit.conf过滤器修改时间戳的所有方法

[FILTER]
    Name         record_modifier
    Match_Regex  ^(?!log.*).*$         ## only match the input received via stdin
    Tag          log.stdout            ## tag to mark input received via stdin 
    Add          sourcetype timestamp  ## tried to add timestamp from lua script 
    Parser       docker                ## tried to use docker parser for timestamp
    Time_key     utc                   ## tried to add timestamp as a key
    script       test.lua              ## sample lua script from fluentbit docs
    call         cb_print              ## call a function from within lua script

使所有时间戳统一到 UTC的事实上的方法是什么?任何帮助或建议表示赞赏。

4

1 回答 1

3

它的工作方式是docker解析器提取'log'的内容并尊重docker定义的时间戳。

一种快速的解决方法是修改您的 parrs.conf 并确保 docker 解析器不会解析时间戳,这样 Fluent Bit 将为您分配 UTC 中的当前时间。

于 2020-01-28T09:37:02.670 回答