在本次安裝過程中,採用的是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