Logstash GROK中的Loglevel模式

Logstash GROK中的Loglevel模式,logstash,logstash-grok,Logstash,Logstash Grok,我不熟悉logstash和grok,对模式有疑问。 我正在尝试为我的apache错误日志创建一个grok模式。 然而,我对以下行为有点困惑 如果我在中使用基础匹配: 我在以下日志片段中发现不匹配: [Sun Apr 10 09:28:01 2016][error][client 111.11.111.111]文件不存在 不存在:/var/www/html/favicon.ico 现在,如果我分别运行%{LOGLEVEL:severity}或%{IPV4:clientip}%{GREEDYDATA

我不熟悉logstash和grok,对模式有疑问。 我正在尝试为我的apache错误日志创建一个grok模式。 然而,我对以下行为有点困惑

如果我在中使用基础匹配:

我在以下日志片段中发现不匹配:

[Sun Apr 10 09:28:01 2016][error][client 111.11.111.111]文件不存在 不存在:/var/www/html/favicon.ico

现在,如果我分别运行%{LOGLEVEL:severity}或%{IPV4:clientip}%{GREEDYDATA:errormsg},所有模式都可以工作。但如果我一起尝试,我会得到一个“不匹配”的回报

我认为这是因为%{LOGLEVEL:severity}截断了日志的其余部分,但我不明白为什么

有人对我做错了什么有什么建议吗


提前感谢。

与所有未处理的正则表达式一样,一旦开始匹配,就需要匹配字符串中的所有内容。在您的模式中,您没有考虑样本中存在的空格或括号。(这也假设在“severity”之后缺少}是复制粘贴错误)。

与所有未编排的正则表达式一样,一旦开始匹配,就需要匹配字符串中的所有内容。在您的模式中,您没有考虑样本中存在的空格或括号。(这也假设在“严重性”之后缺少}是一个复制粘贴错误)。

您编写的grok模式确实与日志消息不匹配,为什么不尝试使用比grok过滤器性能更好的
dissect{}

你的留言是:

[Sun Apr 10 09:28:01 2016] [error] [client 111.11.111.111] File does not exist: /var/www/html/favicon.ico
因此,您可以编写一个
dissect
过滤器,如:

dissect {
  mapping => {
    "message" => "[%{raw_date}] [%{loglevel}] [client %{client_ip}] %{log_message}"
  }
}

您编写的grok模式确实与日志消息不匹配,为什么不尝试使用比grok过滤器性能更好的
dissect{}

你的留言是:

[Sun Apr 10 09:28:01 2016] [error] [client 111.11.111.111] File does not exist: /var/www/html/favicon.ico
因此,您可以编写一个
dissect
过滤器,如:

dissect {
  mapping => {
    "message" => "[%{raw_date}] [%{loglevel}] [client %{client_ip}] %{log_message}"
  }
}