【问题标题】:How to create an Elasticsearch cluster using Amazon EC2 computers?如何使用 Amazon EC2 计算机创建 Elasticsearch 集群?
【发布时间】:2017-06-04 03:48:48
【问题描述】:

我有两台计算机在 Amazon EC2 中运行。我想在它们之间建立一个 Elasticsearch 集群。我已经安装了 EC2 Discovery 插件,并且我还在他们的 YML 中包含了 Zen Discovery 配置。尽管如此,集群并未形成。两者都作为独立节点开始。

我的网络和发现设置是:

network.host: 0.0.0.0
http.port: 8200
discovery.zen.ping.unicast.hosts: ["10.0.1.2", "10.0.3.4"]
cloud.aws.access_key: "abc"
cloud.aws.secret_key: "xyz"

我应该采取哪些其他步骤来启动集群?

【问题讨论】:

  • 你能显示两个节点的网络配置吗?
  • 我记得你需要为此设置亚马逊机器级别的权限。
  • @Val 我已经添加了我的集群统计信息。
  • @VolodymyrBilyachat 我会尝试并告诉你。如何查看我的 EC2 访问策略?

标签: elasticsearch amazon-ec2


【解决方案1】:

由于您的 network.host 设置未使用正确的 IP 地址,您的主机无法互相看到:

在 host1 上你需要这个配置:

network.host: 10.0.1.2
http.port: 8200
discovery.zen.ping.unicast.hosts: ["10.0.3.4"]
cloud.aws.access_key: "abc"
cloud.aws.secret_key: "xyz"

在 host2 上你需要这个配置:

network.host: 10.0.3.4
http.port: 8200
discovery.zen.ping.unicast.hosts: ["10.0.1.2"]
cloud.aws.access_key: "abc"
cloud.aws.secret_key: "xyz"

为简化起见,您还可以将两个主机都放在discovery.zen.ping.unicast.hosts 中,这将简化自动化部署,但上述方法应该可以工作。

【讨论】:

  • 我明天会做这件事并告诉你。这是否允许我从 EC2 外部对这些服务器运行 curl 命令?
  • 10.* 是私有 IP 地址,因此除非您有从本地主机到 EC2 环境中的主机的 SSH 隧道,否则您将无法使用。但这是一个good idea 绑定到私有 IP 地址以防止外部攻击者到达您的集群。
  • 我有他们的 DNS 名称。我可以在network.host 和discovery.zen.ping.unicast.hosts 中使用它们吗?
  • 是的,您可以使用它们。
  • 您可能还需要使用安全组相互打开内部端口(可能是 9300,除非您更改了该端口)。您还应该设置discovery.zen.minimum_master_nodes: 2,这样您就不会出现脑裂。
猜你喜欢
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-07
  • 1970-01-01
  • 2014-04-10
  • 1970-01-01
相关资源
最近更新 更多