docker - 如何将流利的docker容器通过stdin接收的日志的时间戳更改为UTC?

标签 docker elasticsearch timestamp fluentd fluent-bit

我的Fluent Bit Docker容器向通过STDIN接收的日志添加了带有本地时间的时间戳;否则,所有通过rsyslog接收或记录的日志似乎都具有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的实际方法是什么?任何帮助或建议,表示赞赏。

最佳答案

它的工作方式是docker解析器提取“log”的内容并遵守docker定义的时间戳。

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

关于docker - 如何将流利的docker容器通过stdin接收的日志的时间戳更改为UTC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59939780/

相关文章:

java - Elasticsearch返回对象字段

python - 如何组合我的数据框的列来创建一个日期时间列,我可以将其用作索引?

docker - docker commit 是原子操作吗?

docker - Kubectl:带有 minikube 的 Kubernetes 超时

python - docker exec 上的 Heredoc

node.js - 在elasticsearch js中使用术语

docker - 如何配置 gitlab-ci runner 从正确的 http url 克隆

java - 用于电子邮件搜索的 ElasticSearch AnalyzeRequest 对象

php - 使用时间戳对数组进行排序?

php - 时间戳 - 天之间的间隔并不总是 86400 秒 - 为什么?