Parsing Logstash grok解析日志文件时出错

Parsing Logstash grok解析日志文件时出错,parsing,logstash,grok,Parsing,Logstash,Grok,我正在尝试分析此日志格式: http://localhost:8080/,200,OK,11382,date=Mon 27 Apr 2015 12:56:33 GMT;newheader=foo;connection=close;content-type=text/html;charset=ISO-8859-1;server=Apache-Coyote/1.1; 使用此配置文件: input { stdin{} } filter { grok { match =&

我正在尝试分析此日志格式:

http://localhost:8080/,200,OK,11382,date=Mon  27 Apr 2015 12:56:33 GMT;newheader=foo;connection=close;content-type=text/html;charset=ISO-8859-1;server=Apache-Coyote/1.1;
使用此配置文件:

input {
  stdin{}
}


filter {
  grok {
        match => [ "message" , "%{URI:uriaccessed},%{NUMBER:httpcode},%{WORD:httpcodeverb},%{NUMBER:bytes},date=%{TIMESTAMP_ISO8601:logtimestamp};%{GREEDYDATA:msg}"]   
  }
  mutate{
        convert => ["httpcode","integer"]
        convert => ["bytes","integer"]
  }


  date {
    locale => "en"
    match => [ "logtimestamp" , "EEE dd MMM yyy HH:mm:ss" ] #Mon  27 Apr 2015 12:56:33 GMT
  }
}


output {
  stdout { codec => rubydebug }
}
然而,我得到了一个格罗克普拉斯失败,我不知道是什么问题。 似乎无法确定导致问题的模式。
如有任何想法/意见,将不胜感激。

时间戳\u ISO8601匹配:

%{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE}?
你的约会不是那样的。似乎没有为您预定义的模式,因此这里有一个可行的模式:

%{DAY} +%{MONTHDAY} %{MONTH} %{YEAR} +%{TIME} %{WORD}
请注意,%{TZ}不喜欢GMT,所以我使用了%{WORD}


祝你好运。

时间戳\u ISO8601匹配:

%{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE}?
你的约会不是那样的。似乎没有为您预定义的模式,因此这里有一个可行的模式:

%{DAY} +%{MONTHDAY} %{MONTH} %{YEAR} +%{TIME} %{WORD}
请注意,%{TZ}不喜欢GMT,所以我使用了%{WORD}


祝你好运。

日志示例中的时间戳与时间戳\u ISO8601模式不匹配。您可以尝试其他模式,但我怀疑“Mon”和“27”之间的双空格将是一个问题,而且我没有看到“GMT”与TZ模式匹配。您可以尝试使用TZORGMT条目添加自己的模式文件,然后在如下匹配中使用它:

TZORGMT (?:[PMCE][SD]T|UTC|GMT)
%{URI:uriaccessed},%{NUMBER:httpcode},%{WORD:httpcodeverb},%{NUMBER:bytes},date=%{DAY}  %{MONTHDAY} %{MONTH} %{YEAR} %{TIME} %{TZORGMT}
位于的grok调试器有助于调试类似的内容

如果要进行日期{match},则需要为此编写一个模式,例如:

"dd MM YYYY HH:mm:ss ZZ"

日志示例中的时间戳与时间戳_ISO8601模式不匹配。您可以尝试其他模式,但我怀疑“Mon”和“27”之间的双空格将是一个问题,而且我没有看到“GMT”与TZ模式匹配。您可以尝试使用TZORGMT条目添加自己的模式文件,然后在如下匹配中使用它:

TZORGMT (?:[PMCE][SD]T|UTC|GMT)
%{URI:uriaccessed},%{NUMBER:httpcode},%{WORD:httpcodeverb},%{NUMBER:bytes},date=%{DAY}  %{MONTHDAY} %{MONTH} %{YEAR} %{TIME} %{TZORGMT}
位于的grok调试器有助于调试类似的内容

如果要进行日期{match},则需要为此编写一个模式,例如:

"dd MM YYYY HH:mm:ss ZZ"

谢谢对于grokdebug链接,我之前已经检查过了,并且总是尝试将logstash patterns文件中的模式作为自定义模式放入其中。这次当我再次访问该站点时,我意识到它确实内置了所有日志存储模式。谢谢谢谢对于grokdebug链接,我之前已经检查过了,并且总是尝试将logstash patterns文件中的模式作为自定义模式放入其中。这次当我再次访问该站点时,我意识到它确实内置了所有日志存储模式。谢谢