【问题标题】:Logstash custom date format and irregular spacesLogstash 自定义日期格式和不规则空格
【发布时间】:2016-11-01 19:07:54
【问题描述】:

收到我的 grok 匹配失败的解析。我似乎找不到任何与我的日志匹配的内容。

这是我的日志:

2016-06-14 14:03:42 1.1.1.1 get / origin-www.site.com/scriptresource.axd?d= jeha4v5z26oa-nbskdvsbinpydw0esbncscjdd-rx5ifgr6qqeyj69onkdojgtsdcni1&t = 5f9d5645 200 26222 0“http://site/布局/类别页。 aspx?dsNav=N:10014" "Mozilla/5.0 (Linux; Android 4.4.4; SM-G318HZ Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.95 Mobile Safari/537.36" "cookie"

这是我的 grok 比赛。它在 grok 调试器中运行良好。

filter {
  grok {
    match => { 'message' => '%{DATE:date} %{TIME:time} %{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:status} %{NUMBER:bytes} %{NUMBER:time_taken} %{QUOTEDSTRING:referrer} %{QUOTEDSTRING:user_agent} %{QUOTEDSTRING:cookie}' }
  }
}

编辑:我决定对我的日志文件进行截图,因为复制和粘贴时不会出现空格。当我复制/粘贴时,这些似乎是单个空格。

【问题讨论】:

  • 你发布的日志在xd?d= jEHA4的URI参数中有一个空格
  • 是的。对于那个很抱歉。请求中不存在。

标签: elasticsearch logstash logstash-grok grok


【解决方案1】:

除了您发布的日志行中的空格(我认为您的日志中不存在该空格)之外,您的模式在日期解析中不正确。 Logstash DATE 遵循这种模式:

DATE_US %{MONTHNUM}[/-]%{MONTHDAY}[/-]%{YEAR}
DATE_EU %{MONTHDAY}[./-]%{MONTHNUM}[./-]%{YEAR}
DATE %{DATE_US}|%{DATE_EU}

这与您的 YYYY-MM-dd 格式不匹配。我建议使用模式文件并定义自定义日期格式

CUST_DATE %{YEAR}-%{MONTHNUM2}-%{MONTHDAY}

那么你的模式可以是

%{CUST_DATE:date} %{TIME:time} %{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:status} %{NUMBER:bytes} %{NUMBER:time_taken} %{QUOTEDSTRING:referrer} %{QUOTEDSTRING:user_agent} %{QUOTEDSTRING:cookie}

编辑: 您也许可以使用 gsub 处理奇怪的空格,这不会删除空格,但会将空格标准化为 1 " "

mutate {
    gsub => [
      # replace all whitespace characters or multiple adjacent whitespace characters with one space
      "message", "\s+", " "
    ]
  }

【讨论】:

  • 谢谢。我现在在日志中看到了这一点。 "无法解析映射 [default]:[@time] 的映射定义具有不受支持的参数:[format : hh:mm:ss]", "c aused_by"=>{"type"= >"mapper_parsing_exception", "reason"=>"[@time] 的映射定义有不受支持的参数:[format : hh:mm:ss]"}}}},
  • 有趣的是,我找不到我定义时间的任何地方。我也为时间创建了一个自定义模式,但我得到了同样的错误。
  • 添加 template_overwrite => true 解决了这个问题。
  • 很抱歉有另一个问题。看起来我的日志文件在日志项之间添加了很大的空间。它们是单个空格,但我认为它正在抛弃我的模式匹配。调试器甚至不喜欢这些空间。有什么可以做的吗? 2016-06-14 14:03:42 1.1.8.4 获取
  • 如果有些地方可以放置空间,也可以不放置空间,( )? 是可选空间
猜你喜欢
  • 2014-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多