我刚刚开始将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和用户名。你能帮我继续吗?
谢谢..
答案 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模式后最终输出的屏幕截图
注意:您可以使用logstash的突变过滤器删除不必要的字段。