在本次安装过程中,采用的是root权限进行安装elasticSearch,因此在启动程序的时候出现下述所示的错误信息:
[root@admin01 elasticsearch-5.2.2]# bin/elasticsearch
[2019-08-27T19:11:35,040][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [admin01] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.cli.Command.main(Command.java:88) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:89) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:82) ~[elasticsearch-5.2.2.jar:5.2.2]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:203) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-5.2.2.jar:5.2.2]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-5.2.2.jar:5.2.2]
... 6 more
出现此问题的解决方法有如下几种:
方法一:
在执行elasticSearch时加上参数-Des.insecure.allow.root=true,完整命令如下
./elasticsearch -Des.insecure.allow.root=true
方法二:
用vi打开elasicsearch执行文件,在变量ES_JAVA_OPTS使用前添加以下命令
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
如下图所示,这个方法的好处是以后不用添加参数就能以root身份执行了,在下述图片所示的路径下对文件信息,进行修改操作。
方法三:
使用root权限添加新的登陆用户,并赋予该用户使用ElasticSearch的操作权限,如下所示:
adduser work //添加用户
passwd work //给用户赋值
添加完用户之后:
用root用户执行 :chown -R elasticsearch-5.2.2 work
并且将这几个压缩包所在的文件夹及解压完的文件夹权限赋予新建的work用户。之后再使用新用户启动就可以正常启动运行。
方法四:
在使用root权限启动ElasticSearch的时候,会出现开篇所示的错误信息,这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑, 建议创建一个单独的用户用来运行ElasticSearch。
创建elsearch用户组及elsearch用户
[root@admin01 ~]# groupadd elastic
[root@admin01 ~]# useradd elastic -g elastic -p elasticsearch-5.2.2
更改elasticsearch-5.2.2文件夹及内部文件的所属用户及组为elastic:elastic
[root@admin01 ~]# cd opt/softwares/
[root@admin01 softwares]# chown -R elastic:elastic elasticsearch-5.2.2/
切换到elastic用户再启动
[root@admin01 ~]# cd opt/softwares/
[root@admin01 softwares]# su elastic
[elastic@admin01 softwares]$ cd elasticsearch-5.2.2/
[elastic@admin01 elasticsearch-5.2.2]$ ll
total 224
drwxr-xr-x 2 elastic elastic 4096 Aug 27 19:24 bin
drwxr-xr-x 2 elastic elastic 4096 Aug 27 19:06 config
drwxr-xr-x 2 elastic elastic 4096 Aug 27 18:52 data
drwxr-xr-x 2 elastic elastic 4096 Feb 25 2017 lib
-rw-r--r-- 1 elastic elastic 11358 Feb 25 2017 LICENSE.txt
drwxr-xr-x 2 elastic elastic 4096 Aug 27 19:07 logs
drwxr-xr-x 12 elastic elastic 4096 Feb 25 2017 modules
-rw-r--r-- 1 elastic elastic 172700 Feb 25 2017 NOTICE.txt
drwxr-xr-x 2 elastic elastic 4096 Feb 25 2017 plugins
-rw-r--r-- 1 elastic elastic 9108 Feb 25 2017 README.textile
[elastic@admin01 elasticsearch-5.2.2]$ bin/elasticsearch