問題:
[root@dnode1 bin]# ./elasticsearch -d
[root@dnode1 bin]# Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:94)
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:160)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:45)
Refer to the log for complete error details.
解答:
Elasticsearch 2.*版本之後出于對系統安全考慮設定的條件。由于ElasticSearch可以接收使用者輸入的腳本并且執行,為了系統安全考慮,預設如果使用root使用者運作就會報"java.lang.RuntimeException"的錯誤,解決如下:
1、添加使用root運作的參數
vi bin/elasticsearch
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
或者設定别名:
alias elasticsearch='elasticsearch -Des.insecure.allow.root=true'
可以添加到/root/.bashrc 中讓其生效
或者啟動直接傳參啟動:
bin/elasticsearch -Des.insecure.allow.root=true
2、添加普通使用者啟動
建立elsearch使用者組及elsearch使用者 :
groupadd elsearch
useradd elsearch -g elsearch
更改elasticsearch檔案夾及内部檔案的所屬使用者及組為elsearch:elsearch :
chown -R elsearch:elsearch elasticsearch
使用elsearch使用者啟動elasticsearch:
cd elasticsearch/bin
runuser -l elsearch -c "./elasticsearch -d"
不要讓懶惰占據你的大腦,不讓要妥協拖跨你的人生。青春就是一張票,能不能趕上時代的快車,你的步伐掌握在你的腳下,good luck