背景

我电脑环境的jdk是1.7,而需要的版本为1.8. 因此需要给elasticsearch指定jdk1.8(不需要将jdk1.8配置到环境变量).

一、下载

  • 1、jdk:点击下载jdk1.8
  • 2、解压

    tar -xvf xxx1.8.tar.gz

    二、配置

  • 1、修改logstash启动脚本
    查看logstash启动脚本,没有关于java_home之类的相关配置,但是有一项:

    . “$(cd dirname ${SOURCEPATH}/..; pwd)/bin/logstash.lib.sh”

说明 : logstash启动过程会引入lib文件bin/logstash.lib.sh
查看logstash.lib.sh

1
2
3
4
5
6
7
8
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的行首位置添加两个环境变量

1
2
export JAVA_CMD="/home/hiekay/jdk1.8.0_181/bin"
export JAVA_HOME="/home/hiekay/jdk1.8.0_181/"

  • 2、再次启动正常

    logstash -e ‘input { stdin { } } output { stdout {} }’

运行起来后
image.png

输入

hello hiekay

查看运行结果
image.png

三、问题

如果有些文件没有权限运行,要么新建用户组和用户,要么给文件授权

chmod -R 777 logstash
chmod -R 777 xxx