Как изменить метку времени на UT C для журналов, которые контейнер с текущими битами docker получает через стандартный ввод? - PullRequest
0 голосов
/ 28 января 2020

Контейнер My Fluent Bit Docker добавляет временную метку с местным временем к журналам, полученным через STDIN; в противном случае все журналы, полученные через rsyslog или journald, имеют формат времени UT C.

У меня есть базовый c стек 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

Что такое де-факто способ сделать все метки времени унифицированными по отношению к UT C? Любая помощь или предложение приветствуется.

1 Ответ

0 голосов
/ 28 января 2020

То, как он работает, заключается в том, что синтаксический анализатор docker извлекает содержимое 'log' и учитывает временную метку, определенную docker.

Один быстрый обходной путь - изменить ваш файл parsers.conf и убедиться, что парсер docker не разрешает временную метку, поэтому Fluent Bit назначит вам текущее время в UT C.

...