我想在logstash中过滤和解析特定域的日志

时间:2016-04-05 18:36:58

标签: filter logstash haproxy

我想使用logstash解析特定域的日志(下面:abc指的是abc.com)。这是我尝试在logstash输入中使用的过滤器:

   input {.......}
   filter {
       if [message] =~ "abc" {
           grok {
               match => ["message", .......]
           }
       }
   }
   output {
       elasticsearch{.......}
   }

在上面的配置中,我指定使用abc过滤日志,但是,这似乎没有效果,当我在ES索引上看到时,我会看到日志被解析为所有不同的域以及abc,这是我不想要的。

BTW,我正在尝试解析HAPROXY日志。我只想要特定域的日志(比如将abc索引到ES中)并忽略除abc.com之外的所有内容

1 个答案:

答案 0 :(得分:1)

除非您使用条件,否则将为每条消息执行您的整个配置。只应为“abc”运行grok {},但仍然会到达输出{}。

要阻止其他邮件进入elasticsearch,请使用drop {}:

if [message] =~ "abc" {
}
else {
    drop { }
}