logstash grok 解析用户代理字符串解析某些字段

logstash grok parse user agent string parse certain fields

我在日志文件中有这个 UA Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2267.0 Safari/537.36

现在我真正想要的是获取 Windows NT 6.1(即 win7)和 WOW64(即 64 位系统)之类的东西。

我当前的 grok 过滤器解析所有内容,然后运行 ​​remove field 以丢弃不需要的内容。有 easier/cleaner 方法吗?

使用 useragent filter 解析此类字段。

filter {
  useragent {
    source => "field-with-useragent"
  }
}

虽然它不会提取 WOW64 字符串,但我怀疑它是否非常有用(而且我确信并非所有浏览器都提供它)。也就是说,您可以自己使用条件查找该字符串:

if [field-with-useragent] =~ /\bWOW64\b/ {
  mutate {
    add_tag => ["64bit"]
  }
}