天天看點

logstash 找不到 java 環境

logstash6.7.0版本的報錯。

01. 現象

這個問題是很早前在生産環境上部署elk叢集的時候出現的,今天記錄下,叢集中的節點都有部署java環境,但是在logstash這個節點缺提示找不到java環境,我是在CentOS上用rpm包進行部署的,加到了系統服務system中。

啟動logstash後,報錯如下圖:

logstash 找不到 java 環境

02. journalctl -ex 檢視:

有一條是"could not find java; set JAVA_HOME or ensure java is in PATH",意思是缺少java環境,但是我已經配置了java環境變量。

logstash 找不到 java 環境

檢視java環境是存在的:

logstash 找不到 java 環境
[root@logstash ~]# echo $PATH
/usr/local/java/jdk1.8.0_131/bin:/usr/local/java/jdk1.8.0_131/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/server/application/jdk1.8.0_144/bin:/root/bin      

03. 解決辦法

去logstash的bin目錄下,配置 logstash.bat 和 logstash 這兩個檔案中的JAVA_HOME 參數。

如下:

[root@web bin]$ pwd
/usr/share/logstash/bin
[root@web bin]$ grep "JAVA_HOME" logstash.bat
JAVA_HOME=/usr/local/jdk1.8.0_144/
[root@web bin]$ grep "JAVA_HOME" logstash
JAVA_HOME=/usr/local/jdk1.8.0_144/
[root@web bin]$      

然後重新開機成功:

logstash 找不到 java 環境

我這個版本是6.7的,Elastic官方公布的7.x版本都是預設自帶java環境,是以不需要再單獨安裝JDK了,後續也都更新到了7.1.0的版本。

作者:HaydenGuo