لاگهای FortiGate وارد Splunk میشدن، اما بعضی وقتها چندین Log بهصورت یک String پیوسته وارد میشدن و Splunk همهشون رو بهعنوان یک Event شناسایی میکرد.
مثلاً:
<188>date=...<189>date=...<189>date=...
در حالی که هرکدوم از اینها یک Log مستقل بودن.
🔎 بعد از بررسی مشخص شد LINE_BREAKER فعلی فقط بر اساس newline , Event ها رو جدا میکنه:
SHOULD_LINEMERGE = true
LINE_BREAKER = ([\r\n]+)
اما وقتی چند Log بدون newline به هم چسبیده باشن، Splunk نقطهای برای شکستن Event نداره.
🔧 راهکار این بود که Event Breaking رو بر اساس ساختار خود Logهای FortiGate انجام بدیم:
SHOULD_LINEMERGE = false
LINE_BREAKER = ([\r\n]*)(?=<[^>]+>date=)
با این تغییر، Splunk شروع هر رکورد <...>date= رو بهعنوان مرز یک Event جدید تشخیص میده.
📌 نتیجه:
چند Log چسبیده → چند Event مستقل
این یکی از اون مشکلاتیه که شاید در نگاه اول به نظر برسه «Splunk لاگ رو درست Parse نمیکنه»، اما در واقع باید ببینی Splunk دقیقاً چه چیزی رو بهعنوان مرز Event در نظر گرفته.
@Socroot