2016-03-02 27 views
0

我的目标是使用EC2发现在AWS中创建elasticsearch集群。AWS elasticsearch EC2发现,无法找到其他节点

我有3个实例,每个运行elasticsearch。 我已经为每个实例提供了一个允许它们描述ec2数据的IAM角色。 每个实例位于安全组“sec-group-elasticsearch”内部

节点开始但未找到彼此(日志如下)。

我可以从一个节点登录到另一个使用私有DNS和端口9300

参考
例如。来自节点A-> B的telnet工作并且B-> A工作。

telnet ip-xxx-xxx-xx-xxx.vpc.fakedomain.com 9300 

为每个实例的IAM角色

{ 
    "Statement": [ 
     { 
      "Action": [ 
       "ec2:DescribeInstances" 
      ], 
      "Effect": "Allow", 
      "Resource": [ 
       "*" 
      ] 
     } 
    ], 
    "Version": "2012-10-17" 
} 

秒集团规章

Inbound 
Custom TCP Rule TCP 9200 - 9400 0.0.0.0/0 

Outbound 
All traffic allowed 

elasticsearch.yml

bootstrap.mlockall: false 
cloud.aws.region: us-east 
cluster.name: my-ec2-elasticsearch 
discovery: ec2 
discovery.ec2.groups: sec-group-elasticsearch 
discovery.ec2.host_type: private_dns 
discovery.ec2.ping_timeout: 30s 
discovery.zen.minimum_master_nodes: 2 
discovery.zen.ping.multicast.enabled: false 
http.port: 9200 
network.host: _ec2:privateDns_ 
node.data: false 
node.master: true 
transport.tcp.port: 9300 

在启动时,每个实例的日志,像这样:

[2016-03-02 03:13:48,128][INFO ][node      ] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] version[2.1.0], pid[26976], build[72cd1f1/2015-11-18T22:40:03Z] 
[2016-03-02 03:13:48,129][INFO ][node      ] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] initializing ... 
[2016-03-02 03:13:48,592][INFO ][plugins     ] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] loaded [cloud-aws], sites [head] 
[2016-03-02 03:13:48,620][INFO ][env      ] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] using [1] data paths, mounts [[/ (/dev/xvda1)]], net usable_space [11.4gb], net total_space [14.6gb], spins? [no], types [ext4] 
[2016-03-02 03:13:50,928][INFO ][node      ] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] initialized 
[2016-03-02 03:13:50,928][INFO ][node      ] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] starting ... 
[2016-03-02 03:13:51,065][INFO ][transport    ] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] publish_address {ip-xxx-xxx-xx-xxx.vpc.fakedomain.com/xxx-xxx-xx-xxx:9300}, bound_addresses {xxx-xxx-xx-xxx:9300} 
[2016-03-02 03:13:51,074][INFO ][discovery    ] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] my-ec2-elasticsearch/xVOkfK4TT-GWaPln59wGxw 
[2016-03-02 03:14:21,075][WARN ][discovery    ] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] waited for 30s and no initial state was set by the discovery 
[2016-03-02 03:14:21,084][INFO ][http      ] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] publish_address {ip-xxx-xxx-xx-xxx.vpc.fakedomain.com/xxx-xxx-xx-xxx:9200}, bound_addresses {xxx-xxx-xx-xxx:9200} 
[2016-03-02 03:14:21,085][INFO ][node      ] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] started 

跟踪记录上的发现:

