java grok 提取日志_如何使用logstash和Grok以及索引从日志中提取特定数据作为Kibana中每个记录的字段?...

本文档介绍如何使用Logstash和Grok解析Atlassian Bamboo的日志,以提取构建名称、构建号和项目名称,并将它们作为Kibana文档的字段。通过Grok模式匹配,可以创建所需的字段,但需解决如何将多个模式合并到一个匹配中,以便在Kibana中正确展示日志的其他信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目标是:对于日志中的每一行,应该有一个弹性文档,其中包含'message'(时间戳后的文本) . 每个文档还应包含项目名称,计划名称和构建#的字段 .

开头的示例日志结构(atlassian bamboo build logs):

simple 01-Jan-2016 14:26:01 Build TestProj - Framework Code - Build #25 (TST-FC-25) started building on agent .NET Core 2

simple 01-Jan-2016 14:26:01 .NET-related builds, tests and publishing.

我有一个Grok来获取并创建我想要的字段 - 构建名称,构建号和项目名称(并将它们作为Kibana中的字段):

%{NOTSPACE:log_entrytype}%{SPACE}(?(?:(?:0[1-9])|(?:[12][0-9])|(?:3[01])|[1-9])-\b(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\b-(?>\d\d){1,2}\s*(?!

但是我需要在Kibana的每个记录/条目中提供这些字段 . 使用其他Grok,我可以将日志的其他行提取到log_message字段中:

grok { [

"message", "%{NOTSPACE:log_entrytype}%{SPACE}(?(?:(?:0[1-9])|(?:[12][0-9])|(?:3[01])|[1-9])-\b(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\b-(?>\d\d){1,2}\s*(?!

]

}

所以我需要以某种方式将这两个模式匹配合并为一个,使用'optional' :()?这里描述的语法是什么?:link

使用logstash和Grok插件可以实现我的最终目标吗?我可以在logstash中使用某种类型的变量构造来处理它吗? add_field?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值