按名称过滤logstash

时间:2020-07-16 17:06:56

标签: linux elasticsearch logstash kibana elastic-stack

我有一个名为“ /var/log/commands.log”的日志文件,我正在尝试使用logstash&grok将其分为几个字段。我已经工作了。现在,我试图使logstash仅对文件“ /var/log/commands.log”执行此操作,而不对“ if name = commands.log”进行任何输入,但是带有“ if”语句的内容似乎是错误的,因为它会跳过它。

input{
file{
path => "/var/log/commands.log"
}
beats{
port => 5044
}
}
filter {
if [log][file][path] == "/var/log/commands.log" {
grok{
match => { "message" => "*very long statement*"
}
}
}
}
output{
elasticsearch { hosts => ["localhost:9200"]}
}

如果删除if语句,它将起作用,并且字段在kibana中可见。我正在本地测试。有人知道发生了什么吗?

编辑:已解决:在logstash中,它必须仅是[path],而不是所有其他路径。

0 个答案:

没有答案