ключ лога не разбирается по биту (оба Docker в контейнере) - PullRequest
0 голосов
/ 24 марта 2020

Кажется, мой парсер регулярных выражений не работает. Я предполагаю, что это как-то связано с журналами, поступающими с Docker и не экранированными. Но я не могу заставить его работать, даже если я сначала включаю парсер Docker.

Я проверил это в рубрике: https://rubular.com/r/l6LayuI7MQWIUL

fluent-bit.conf

[SERVICE]
    Flush        5
    Daemon       Off
    Log_Level    debug
    Parsers_File parsers.conf

[INPUT]
    Name         forward
    Listen       0.0.0.0
    Port         24224

[FILTER]
    Name         grep
    Match        *
    Regex        log ^.*{.*}$

[FILTER]
    Name         parser
    Match        *
    Key_Name     log
    Parser       springboot

[OUTPUT]
    Name stdout
    Match *

parsers.conf

[PARSER]
    Name        springboot
    Format      regex
    Regex       (?<time>\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}.\d{1,3}) (?<level>[^ ]*) (?<number>\d*) --- (?<thread>\[[^ ]*) (?<logger>[^ ]*) *: (?<message>[^ ].*)$
    Time_Key    time
    Time_Format %Y-%m-%d %H:%M:%S.%L

[PARSER]
    Name         docker
    Format       json
    Time_Key     time
    Time_Format  %Y-%m-%dT%H:%M:%S.%L
    Time_Keep    On
    # Command      |  Decoder | Field | Optional Action
    # =============|==================|=================
    Decode_Field_As   escaped    log

полный вывод

[0] docker-container: [1584997354.000000000, {"log"=>"2020-03-23 21:02:34.077 TRACE 1 --- [nio-8080-exec-1] org.zalando.logbook.Logbook              : {...}", "container_id"=>"5a1251dcf9de3f0e2b8b7b0bce1d35d9c9285726b477606b6448c7ce9e818511", "container_name"=>"/xxxx", "source"=>"stdout"}]

Спасибо

1 Ответ

0 голосов
/ 24 марта 2020
  • Убедитесь, что вы используете последнюю версию Fluent Bit (v1.3.11)
  • Удалите запись Decode_Field_As из вашего parsers.conf, больше не требуется.
...