2016-01-21 106 views
22

我想在我的Linux機器上運行Elasticsearch 2.1.1,它是我的根用戶。如何以root用戶的身份在Linux機器上運行Elasticsearch 2.1.1

當我試圖執行Elasticsearch.I正在以下錯誤,

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用戶身份運行。如何克服這個問題,而無需像其他用戶一樣運行。提前

+0

我不相信有一種解決方法,出於安全原因,您必須將其作爲另一個用戶運行。 – IanGabes

+0

以root身份運行webserver是非常危險的。這一定不會發生。特別是這個答案釘它:http://askubuntu.com/a/16201/35185 請參閱此主題:http://askubuntu.com/questions/16178/why-is-it-bad-to-login- as-root – Semo

回答

44

由於基於以下code-snippet的樣子,你應該能夠使財產 es.insecure.allow.root

實例來實現這一目標:

bin/elasticsearch -Des.insecure.allow.root=true 
+0

非常感謝喲。你的建議做到了,但現在我面臨着不同的錯誤。我正在粘貼下面的錯誤,「線程中的異常」main「java.lang.IllegalStateException:無法獲取節點鎖,是以下位置可寫?:[/ anvs/indexstore/mysample] 可能的根本原因:java.io. IOException:沒有鎖可用於sun.nio.ch.FileDispatcherImpl.lock0(本機方法) at sun.nio.ch.FileDispatcherImpl.lock(FileDispatcherImpl.java:90) at sun.nio.ch.FileChannelImpl.tryLock( FileChannelImpl.java:1082)' – Mangoski

+0

你檢查了文件夾/ anvs/indexstore/mysample的權限嗎? – keety

+6

當前的答案不再適用於最新的elasticsearch。 – rjurney

3

您還可以創建別名

別名elasticsearch = 'elasticsearch -Des.insecure.allow.root =真'

添加上面的行中bashrc中文件,之後elasticsearch命令將起作用。

+3

這不再有效。 – rjurney

+1

它在版本5.4.0中不起作用 –

+0

@BoPennings是的,它已經在5.X版本中被棄用了。你必須在你的box中創建一個非root用戶,並且你要將elasticsearch用戶名和組更改爲新創建的非 - 根用戶,然後你必須開始這個過程。 – Mangoski

9
  1. 打開腳本文件:

    VI斌/ elasticsearch

  2. 添加屬性允許root:

    ES_JAVA_OPTS = 「 - Des.insecure.allow.root =真正的」

  3. 保存並關閉。
  4. 您現在可以以root身份啓動。

祝你好運。

+5

這不再適用於最新的elatiscsearch。 – rjurney

+0

它對我有用 –

+0

它在版本5.4.0中不起作用 –

1

您應該更改elasticsearch-X.X.X的所有者和組並以該用戶身份運行。它適用於elasticsearch-5.3.0

相關問題