Tail https://docs.fluentbit.io/manual/input/tail和splunk插件https://docs.fluentbit.io/manual/output/splunk应该可以为您解决问题。
我正在尝试在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
将我的Spark作业提交给K8S
,并且spark-submit
没有任何办法告诉k8s
我也想运行Sidecar(流利位)。
[我也知道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
我正在尝试在spark容器中运行流利的位,以便可以读取或...将由log log4j属性控制的/var/log/sparkDriver.log文件中写入日志的spark驱动程序容器。 >
Tail https://docs.fluentbit.io/manual/input/tail和splunk插件https://docs.fluentbit.io/manual/output/splunk应该可以为您解决问题。
配置这两个程序时是否遇到任何特定问题?
Tail https://docs.fluentbit.io/manual/input/tail和splunk插件https://docs.fluentbit.io/manual/output/splunk应该可以为您解决问题。