logstash启动时不到⾃定义的JAVA_HOME环境变量logstash java 版本问题
配置logstash收集应⽤⽇志时出现报错,说是不到JAVA_HOME环境变量,但是明明已经设置了
logstash要求java 1.8以上,查看⽣产环境:
[root@localhost ~]# echo ${JAVA_HOME}
/usr/local/jdk-12
[root@localhost ~]# java -version
openjdk version "12" 2019-03-19
OpenJDK Runtime Environment (build 12+33)
OpenJDK 64-Bit Server VM (build 12+33, mixed mode, sharing)
查看logstash启动脚本,没有关于java_home之类的相关配置,但是有⼀项:
"$(cd `dirname $SOURCEPATH`/..; pwd)/bin/logstash.lib.sh"
logstash启动过程会引⼊lib⽂件bin/logstash.lib.sh
查看logstash.lib.sh
java环境变量自动配置setup_java() {
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
JAVACMD="$JAVA_HOME/bin/java"
else
JAVACMD="java"
fi
fi
定义了⼀个setup_java的函数,setup_java被setup函数调⽤,最终被bin/logstash启动脚本调⽤,因此,
我们只需要在logstash或logstash.lib.sh的⾏⾸位置添加两个环境变量
export JAVA_HOME=/usr/local/jdk-12
export PATH=$PATH:$JAVA_HOME/bin
再次启动正常
注意:这种情况⼀般发⽣在⾃定义的java环境上,使⽤yum在线安装java的⽅式则不会出现

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。