Logstash 有没有办法在conf文件中放置一个相对路径?

Logstash 有没有办法在conf文件中放置一个相对路径?,logstash,Logstash,嗯,我遇到了以下问题。 我的工作区是这样的 bin conf example lib LICENSE locales patterns README.md spec vendor 在conf文件夹中,我得到了带有下一个输入的文件logstash apache.conf input { file { path => "./../example/logs/logprueba/*_log" start_position => beginning

嗯,我遇到了以下问题。 我的工作区是这样的

bin  conf  example  lib  LICENSE  locales  patterns  README.md  spec  vendor
在conf文件夹中,我得到了带有下一个输入的文件
logstash apache.conf

input {
  file {
    path => "./../example/logs/logprueba/*_log"
    start_position => beginning   }
  }
}
当我运行logstash时,我得到消息:

文件路径必须是绝对路径,指定的是相对路径:./../example/logs/logprueba/*\u log

有没有办法设置一个相对路径?

答案是否定的——除非修改logstash源代码。。。根据报告:

要用作输入的文件的路径。您可以在这里使用globs,例如/var/log/*。日志路径必须是绝对的,不能是相对的


您可以始终使用bash
$(pwd)
使用环境变量来生成当前目标,这可能不是您的主解决方案,但至少不是反模式:

export CSV\u FILE=$(pwd)\/temporal\u datasets\/dataset.CSV

然后在logstash配置文件中

input {
  file {
    path => '${CSV_FILE}'
    start_position => "beginning"
    sincedb_path => "/dev/null"
    ignore_older => 0
  }
}

它实际上不是一个相对路径,但由于最近的logstash(可能需要通过——根据版本允许env)如果您愿意始终从特定目录(例如,其中包含conf文件的目录)运行logstash,则可以使用path=>“${PWD}/./example/logs/logprueba/*\u log”。或者,如果您愿意设置一个var,path=>“${LOGS\u DIR}/*\u log”为否决票道歉。这可能是7年前最好的答案,但是@panchicore下面的答案是一个有效的解决方法。一旦我得到语法“${right}”,它就非常有效了。