2016-03-02 04:25:27,753][TRACE][discovery.zen.ping.unicast] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] [26] failed to connect to {#zen_unicast_2#}{::1}{[::1]:9300} 
ConnectTransportException[[][[::1]:9300] connect_timeout[30s]]; nested: ConnectException[Connection refused: /0:0:0:0:0:0:0:1:9300]; 
    at org.elasticsearch.transport.netty.NettyTransport.connectToChannelsLight(NettyTransport.java:916) 
    at .............. 



[2016-03-02 04:25:29,253][TRACE][discovery.zen.ping.unicast] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] [26] connecting (light) to {#zen_unicast_1#}{127.0.0.1}{127.0.0.1:9300} 
[2016-03-02 04:25:29,253][TRACE][discovery.zen.ping.unicast] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] [26] sending to {ip-xxx-xxx-xx-xxx.vpc.fakedomain.com}{jtq31eB_Td-GpnxREFytLg}{xxx-xxx-xx-xxx}{ip-xxx-xxx-xx-xxx.vpc.team.getgoing.com/xxx-xxx-xx-xxx:9300}{data=false, master=true} 
[2016-03-02 04:25:29,254][TRACE][discovery.zen.ping.unicast] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] [26] received response from {ip-xxx-xxx-xx-xxx.vpc.fakedomain.com}{jtq31eB_Td-GpnxREFytLg}{xxx-xxx-xx-xxx}{ip-xxx-xxx-xx-xxx.vpc.team.getgoing.com/xxx-xxx-xx-xxx:9300}{data=false, master=true}: [ping_response{node [{ip-xxx-xxx-xx-xxx.vpc.fakedomain.com}{jtq31eB_Td-GpnxREFytLg}{xxx-xxx-xx-xxx}{ip-xxx-xxx-xx-xxx.vpc.team.getgoing.com/xxx-xxx-xx-xxx:9300}{data=false, master=true}], id[143], master [null], hasJoinedOnce [false], cluster_name[my-ec2-elasticsearch]}, ping_response{node [{ip-xxx-xxx-xx-xxx.vpc.fakedomain.com}{jtq31eB_Td-GpnxREFytLg}{xxx-xxx-xx-xxx}{ip-xxx-xxx-xx-xxx.vpc.team.getgoing.com/xxx-xxx-xx-xxx:9300}{data=false, master=true}], id[145], master [null], hasJoinedOnce [false], cluster_name[my-ec2-elasticsearch]}, ping_response{node [{ip-xxx-xxx-xx-xxx.vpc.fakedomain.com}{jtq31eB_Td-GpnxREFytLg}{xxx-xxx-xx-xxx}{ip-xxx-xxx-xx-xxx.vpc.team.getgoing.com/xxx-xxx-xx-xxx:9300}{data=false, master=true}], id[147], master [null], hasJoinedOnce [false], cluster_name[my-ec2-elasticsearch]}, ping_response{node [{ip-xxx-xxx-xx-xxx.vpc.fakedomain.com}{jtq31eB_Td-GpnxREFytLg}{xxx-xxx-xx-xxx}{ip-xxx-xxx-xx-xxx.vpc.team.getgoing.com/xxx-xxx-xx-xxx:9300}{data=false, master=true}], id[149], master [null], hasJoinedOnce [false], cluster_name[my-ec2-elasticsearch]}, ping_response{node [{ip-xxx-xxx-xx-xxx.vpc.fakedomain.com}{jtq31eB_Td-GpnxREFytLg}{xxx-xxx-xx-xxx}{ip-xxx-xxx-xx-xxx.vpc.team.getgoing.com/xxx-xxx-xx-xxx:9300}{data=false, master=true}], id[151], master [null], hasJoinedOnce [false], cluster_name[my-ec2-elasticsearch]}, ping_response{node [{ip-xxx-xxx-xx-xxx.vpc.fakedomain.com}{jtq31eB_Td-GpnxREFytLg}{xxx-xxx-xx-xxx}{ip-xxx-xxx-xx-xxx.vpc.team.getgoing.com/xxx-xxx-xx-xxx:9300}{data=false, master=true}], id[153], master [null], hasJoinedOnce [false], cluster_name[my-ec2-elasticsearch]}, ping_response{node [{ip-xxx-xxx-xx-xxx.vpc.fakedomain.com}{jtq31eB_Td-GpnxREFytLg}{xxx-xxx-xx-xxx}{ip-xxx-xxx-xx-xxx.vpc.team.getgoing.com/xxx-xxx-xx-xxx:9300}{data=false, master=true}], id[154], master [null], hasJoinedOnce [false], cluster_name[my-ec2-elasticsearch]}] 
[2016-03-02 04:25:29,253][TRACE][discovery.zen.ping.unicast] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] [26] connecting (light) to {#zen_unicast_2#}{::1}{[::1]:9300} 
[2016-03-02 04:25:29,254][TRACE][discovery.zen.ping.unicast] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] [26] failed to connect to {#zen_unicast_1#}{127.0.0.1}{127.0.0.1:9300} 
ConnectTransportException[[][127.0.0.1:9300] connect_timeout[30s]]; nested: ConnectException[Connection refused: /127.0.0.1:9300]; 
    at ........... 

[2016-03-02 04:25:29,255][TRACE][discovery.zen.ping.unicast] [ip-xxx-xxx-xx-xxx.vpc.fakedomain.com] [26] failed to connect to {#zen_unicast_2#}{::1}{[::1]:9300} 
ConnectTransportException[[][[::1]:9300] connect_timeout[30s]]; nested: ConnectException[Connection refused: /0:0:0:0:0:0:0:1:9300]; 
    at 
+0

既然你”已禁用多播(好),你错过了单播主机列表'di scovery.zen.ping.unicast.hosts:[“a.b.c.d”]'在您的配置中。列出该列表中的所有节点。 – Val

+0

我的印象是,ec2 discovery插件会根据安全组寻找主机,并将它们视为所有潜在的集群伙伴? – mconlin

+0

您是否可以修改您的'logging.yml'文件,以便通过'discovery:TRACE'增加EC2插件的日志记录级别。它应该打印出关于发现过程的更多信息。 – Val

回答

3

您的elasticsearch.yml配置文件中一个微小的错字:

discovery: ec2 

应改为:

discovery.type: ec2