ルートユーザーであるLinuxマシンでElasticsearch 2.1.1を実行しようとしています。
Elasticsearchを実行しようとすると、次のエラーが表示されます。
Exception in thread "main" Java.lang.RuntimeException: don't run elasticsearch as root.
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.Java:93)
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.Java:144)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.Java:285)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.Java:35)
Refer to the log for complete error details.
私はインターネットで利用可能ないくつかの提案を参照し、彼らは別のユーザーとしてそれを実行すると述べた。私のシナリオは、rootユーザーとしてのみ実行することです。別のユーザーとして実行せずにこの問題を解決する方法。
以下に基づいて code-snippet プロパティes.insecure.allow.rootを有効にすることでこれを達成できるはずです。
例:
bin/elasticsearch -Des.insecure.allow.root=true
スクリプトファイルを開く:
vi bin/elasticsearch
ルートを許可するためのプロパティを追加します。
ES_Java_OPTS = "-Des.insecure.allow.root = true"
がんばろう。
エイリアスを作成することもできます
エイリアスelasticsearch = 'elasticsearch -Des.insecure.allow.root = true'
bashrcファイルに上記の行を追加し、その後elasticsearchコマンドが機能します。
Elasticsearch-X.X.Xの所有者とグループを変更し、そのユーザーとして実行する必要があります。 elasticsearch-5.3.0で動作します
この問題を解決するには2つの回避策があります:
解決策1: Zipファイルnをダウンロードして解凍し、次のコマンドで開始します
bin/elasticsearch -Des.insecure.allow.root=true -d
解決策2:
vi bin/elasticsearch
Rootが2つのインスタンスを実行できるようにするプロパティを追加します。
ES_Java_OPTS="-Des.insecure.allow.root=true"
保存して閉じます。 rootで今すぐ開始できます。
linuxサーバーにuser = esと言う新しいユーザーを作成し、Sudo chown -R es elasticsearch-6.1.0/
その後、「es」ユーザーアカウントを切り替えて実行できます./elasticsearch-6.1.0/bin/elasticsearch