Текучий бит внутри Spark Container - PullRequest
1 голос
/ 28 февраля 2020

Я пытаюсь запустить 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 . Я знаю, что другие 2 варианта будут раздувать мое spark docker изображение, но у меня сейчас нет выбора.

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

Я на самом деле попробовал 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

1 Ответ

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

Хвост https://docs.fluentbit.io/manual/input/tail и плагин Spunk https://docs.fluentbit.io/manual/output/splunk должны помочь вам.

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

...