2017-06-12 624 views
0

添加节点向单节点集群,我目前正在运行与安全原因nginx的代理单节点集群。我想将一个新节点添加到我的群集中。 所以我安装elasticsearch和kibana在我的新节点和nginx代理转发。对于端口转发我使用8000而不是9200。但是,当我修改新的节点单播变量到我的主节点。并且在重新启动两个节点之后。我有错误,当我打以下网址不能在elasticsearch [master_not_discovered_exception]

IP:8000/_cluster /健康

{"error":{"root_cause":[{"type":"master_not_discovered_exception","reason":null}],"type":"master_not_discovered_exception","reason":null},"status":503} 

我可以看到elasticsearch运行时我打IP:8000

旧节点配置:

# ---------------------------------- Cluster ----------------------------------- 
# 
# Use a descriptive name for your cluster: 
# 
cluster.name: <Cluster Name> 
# 
# ------------------------------------ Node ------------------------------------ 
# 
# Use a descriptive name for the node: 
# 
node.name: elasticsearch-24-384-node-1 
# 
# Add custom attributes to the node: 
# 
# node.rack: r1 
# 
# ----------------------------------- Paths ------------------------------------ 
# 
# Path to directory where to store the data (separate multiple locations by comma): 
# 
path.data: /mnt/elastic_data/data 
# 
# Path to log files: 
# 
path.logs: /mnt/elastic_data/logs 
# 
# ----------------------------------- Memory ----------------------------------- 
# ---------------------------------- Network ----------------------------------- 
# 
# Set the bind address to a specific IP (IPv4 or IPv6): 
# 
network.host: ["127.0.0.1", <new-node-ip>] 
# 
# Set a custom port for HTTP: 
# 
# http.port: 9200 
# 
# For more information, see the documentation at: 
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html> 
# 
# --------------------------------- Discovery ---------------------------------- 
# 
# Pass an initial list of hosts to perform discovery when new node is started: 
# The default list of hosts is ["127.0.0.1", "[::1]"] 
# 
discovery.zen.ping.unicast.hosts: ["127.0.0.1", "<new-node-ip>"] 
# 
# Prevent the "split brain" by configuring the majority of nodes (total number of nodes/2 + 1): 
# 
discovery.zen.minimum_master_nodes: 2 
# 
# For more information, see the documentation at: 
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery.html> 
# ---------------------------------- Gateway ----------------------------------- 
# 
# Block initial recovery after a full cluster restart until N nodes are started: 
# 
# gateway.recover_after_nodes: 3 
# 
# For more information, see the documentation at: 
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway.html> 
# 
# ---------------------------------- Various ----------------------------------- 
# 
# Disable starting multiple nodes on a single system: 
# 
# node.max_local_storage_nodes: 1 
# 
# Require explicit names when deleting indices: 
# 
# action.destructive_requires_name: true 

新节点的配置:

# ---------------------------------- Cluster ----------------------------------- 
# 
# Use a descriptive name for your cluster: 
# 
cluster.name: <Cluster Name> 
# 
# ------------------------------------ Node ------------------------------------ 
# 
# Use a descriptive name for the node: 
# 
node.name: elasticsearch-24-384-node-2 
# 
# Add custom attributes to the node: 
# 
# node.rack: r1 
# 
# ---------------------------------- Network ----------------------------------- 
# 
# Set the bind address to a specific IP (IPv4 or IPv6): 
# 
network.host: ["127.0.0.1", <old-node-ip>] 
# 
# Set a custom port for HTTP: 
# 
# http.port: 9200 
# 
# For more information, see the documentation at: 
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html> 
# 
# --------------------------------- Discovery ---------------------------------- 
# 
# Pass an initial list of hosts to perform discovery when new node is started: 
# The default list of hosts is ["127.0.0.1", "[::1]"] 
# 
discovery.zen.ping.unicast.hosts: ["127.0.0.1", "<Older-node-ip>:9300"] 
# 
# Prevent the "split brain" by configuring the majority of nodes (total number of nodes/2 + 1): 
# 
discovery.zen.minimum_master_nodes: 2 
# 
# For more information, see the documentation at: 
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery.html> 
# 
# ---------------------------------- Gateway ----------------------------------- 
# 
# Block initial recovery after a full cluster restart until N nodes are started: 
# 
# gateway.recover_after_nodes: 3 
# 
# For more information, see the documentation at: 
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway.html> 
# 
# ---------------------------------- Various ---------------------------------- 

所以任何一个可以告诉我在做什么错?

回答

0

有两个端口,则768,16能够两名来自每个节点看:
- 为REST
默认端口 - 为nodes communication

默认的端口,因此可以在每个节点看到其他节点的9300端口?

+0

我不能得到你。你能解释一下吗? – Tamizharasan

+0

在端口'9200'上,您可以将REST请求发送到elasticsearch。对于其他任务,如群集管理和节点同步,弹性在每个节点上使用默认的'9300'端口。你应该可以连接到从每个节点到另一个IP:9300。考试你可以使用'telnet ip 9300'。 –

+0

当我打telnet ip。它给出了以下输出。 'telnet:无法连接到远程主机:连接被拒绝' – Tamizharasan

0

我给network.host为当前节点的IP,这样它会发布这个IP连接其他节点。

节点 - 1

cluster.name: <Cluster Name> 
node.name: <Node Name> 
network.host: <node1-ip> 
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "<node2-ip>:9300"] 
discovery.zen.minimum_master_nodes: 1 

节点 - 2

cluster.name: <Cluster Name> 
node.name: <Node Name - 2> 
network.host: <node2-ip> 
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "<node1-ip>:9300"] 
discovery.zen.minimum_master_nodes: 1 

上述的配置将正常工作。但如果您尝试使用Nginx来保护elasticsearch API,那么这里就是棘手的部分。运输模块不会允许你。你修改后的network.host本地到节点的IP。所有的API都可以在没有基本认证的情况下访问。

我改变network.hostnetwork.publish_host使节点的IP只公布了不API节点连接。但我无法连接节点。任何人都有想法。提前致谢 !