一、问题的发现
ELK的服务端安装完成后,开始部署客户端。在两台客户端上按照同样的方式安装logstash的rpm包:logstash-6.6.1.rpm
采用命令方式启动,均可成功。命令如下:
#logstash -f /etc/logstash/conf.d/elk.conf --config.reload.automatic &
尝试使用systemctl工具启动,差异出现了,效果如下图:
systemctl start logstash
二、问题分析
由于对logstash处于学习阶段,查询了官方的文档;https://www.elastic.co/guide/index.html
可以确定systemctl是可以用的,但要求是java要求1.8以上版本。
对比两台机器的java版本
[root@d01 ~]# java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
启动错误的:
[root@d02 ~]# java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)
版本是有些差别,但觉得不应该有什么影响。
查询网上资料,一篇文档很有帮助:logstash启动失败的问题追查
回顾安装过程,可以成功启动的机器的java是安装rpm包方式安装的,与logstash同期安装的
执行的是:#yum -y install jdk-8u60-linux-x64.rpm
另一台运行的是java应用,在logstash安装之前安装的。
使用的是 压缩包解压方式:使用的 jdk-8u112-linux-x64.tar.gz
这是问题的所在,查看/var/log/messages
三、问题解决
将java链接到/bin目录下,问题解决。
#ln -s /usr/local/jdk8/bin/java /bin/