我该如何找到ElasticSearch安装我的插件的位置?

61
我已经使用brew install elasticsearch安装了elasticsearch。我的插件似乎存放在/usr/local/Cellar/elasticsearch/0.19.8/plugins中。通过cat $(which plugin),我可以看到一个包含正确路径的ES_HOME变量。 是否有一种方法可以查询elastic的ES_HOME或插件目录?

编辑

我正在寻找的是由plugin可执行文件用于安装插件的目录,当我执行plugin -install something时。我想在脚本中使用该路径来启动elasticsearch。


作为一个老问题,请注意自 Elasticsearch 5 版本起,使用 Elasticsearch 插件进行安装已被弃用。换句话说,所有新的/X-Pack功能都从 5.0 版本开始捆绑提供。 - CubeBot88
4个回答

114

要找到你的elasticsearch 主目录并且安装插件,请按照以下步骤进行。

找到您的主目录 (在设置中查找路径 -> 主目录的值)

$ curl "localhost:9200/_nodes/settings?pretty=true"

前往位置(例如设置路径.home的值:/usr/local/Cellar/elasticsearch/1.5.0)

$ cd /usr/local/Cellar/elasticsearch/1.5.0

安装插件 (示例插件:mobz/elasticsearch-head)

$ bin/plugin -install mobz/elasticsearch-head

1
这是一个非常老的问题。不过还是感谢你提供了完整的答案。 - Kostas
4
仅仅在这里留下来,这对我很有帮助,使用APT方法通过仓库安装elastic search,然后输入命令sudo /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head安装mobz/elasticsearch-head插件。 - DavidKahnt
curl: (7) Failed to connect to localhost port 9200: Connection refused - Green
https://dev59.com/5FwZ5IYBdhLWcg3wPOT2 - Tyler Rafferty

33

我使用了这个命令:

$ curl "localhost:9200/_nodes?pretty=true&settings=true"

请检查下一个设置:节点 - 设置 - 路径 - 插件,并将其用作插件目录。


curl "localhost:9200/_nodes?pretty=true&settings=true" - Green

19

我遇到了和你一样的问题,然后我按照@imotiv的建议找到了ES_HOME目录。

只需要调用PATH_TO_SERVER:9200/_cluster/nodes?settings=true&pretty=true

在那里,您将看到path.home条目。那就是您的ES工作目录。

一旦您找到了ElasticSearch主文件夹,如我的情况下为/usr/share/elasticsearch,请cd到该位置。

然后,您可以简单地运行bin/plugin -install elasticsearch/elasticsearch-analysis-phonetic/1.3.0,它会自动为您完成其余的步骤。

希望这有所帮助。


7

我不是完全确定你想要实现什么,但希望这可以帮到你。有几种方式可以找到elasticsearch的插件目录。你可以在logging.yml文件中设置plugins: TRACE,它会导致elasticsearch记录正在加载的插件的完整路径。你也可以执行以下命令:

$ curl "localhost:9200/_cluster/nodes?settings=true&pretty=true"

要检查当前设置,请查看。Elasticsearch正在使用在path.plugins设置中指定的位置来加载插件。如果path.plugins未设置,则将使用path.home设置指定的目录中的plugins目录。


非常抱歉,再次阅读我的问题后发现我错过了一个关键点:我正在寻找插件可执行文件默认使用的目录,在我执行plugin -install something时安装插件。我想在脚本中使用该路径来启动弹性搜索。 - Kostas
1
这是一项不容易的任务。如果你想以清晰的方式完成它,你需要加载多个配置文件并检查多个环境设置。我认为最简单的方法是编写一个小的Java应用程序,它将加载设置,然后从org.elasticsearch.env.Environment获取pluginsFile。基本上,它将是org.elasticsearch.plugins.PluginManager主方法的前两行,只是它不会检查路径是否存在,而是将其返回给调用者。 - imotov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接