Logstash:可选匹配未按预期工作
假设我收到两种消息Logstash:可选匹配未按预期工作,logstash,logstash-grok,Logstash,Logstash Grok,假设我收到两种消息 1/1/12 dasdahdgh 1/1/12 asd.ert.Tghagsdh 现在我想要这样的东西 %{DATE_US:time}%{SPACE}(%{WORD:stat}|(?<java_method>[a-zA-Z\.]+)) 我如何配置我的grok,以便只创建stat或java\u方法中的一个?我制作了一个正则表达式,其中必须有一个点,因此它将捕获asd.ert.Tghagsdh,而不是dasdahgh。通过将它放在%{WORD}之前,它将捕获jav
1/1/12 dasdahdgh
1/1/12 asd.ert.Tghagsdh
现在我想要这样的东西
%{DATE_US:time}%{SPACE}(%{WORD:stat}|(?<java_method>[a-zA-Z\.]+))
我如何配置我的grok,以便只创建
stat
或java\u方法
中的一个?我制作了一个正则表达式,其中必须有一个点,因此它将捕获asd.ert.Tghagsdh
,而不是dasdahgh
。通过将它放在%{WORD}
之前,它将捕获java“方法”(它看起来更像一个类),而不是stat:
%{DATE_US:time}%{SPACE}((?<java_method>(?:[a-zA-Z]+\.)+[a-zA-Z]+)|%{WORD:stat})
%{DATE\u-US:time}%{SPACE}(((?(?:[a-zA-Z]+\)+[a-zA-Z]+)|%{WORD:stat})
因此,您的字段中会有正确的值。我制作了一个正则表达式,其中必须有一个点,因此它将捕获
asd.ert.Tghagsdh
,但不会捕获dasdahgh
。通过将它放在%{WORD}
之前,它将捕获java“方法”(它看起来更像一个类),而不是stat:
%{DATE_US:time}%{SPACE}((?<java_method>(?:[a-zA-Z]+\.)+[a-zA-Z]+)|%{WORD:stat})
%{DATE\u-US:time}%{SPACE}(((?(?:[a-zA-Z]+\)+[a-zA-Z]+)|%{WORD:stat})
因此,您的字段中会有正确的值。还有助于您:,and。还有助于您:,and。如果java方法没有任何包名,这是否合适?例如,有时这可能只是没有完整包的方法的名称path@AbtPst如果没有包路径,那么方法名称中就不会有任何点,字符串也不会出现在
java\u方法
字段中,因为对于java\u方法
,需要有一个点。如果java方法没有任何包名,这是否合适?例如,有时这可能只是没有完整包的方法的名称path@AbtPst如果没有包路径,那么方法名称中就不会有任何点,字符串也不会出现在java\u方法
字段中,因为对于java\u方法
,需要有点。