I have a client application that runs in AKS with a pod that forwards the logs to Log Analytics Workspace. The software is from a third party that they purchased and we are spitting out Log4J2 logs using the JSON formatter (a custom one, not the default, but same basic principals).
The problem is I keep getting this error:
[ warn] [input] tail.0 paused (mem buf overlimit)
I tried a few different configurations, but went back to the drawing board (I tried switching to storage.type filesystem
, etc.). The logs are being persisted in a Storage Account File Share and being accessed by the FluentBit pod via an SMB mount.
I settled into this (putting multiple files into one):
[SERVICE]
Flush 1
Log_Level warn
Daemon off
Parsers_File parsers.conf
@INCLUDE inputs-cots-app.conf
@INCLUDE output-law.conf
[PARSER]
Name cots-json
Format json
[INPUT]
Name tail
Tag cots.json
Path /opt/logMount/*podType*/rolling.json
Exclude_Path /opt/logMount/*podType*/rolling.log
Path_Key filename
Read_From_Head True
Mem_Buf_Limit 128MB
Buffer_Max_Size 64MB
Skip_Long_Lines On
Skip_Empty_Lines On
Refresh_Interval 60
Inotify_Watcher False
Parser cots-json
[OUTPUT]
name azure
match cots.json
Customer_ID ${LAW_WORKSPACE_ID}
Shared_Key ${LAW_ACCESS_KEY}
Log_Type cotsLogsJSON
Are there any tips on troubleshooting this? I can't seem to nail down just how best to resolve this issue.
What load are you expecting to handle with such a configuration? Perhaps your mem_buf_limit
is just too small for such a load.
See https://docs.fluentbit.io/manual/administration/backpressure