运行 按需 logstash

Run logstash on demand

是否可以 运行 按需 logstash 而不是流文件?我将一组文件放在一个文件夹中,但我只想根据需要将其中的几个推送到 elasticsearch。

这甚至可以用 logstash 实现吗?我确实可以选择在不使用 logstash 的情况下以编程方式执行此操作。但考虑到今天的文件大小 (~10gb) 和未来的预期增长,我想看看 logstash 是否是一个选项。

您可以参考logstash-input-file寻求帮助。 指定要监控的文件:

input{
    file{
        path => ["/var/log/messages","/var/log/nginx/access.log"]
    }
}

或者,在您的情况下,您还可以监控文件夹并排除其中的某些文件:

input{
    file{
        path => ["/var/log/nginx/*.log"]
        exclude => "error.log"
    }
}

您始终可以使用标准输入输入将文件内容通过管道传输到 Logstash:

cat myfile.txt | bin/logstash -f logstash.conf

其中 logstash.conf 定义

input { 
    stdin{}
}