Logstash - 找不到可执行的Java二进制文件

11

我在笔记本电脑的虚拟机上安装了ELK。Elasticsearch已启动运行。

./bin/logstash -f logstash-filter.conf让我遇到以下错误: 无法找到任何可执行的Java二进制文件,请将Java安装到您的PATH中或设置JAVA_HOME。

我尝试设置JAVA_HOME$ PATH,但问题仍然存在。我漏掉了什么吗?

 which java
/usr/bin/java


java -version
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

echo $JAVA_HOME
/usr/local/java/jdk1.8.0_45

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/divija/bin:/usr/local/java/jdk1.8.0_45/bin

logstash-filter.conf

input { stdin { } }

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
}

output {
  elasticsearch { host => localhost 
    index=>"myindex"
}
  stdout { codec => rubydebug }`enter code here`
}
2个回答

20

为了使这个工作正常,我不得不执行以下命令:

export JAVACMD=`which java`


1

我知道,这是一个旧的帖子,但我也遇到了同样的问题,并且做了一件非常愚蠢的事情。

我已经更新了/etc/environment中的$JAVA_HOME变量,但由于没有重新加载文件,所以它没有生效,运行source /etc/environment解决了我的问题。


我不明白,我也遇到了同样的问题。我尝试设置 javacmd 并从 /usr/share/logstash/bin 运行 ./system-install。但我仍然面临 JAVA 错误。 "@raghav","@Raghav Garg":无法找到 java;请设置 JAVA_HOME 或确保 java 在 PATH 中。 - AlisonGrey
@SPishere,请问您能否分享以下命令的输出结果:which javajava -versionecho $JAVACMDecho $JAVA_HOMEecho $PATH - Raghav Garg
他们都指向了正确的路径,但是我通过在startup.options中添加JAVA_HOME=path/to/jdk来修复了它。 - AlisonGrey
@SPishere,现在你的Logstash工作正常了,对吧?在设置JAVA_HOME之后。 - Raghav Garg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接