Grok模式在Grok调试器中工作,但在logstash配置中不起作用

时间:2017-03-09 05:59:59

标签: logstash elastic-stack logstash-grok

我的日志:

(49087) Login incorrect (eap_peap: TLS Alert write:fatal:decode error): [johndoe] (from client WIFI-Control-Dev port 13 cli bb-41-e2-1c-12-12)

我使用的grok模式:

\(%{NOTSPACE:removed}\) %{DATA:AUTHWAY} (?:\(%{DATA:radius_reason}\))?: (?:\[%{DATA:username}\]) \(from client %{NOTSPACE:radius_client} port %{INT:radius_port}(?: cli %{NOTSPACE:radius_cli})?(?: via %{DATA:radius_via})?\)

这在grok调试器中匹配并完美运行,但是当我在logstash配置中使用相同的模式时,它不起作用。

AUTHWAY字段即将发布:

"AUTHWAY" => "Login incorrect (eap: Failed continuing EAP PEAP (25) session. EAP sub-module failed)",

我需要的是Login incorrect(eap: Failed continuing EAP PEAP (25) session. EAP sub-module failed)作为单独的字段。

任何人都可以说有什么区别,我怎样才能让grok模式在logstash配置中工作。

1 个答案:

答案 0 :(得分:0)

我自己找到了答案。所以我发布它是因为它可以帮助任何人。

这是我使用的grok模式,它在grok调试器和服务器中都有效。

\(%{DATA:removed}\) %{DATA:AUTHWAY}(?::)? (?:\((.*?)\):)?%{SPACE}\[%{DATA:username}\] \(from client %{NOTSPACE:radius_client} port %{INT:radius_port}(?: cli %{NOTSPACE:radius_cli})?(?: via %{DATA:radius_via})?\)

我在这里用(?::)? (?:\((.*?)\):)?%{SPACE}代替(?:\(%{DATA:radius_reason}\))?: