1

我正在尝试fluent-bitspark容器内运行,以便spark driver container将日志写入/var/log/sparkDriver.logspark log4j属性控制的文件中,可由fluent-bit. 我知道在一个容器中运行多个进程是一种 AntiParttern,但现在我别无选择。我需要什么配置来读取这个文件(/var/log/sparkDriver.log)并将日志转发到我们的内部splunk hec服务器。

我知道fluent-bit可以sidecar在 pod 中使用,但我使用 simplespark-submit来提交我的 spark 作业,K8S并且spark-submit没有任何方法可以告诉k8s我我也想运行 sidecar(fluent-bit)。

我也知道fluent-bit可以在集群中作为 deamonSet 安装,它基本上将在集群中的每个节点上运行,k8s并通过节点将日志从容器转发到Splunk. 但是这个选项也不适合我。

所以我想我是否可以烘焙fluent-bitsplunkforwarderfluentd至从文件或stdout中读取日志。我知道其他 2 个选项会使我的sparkdocker 映像膨胀,但我现在没有选项。

任何帮助或建议将不胜感激

我实际上尝试过tailsplunk但不知何故我无法找出正确的配置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
4

1 回答 1

0

Tail https://docs.fluentbit.io/manual/input/tail和 splunk 插件https://docs.fluentbit.io/manual/output/splunk应该可以为您解决问题。

您在配置这两个方面是否遇到任何具体问题?

于 2020-02-28T07:05:34.110 回答