我正在尝试fluent-bit
在spark
容器内运行,以便spark driver container
将日志写入/var/log/sparkDriver.log
由spark 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-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