Logstash:要过滤的 paser 字段内容

Logstash: paser Field Content to Filter

我尝试解析日志。

如果日志 "didn't" 有 'specific' 如下 logstash 打印,则将删除事件 这是 logstash 打印的内容:

{
  "message" => "...",
   "host" => "10.10.10.20",
   "@version" => "1",
   "@timestamp" => "2016-04-12T02:28:18.233Z",
   "type" => "snmptrap",
    "1_3_6_1_2_1_1_3_0" => "21 days, 17:08:57.94",
   "1_3_6_1_6_3_1_1_4_1_0" => "specific::userdefined", 
 }

我只能指定字段的内容(前缀是具体的)而不是它的字段名(1_3_6_1_6_3_1_1_4_1_0)

那么如何解析日志以过滤和删除事件?我需要做什么?

如果有人知道如何处理它,请帮忙。谢谢

您应该能够创建一个过滤器,例如:

filter{
    if "specific" in [1_3_6_1_6_3_1_1_4_1_0] {
        drop{}
    }
}

如果您希望根据 'specific.'

的缺失删除邮件,您可以将 'in' 更改为 'not in'

如果需要在字段开头匹配 'specific',也可以使用正则表达式匹配:

if [1_3_6_1_6_3_1_1_4_1_0] =~ /^specific.+/ { drop{} }

要将其更改为不匹配 'specific',请使用 !~ 运算符代替 =~