微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Fluentbit - 解析多种格式的日志log+json

如何解决Fluentbit - 解析多种格式的日志log+json

我正在尝试通过 fluentbit 将以下日志行发送到 elasticsearch,但我没有找到正确的解决方案来提取 [MLP] 部分之后的时间和 json 结构:

2020-12-29 08:00:03,230 INFO [http-nio-3410-exec-7] c.e.m.p.PushManager$ImportResponseImpl - [MLP] {"component":{"name":"importserv","version":"5.4.2"},"details":{"Feed":"SomeFeed"},"elapsedMs":354,"event":"import","id":"1.0.58855123705431","name":"image1.png","objType":"Image","outcome":"OK","uuid":"1234566573234242342-123434234-12342"}

有人试图实现这样的目标吗?欢迎提出意见和建议。

谢谢!

解决方法

您可以为此使用 regex parser

[PARSER]
    Format regex
    Name logging-parser
    Regex ^(?<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3}) (?<level>\S+) .* (?<capturedJson>{.*})$
    Decode_Field json capturedJson
    Time_Format %FT%H:%M:%S,%L
    Time_Key time

首先,编写一个正则表达式,在一个单独的组中捕获您的 json。您可以使用 Rubular 来测试表达式。这是一个解析您输入的示例,json 被捕获为 capturedJsonhttps://rubular.com/r/NAby4NlVomkdWy

接下来,添加 Decode_Field json capturedJson - 这将解析在组中捕获的 json 并提取其字段,以便它们可搜索。

以上代码未针对您的场景进行测试,但我们使用类似的代码来解析也包含 json 的 Envoy 日志。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。