用Grok表达式解析日志数据

时间:2020-05-15 11:46:33

标签: logstash-grok grok

我刚刚开始将grok用于logstash,我正尝试使用grok过滤器解析下面的日志文件行。

10.210.57.60 0x756682x2 connectadmin [12 / May / 2020:00:00:00 +0530]“ GET / rest / auth / 1 / session HTTP / 1.1” 200286456“-”“ Jersey / 2.11 (HttpUrlConnection 1.8.0_171)“” 1twyrho“

我对: IP:10.210.57.60 // 用户:connectadmin // 时间戳记:12 / May / 2020:00:00:00 +0530 // 网址:/ rest / auth / 1 / session // 响应码:200

我目前对grok表达式感到困惑:%{IPV4:client_ip}%{WORD:skip_me1}%{USERNAME} 通过它我可以获得IP和用户名。你能帮我继续吗?

谢谢..

1 个答案:

答案 0 :(得分:0)

我已使用grok调试器https://grokdebug.herokuapp.com/获得所需的输出。 以下是符合您要求的grok模式:

%{IPV4:IP} %{GREEDYDATA:girbish} %{USERNAME:user} \[%{HTTPDATE:timestamp}\] "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{GREEDYDATA:girbish}

此外,以下是使用grok模式后最终输出的屏幕截图

screenshot1 screenshot2 screenshot3

注意:您可以使用logstash的突变过滤器删除不必要的字段。