我在本地机器上安装了弹性搜索,我想将它配置为集群中唯一的一个节点(独立服务器)。这意味着每当我创建一个新索引时,它只对我的服务器可用。其他服务器将无法访问它。
我目前的场景是这些索引可供其他服务器使用(这些服务器在集群中形成),并且它们可以对我的索引进行任何更改。但我不想要它。
我浏览了其他一些博客,但没有得到最佳解决方案。那么你能告诉我同样的步骤吗?
我在本地机器上安装了弹性搜索,我想将它配置为集群中唯一的一个节点(独立服务器)。这意味着每当我创建一个新索引时,它只对我的服务器可用。其他服务器将无法访问它。
我目前的场景是这些索引可供其他服务器使用(这些服务器在集群中形成),并且它们可以对我的索引进行任何更改。但我不想要它。
我浏览了其他一些博客,但没有得到最佳解决方案。那么你能告诉我同样的步骤吗?
Kimchy :您将节点设置为 local(true),这意味着它不会发现使用网络的其他节点,仅在同一个 JVM 中。
在 elasticsearch/bin/elasticsearch.yml 文件中
node.local: true # disable network
在弹性搜索.yml
network.host: 0.0.0.0
discovery.type: single-node
并确保您已关闭cluster.initial_master_nodes
# cluster.initial_master_nodes: ["node-1", "node-2"]
归功于@Chandan。
在elasticsearch.yml
# Note, that for development on a local machine, with small indices, it usually
# makes sense to "disable" the distributed features:
#
index.number_of_shards: 1
index.number_of_replicas: 0
在您的代码中使用相同的配置。
还要隔离节点使用node.local: true
或discovery.zen.ping.multicast: false
以下是 ElasticSearch 5 的相关信息:
根据更改日志,要在 ES 5 上启用本地模式,您需要添加transport.type: local
到您的elasticsearch.yml
而不是node.local: true
.
如果您打算在单个节点上运行 Elasticseach 并能够将其绑定到公共 IP,则两个重要设置是:
network.host: <PRIVATE IP OF HOST>
discovery.type: single-node
如果您在代码中使用网络传输,这将不起作用,因为node.local
只为您提供 LocalTransport:
诀窍是设置
discovery.zen.ping.multicast: false
在您的elasticsearch.yml
which 将停止您的节点寻找任何其他节点。
我不确定这是否会阻止其他节点发现您的节点;我只需要它来影响同一网络上具有相同设置的一组节点。
我想这样做,而不必在我的容器中写入/覆盖 elasticsearch.yml。这里没有配置文件
在启动 elasticsearch 之前设置环境变量:
discovery.type=single-node
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
在配置文件中,添加:
network.host: 0.0.0.0
[在网络设置中] discovery.type: single-node
[在发现和集群形成设置中]这解决了你的问题:
PUT /_all/_settings
{"index.number_of_replicas":0}
使用 ES 版本 5 进行测试。
所有这些都没有帮助我(遗憾的是我没有阅读 bhdrkn 的答案)。对我有用的是每次我需要一个单独的实例时更改elasticsearch的集群名称,其中新节点不会通过多播自动添加。
只需在 elasticsearch.yml 中更改 cluster.name: {{ elasticsearch.clustername }},例如通过 Ansible。这在构建单独的阶段(如开发、QA 和生产)(这是企业环境中的标准用例)时特别有用。
如果您使用 logstash 将数据输入到 elasticsearch 中,请不要忘记将相同的集群名称放入输出部分,例如:
output {
elasticsearch {
cluster => "{{ elasticsearch.clustername }}"
}
}
否则,您的“logstash-*”-index 将无法正确构建...