Logstash有序字段问题的Grok插件

Logstash有序字段问题的Grok插件,logstash,logstash-grok,Logstash,Logstash Grok,我对grok插件有一个问题: 我有一些以以下方式构建的日志,我的问题是我的字段顺序可能会在不同的日志之间发生变化(在这里的示例中,我应该从所有日志中提取用户id和文档id)。所以我想知道我应该如何建造格罗克 模式来处理这两个日志。我希望有更好的解决方案来编写两种不同的模式(或者如何编写正则表达式来在日志中的任意位置找到特定属性,而不知道其确切位置) 预期结果是: date: 2019-01-15 level: INFO class: myclass method: mymethod messa

我对grok插件有一个问题:

我有一些以以下方式构建的日志,我的问题是我的字段顺序可能会在不同的日志之间发生变化(在这里的示例中,我应该从所有日志中提取
用户id
文档id
)。所以我想知道我应该如何建造格罗克 模式来处理这两个日志。我希望有更好的解决方案来编写两种不同的模式(或者如何编写正则表达式来在日志中的任意位置找到特定属性,而不知道其确切位置)

预期结果是:

date: 2019-01-15 
level: INFO
class: myclass
method: mymethod
message: user id: 12345 custom message 1 document id: 843572309845
userId: 12345
documentId: 843572309845

date: 2019-01-15
level: WARN
class: myclass
method: mymethod1
message: document id: 43543534 custom message 2 user id: 98589348543 custom message 3 agent id: 98435734
userId: 98589348543
documentId: 43543534
agentId: 98589348543

期待您的回答,谢谢。

我找到了一个正则表达式,它可以工作(至少在:

使用它,我能够获得以下结果:

userId  12345
documentId  843572309845 

userId  98589348543
documentId  43543534 

非常感谢,这正是我要找的
(?=.*user id: %{NUMBER:userId})(?=.*document id: %{NUMBER:documentId})
userId  12345
documentId  843572309845 

userId  98589348543
documentId  43543534