我想使用logstash解析特定域的日志(下面:abc指的是abc.com)。这是我尝试在logstash输入中使用的过滤器:
input {.......}
filter {
if [message] =~ "abc" {
grok {
match => ["message", .......]
}
}
}
output {
elasticsearch{.......}
}
在上面的配置中,我指定使用abc过滤日志,但是,这似乎没有效果,当我在ES索引上看到时,我会看到日志被解析为所有不同的域以及abc,这是我不想要的。
BTW,我正在尝试解析HAPROXY日志。我只想要特定域的日志(比如将abc索引到ES中)并忽略除abc.com之外的所有内容
答案 0 :(得分:1)
除非您使用条件,否则将为每条消息执行您的整个配置。只应为“abc”运行grok {},但仍然会到达输出{}。
要阻止其他邮件进入elasticsearch,请使用drop {}:
if [message] =~ "abc" {
}
else {
drop { }
}