【问题标题】:How to run Elasticsearch 2.1.1 as root user in Linux machine如何在 Linux 机器上以 root 用户身份运行 Elasticsearch 2.1.1
【发布时间】:2016-04-27 12:34:53
【问题描述】:

我正在尝试在我的 Linux 机器上运行 Elasticsearch 2.1.1,我是它的 root 用户。

当我尝试执行 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 用户身份运行。如何在不以不同用户身份运行的情况下克服此问题。

【问题讨论】:

标签: linux elasticsearch elasticsearch-plugin


【解决方案1】:

基于以下code-snippet 看起来您应该能够通过启用属性来实现这一点 es.insecure.allow.root

例子:

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

【讨论】:

  • 非常感谢。你的建议成功了,但现在我面临不同的错误。我在下面粘贴错误,Exception in thread "main" java.lang.IllegalStateException: Failed to obtain node lock, is the following location writable?: [/anvs/indexstore/mysample] Likely root cause: java.io.IOException: No locks available at sun.nio.ch.FileDispatcherImpl.lock0(Native Method) at sun.nio.ch.FileDispatcherImpl.lock(FileDispatcherImpl.java:90) at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1082)
  • 你检查文件夹/anvs/indexstore/mysample的权限了吗?
  • 当前答案在最新的 elasticsearch 中不再有效。
  • @rjurney。是的,上述选项在 5.X 及更高版本中不起作用。有什么办法可以克服吗?
  • 嗨,你找到 ES5 的答案了吗?
【解决方案2】:
  1. 打开脚本文件:

    vi bin/elasticsearch

  2. 为允许根添加属性:

    ES_JAVA_OPTS="-Des.insecure.allow.root=true"

  3. 保存并关闭。
  4. 您现在可以从 root 启动。

祝你好运。

【讨论】:

  • 它适用于 2.4.1。 elasticsearch 目录的所有者是'elasticsearch'
【解决方案3】:

你也可以创建别名

别名 elasticsearch='elasticsearch -Des.insecure.allow.root=true'

bashrc 文件中添加以上行,之后 elasticsearch 命令将起作用。

【讨论】:

  • @BoPennings 是的,它在 5.X 版本中已被弃用。您必须在您的框中创建一个非 root 用户,并且您必须将 elasticsearch 用户名和组更改为新创建的非 root 用户然后你必须开始这个过程。
【解决方案4】:

您应该更改 elasticsearch-X.X.X 的所有者和组并以该用户身份运行。它适用于 elasticsearch-5.3.0

【讨论】:

    【解决方案5】:

    有两种解决方法可以解决此问题:

    解决方案 1: 下载 zip 文件 n 解压缩,然后按照以下命令开始

    bin/elasticsearch -Des.insecure.allow.root=true -d
    

    解决方案 2:

    vi bin/elasticsearch
    

    添加属性以允许root运行两个实例:

    ES_JAVA_OPTS="-Des.insecure.allow.root=true"
    

    保存并关闭。 您现在可以从 root 开始。

    【讨论】:

      【解决方案6】:

      我们需要在 Linux 服务器中创建一个新用户说 user = es 并授予sudo chown -R es elasticsearch-6.1.0/ 然后你可以切换'es'用户帐户并运行./elasticsearch-6.1.0/bin/elasticsearch

      【讨论】:

      • elastic.co 不支持以 root 身份运行 elasticsearch
      猜你喜欢
      • 2017-08-06
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      • 2020-12-19
      • 2018-06-18
      • 2018-01-05
      • 2022-01-07
      相关资源
      最近更新 更多