Fluent-bit внутри Spark Container

Я пытаюсь запустить fluent-bit внутри spark контейнера, чтобы spark driver container, который записывает журналы в файл, /var/log/sparkDriver.log управляемый свойствами spark log4j, мог быть прочитан или использован fluent-bit. Я знаю, что запуск нескольких процессов в одном контейнере - это AntiParttern, но сейчас у меня нет выбора. Какая конфигурация мне нужна, чтобы прочитать этот файл (/var/log/sparkDriver.log) и переслать журналы на наш внутренний splunk hec сервер.

Я знаю, что fluent-bit можно использовать как sidecar в модуле, но я использую простой spark-submit для отправки моего искрового задания на K8S, а spark-submit не имеет никакого способа сообщить k8s, что я хочу запустить и сопутствующий автомобиль (беглый бит). .

Я также знаю, что fluent-bit можно установить как deamonSet в кластере, который в основном будет работать на каждом узле в кластере k8s и пересылать журналы из контейнера через узел на Splunk. Но этот вариант мне тоже не подойдет.

Поэтому я подумал, могу ли я испечь fluent-bit, splunkforwarder или даже fluentd и читать журналы из файла или stdout. Я знаю, что два других варианта увеличат мой spark образ докера, но сейчас у меня нет такой возможности.

Любая помощь или предложение будут очень признательны

Я действительно пробовал tail и splunk, но почему-то не могу определить правильную конфигурацию для fluent-bit

Вот мой файл журнала, который содержит spark журналов с использованием log4j:

Я действительно пробовал это, но почему-то не могу придать ему правильную конфигурацию. Вот как выглядят мои файлы журналов:

20/03/02 19:35:47 INFO TaskSetManager: Starting task 12526.0 in stage 0.0 (TID 12526, 172.16.7.233, executor 1, partition 12526, PROCESS_LOCAL, 7885 bytes)
20/03/02 19:35:47 DEBUG KubernetesClusterSchedulerBackend$KubernetesDriverEndpoint: Launching task 12526 on executor id: 1 hostname: 172.16.7.233.
20/03/02 19:35:47 INFO TaskSetManager: Finished task 12524.0 in stage 0.0 (TID 12524) in 1 ms on 172.16.7.233 (executor 1) (12525/1000000)
20/03/02 19:35:47 TRACE MessageDecoder: Received message OneWayMessage: OneWayMessage{body=NettyManagedBuffer{buf=CompositeByteBuf(ridx: 5, widx: 1622, cap: 1622, components=2)}}
20/03/02 19:35:47 TRACE MessageDecoder: Received message OneWayMessage: OneWayMessage{body=NettyManagedBuffer{buf=PooledUnsafeDirectByteBuf(ridx: 13, widx: 1630, cap: 32768)}}
20/03/02 19:35:47 TRACE MessageDecoder: Received message OneWayMessage: OneWayMessage{body=NettyManagedBuffer{buf=PooledUnsafeDirectByteBuf(ridx: 13, widx: 2414, cap: 4096)}}

Вот моя fluent-bit конфигурация:

[INPUT]
    Name  tail
    Path  /var/log/sparklog.log

# nest the record under the 'event' key
[FILTER]
    Name nest
    Match *
    Operation nest
    Wildcard *
    Nest_under event

# add event metadata
[FILTER]
    Name      modify
    Match     *
    Add index myindex
    Add host  ${HOSTNAME}
    Add app_name ${APP_NAME}
    Add namespace ${NAMESPACE}

[OUTPUT]
    Name        Splunk
    Match       *
    Host        splunk.example.com
    Port        30000
    Splunk_Token XXXX-XXXX-XXXX-XXXX
    Splunk_Send_Raw On
    TLS         On
    TLS.Verify  Off

person devnull    schedule 28.02.2020    source источник
comment
Интересно, почему у вас не работает deamonSet?   -  person Tummala Dhanvi    schedule 28.02.2020


Ответы (1)


Хвост https://docs.fluentbit.io/manual/input/tail и splunk плагин https://docs.fluentbit.io/manual/output/splunk должен работать уловка для вас.

Столкнулись ли вы с какой-либо конкретной проблемой при настройке этих двух?

person Tummala Dhanvi    schedule 28.02.2020