繁体   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