首页 > 解决方案 > Logstash Grok 过滤器访问日志

问题描述

有人可以帮我使用 grok 过滤器吗?

我要解析的访问日志是这样的:

10.00.000.00 - - [08/Feb/2019:09:06:54 -0500] "GET /aft_ms_management_1/ms_manage HTTP/1.1" 404 1164

我正在尝试的 Grok 模式是:

grok { match => [ "message", "%{IP:client_ip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:apache_timestamp}\] \"%{WORD:method} /%{NOTSPACE:request_page} HTTP/%{NUMBER:http_version}\" %{NUMBER:server_response} %{NUMBER:bytes}"] }

当我测试 grok 过滤器时,出现以下错误:

:error=>" 带有不匹配括号的结束模式:

但是我在任何地方都看不到任何括号...感谢您的帮助

作为附加信息,我使用以下方法测试我的模式:

input { stdin { } } output { stdout { codec => rubydebug } }

filter {
    grok { 
    match => [ "message", "%{IP:client_ip} %{USER:ident} %{USER:auth} [%{HTTPDATE:apache_timestamp}] \"%{WORD:method} %{NOTSPACE:request_page} HTTP/%{NUMBER:http_version} %{NUMBER:server_response} %{NUMBER:bytes}" 
    ] 
 } }

标签: logginglogstashlogstash-grok

解决方案


  input { stdin {} }

filter {
   grok {
     match => { "message" => "%{IP:client_ip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:apache_timestamp}\] \"%{WORD:method} /%{NOTSPACE:request_page} HTTP/%{NUMBER:http_version}\" %{NUMBER:server_response} %{NUMBER:bytes}" }
        }
}

output { stdout { codec => rubydebug } }
~

每次去!我发现了如何提供更好的视野。这是我的问题..谢谢


推荐阅读