簡體   English   中英

fluentd regexp 從日志文件中提取事件

[英]fluentd regexp to extract events from a log file

我是流利的新手。

我有一個日志,我想用 fluentd 推送到 AWS,但我不知道正則表達式應該是什么。

除了多行之外的所有日志行都以 UUID 開頭。

這是一個示例日志:

6b0815f2-8ff1-4181-a4e6-058148288281 2020-11-03 13:00:05.976366 [DEBUG] switch_core_state_machine.c:611 (some_other_data) State Change CS_REPORTING -> CS_DESTROY

而且,我正在嘗試獲取 UUID、DateTime 和 Message。

使用這個正則表達式:

/^(?<UUID>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}) (?<time>.*) (?<message>[^ ]*)/gm

我得到最后一個詞CS_DESTROY

我嘗試了 fluentular,但仍然得到:

文本:

f6a6e1ae-e52e-4aba-a8a5-4e3cc7f40914 2020-11-03 14:32:34.975779 [CRIT] mod_dptools.c:1866 audio3: https://mydomain.s3-eu-west-1.amazonaws.com/media/576d06e5-04fc-11eb-a52c-020fd8c14d18/5f9ddf2d5df0f698094395.mpg

正則表達式:

^(?<UUID>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}) (?<time>.*) (?<message>[^ ]*)$

並得到:

time    2020/11/03 14:32:34 +0000
UUID    f6a6e1ae-e52e-4aba-a8a5-4e3cc7f40914
message https://mydomain.s3-eu-west-1.amazonaws.com/media/576d06e5-04fc-11eb-a52c-020fd8c14d18/5f9ddf2d5df0f698094395.mpg

它缺少日期時間和“https”之間的內容。

嘗試:

^(?<UUID>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}) (?<time>[^\[]*) (?<message>\[.*)$

住在rubular: https ://rubular.com/r/JQQXs5VTkr2IxM

這是兩個日志的輸出:

Match 1
UUID    6b0815f2-8ff1-4181-a4e6-058148288281
time    2020-11-03 13:00:05.976366
message [DEBUG] switch_core_state_machine.c:611 (some_other_data) State Change CS_REPORTING -> CS_DESTROY

Match 2
UUID    f6a6e1ae-e52e-4aba-a8a5-4e3cc7f40914
time    2020-11-03 14:32:34.975779
message [CRIT] mod_dptools.c:1866 audio3: https://mydomain.s3-eu-west-1.amazonaws.com/media/576d06e5-04fc-11eb-a52c-020fd8c14d18/5f9ddf2d5df0f698094395.mpg

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM