EC2 Discovery

I have two identically configured Elastic Search nodes embedded in a web app
which is deployed to two different EC2 nodes. However the EC2 servers do not
discover each other.

This gist includes the log files and the ES discovery Http results. I see
both servers in the resulting DescribeInstances logs, but something must be
keeping ES from associating them?

The gist also begins with a dump of all the ES properties I am using.

Anyone see anything?

Looking at this line:

[Lorelei II] Bound to address [/fe80:0:0:0:1031:38ff:fe0d:a457:9310]

Looks like you're binding to ipv6 address, but the addresses you're getting
back from EC2 are ipv4:

[Lorelei II] using dynamic discovery nodes
[[#cloud-i-5f37ca31-0][inet[/10.124.135.165:9310]],
[#cloud-i-cfd02ea1-0][inet[/10.124.243.93:9310]]]

So that you get no ping responses back for the ipv4 addresses:

[Lorelei II] ping responses: {none}

I think you may need to set your host correctly in the config.

On Tue, May 17, 2011 at 8:04 PM, James Cook jcook@tracermedia.com wrote:

I have two identically configured Elastic Search nodes embedded in a web
app which is deployed to two different EC2 nodes. However the EC2 servers do
not discover each other.

This gist includes the log files and the ES discovery Http results. I see
both servers in the resulting DescribeInstances logs, but something must be
keeping ES from associating them?
977123’s gists · GitHub

The gist also begins with a dump of all the ES properties I am using.

Anyone see anything?

--

Paul Loy
paul@keteracel.com
http://uk.linkedin.com/in/paulloy

Good catch Paul, I also think that might be the issue. Note in the network page you can set descriptive names like en0:ipv4 so you won't have to set it explicitly for each node.
On Tuesday, May 17, 2011 at 10:44 PM, Paul Loy wrote:

Looking at this line:

[Lorelei II] Bound to address [/fe80:0:0:0:1031:38ff:fe0d:a457:9310]

Looks like you're binding to ipv6 address, but the addresses you're getting back from EC2 are ipv4:

[Lorelei II] using dynamic discovery nodes [[#cloud-i-5f37ca31-0][inet[/10.124.135.165:9310]], [#cloud-i-cfd02ea1-0][inet[/10.124.243.93:9310]]]
So that you get no ping responses back for the ipv4 addresses:

[Lorelei II] ping responses: {none}
I think you may need to set your host correctly in the config.

On Tue, May 17, 2011 at 8:04 PM, James Cook jcook@tracermedia.com wrote:

I have two identically configured Elastic Search nodes embedded in a web app which is deployed to two different EC2 nodes. However the EC2 servers do not discover each other.

This gist includes the log files and the ES discovery Http results. I see both servers in the resulting DescribeInstances logs, but something must be keeping ES from associating them?
977123’s gists · GitHub

The gist also begins with a dump of all the ES properties I am using.

Anyone see anything?

--

Paul Loy
paul@keteracel.com
http://uk.linkedin.com/in/paulloy

This is Amazon EC2, so would it be better to use non_loopback:ipv4?

*-- jim
*

On Tue, May 17, 2011 at 4:35 PM, Shay Banon shay.banon@elasticsearch.comwrote:

Good catch Paul, I also think that might be the issue. Note in the
network page you can set descriptive names like en0:ipv4 so you won't have
to set it explicitly for each node.

On Tuesday, May 17, 2011 at 10:44 PM, Paul Loy wrote:

Looking at this line:

[Lorelei II] Bound to address [/fe80:0:0:0:1031:38ff:fe0d:a457:9310]

Looks like you're binding to ipv6 address, but the addresses you're getting
back from EC2 are ipv4:

[Lorelei II] using dynamic discovery nodes [[#cloud-i-5f37ca31-0][inet[/10.124.135.165:9310]], [#cloud-i-cfd02ea1-0][inet[/10.124.243.93:9310]]]

So that you get no ping responses back for the ipv4 addresses:

[Lorelei II] ping responses: {none}

I think you may need to set your host correctly in the config.

On Tue, May 17, 2011 at 8:04 PM, James Cook jcook@tracermedia.com wrote:

I have two identically configured Elastic Search nodes embedded in a web
app which is deployed to two different EC2 nodes. However the EC2 servers do
not discover each other.

This gist includes the log files and the ES discovery Http results. I see
both servers in the resulting DescribeInstances logs, but something must be
keeping ES from associating them?
977123’s gists · GitHub

The gist also begins with a dump of all the ES properties I am using.

Anyone see anything?

--

Paul Loy
paul@keteracel.com
http://uk.linkedin.com/in/paulloy

You want it to use the private ip address, so it depends which one the non loopback will be picked up.
On Tuesday, May 17, 2011 at 11:58 PM, James Cook wrote:

This is Amazon EC2, so would it be better to use non_loopback:ipv4?

-- jim

On Tue, May 17, 2011 at 4:35 PM, Shay Banon shay.banon@elasticsearch.com wrote:

Good catch Paul, I also think that might be the issue. Note in the network page you can set descriptive names like en0:ipv4 so you won't have to set it explicitly for each node.
On Tuesday, May 17, 2011 at 10:44 PM, Paul Loy wrote:

Looking at this line:

[Lorelei II] Bound to address [/fe80:0:0:0:1031:38ff:fe0d:a457:9310]

Looks like you're binding to ipv6 address, but the addresses you're getting back from EC2 are ipv4:

[Lorelei II] using dynamic discovery nodes [[#cloud-i-5f37ca31-0][inet[/10.124.135.165:9310]], [#cloud-i-cfd02ea1-0][inet[/10.124.243.93:9310]]]
So that you get no ping responses back for the ipv4 addresses:

[Lorelei II] ping responses: {none}
I think you may need to set your host correctly in the config.

On Tue, May 17, 2011 at 8:04 PM, James Cook jcook@tracermedia.com wrote:

I have two identically configured Elastic Search nodes embedded in a web app which is deployed to two different EC2 nodes. However the EC2 servers do not discover each other.

This gist includes the log files and the ES discovery Http results. I see both servers in the resulting DescribeInstances logs, but something must be keeping ES from associating them?
977123’s gists · GitHub

The gist also begins with a dump of all the ES properties I am using.

Anyone see anything?

--

Paul Loy
paul@keteracel.com
http://uk.linkedin.com/in/paulloy

Shay,

could an enhancement to the cloud module also set your tcp host to the
private ipv4 and your http host to the public dns using

http://169.254.169.254/latest/meta-data/XXX

as this is what the cloud discovery is expecting.

These could still, of course, be overidded in conf.

If you like, that sounds like something I could possibly contrib (with a few
pointers from you as to where it's best to hook it in).

Cheers,

Paul.

On Tue, May 17, 2011 at 10:00 PM, Shay Banon
shay.banon@elasticsearch.comwrote:

You want it to use the private ip address, so it depends which one the non
loopback will be picked up.

On Tuesday, May 17, 2011 at 11:58 PM, James Cook wrote:

This is Amazon EC2, so would it be better to use non_loopback:ipv4?

*-- jim
*

On Tue, May 17, 2011 at 4:35 PM, Shay Banon shay.banon@elasticsearch.comwrote:

Good catch Paul, I also think that might be the issue. Note in the
network page you can set descriptive names like en0:ipv4 so you won't have
to set it explicitly for each node.

On Tuesday, May 17, 2011 at 10:44 PM, Paul Loy wrote:

Looking at this line:

[Lorelei II] Bound to address [/fe80:0:0:0:1031:38ff:fe0d:a457:9310]

Looks like you're binding to ipv6 address, but the addresses you're getting
back from EC2 are ipv4:

[Lorelei II] using dynamic discovery nodes [[#cloud-i-5f37ca31-0][inet[/10.124.135.165:9310]], [#cloud-i-cfd02ea1-0][inet[/10.124.243.93:9310]]]

So that you get no ping responses back for the ipv4 addresses:

[Lorelei II] ping responses: {none}

I think you may need to set your host correctly in the config.

On Tue, May 17, 2011 at 8:04 PM, James Cook jcook@tracermedia.com wrote:

I have two identically configured Elastic Search nodes embedded in a web
app which is deployed to two different EC2 nodes. However the EC2 servers do
not discover each other.

This gist includes the log files and the ES discovery Http results. I see
both servers in the resulting DescribeInstances logs, but something must be
keeping ES from associating them?
977123’s gists · GitHub

The gist also begins with a dump of all the ES properties I am using.

Anyone see anything?

--

Paul Loy
paul@keteracel.com
http://uk.linkedin.com/in/paulloy

--

Paul Loy
paul@keteracel.com
http://uk.linkedin.com/in/paulloy

Yea, sounds like a good enhancement!. Happy for the contrib.

And now that you are going to contribute :slight_smile: :

I am not sure defaulting HTTP to the public IP is a good default. And, in terms of implementation, it can get a bit tricky, but once you are up to it, we can discuss how best to implement it.
On Wednesday, May 18, 2011 at 12:06 AM, Paul Loy wrote:

Shay,

could an enhancement to the cloud module also set your tcp host to the private ipv4 and your http host to the public dns using
http://169.254.169.254/latest/meta-data/XXX
as this is what the cloud discovery is expecting.

These could still, of course, be overidded in conf.

If you like, that sounds like something I could possibly contrib (with a few pointers from you as to where it's best to hook it in).

Cheers,

Paul.

On Tue, May 17, 2011 at 10:00 PM, Shay Banon shay.banon@elasticsearch.com wrote:

You want it to use the private ip address, so it depends which one the non loopback will be picked up.
On Tuesday, May 17, 2011 at 11:58 PM, James Cook wrote:

This is Amazon EC2, so would it be better to use non_loopback:ipv4?

-- jim

On Tue, May 17, 2011 at 4:35 PM, Shay Banon shay.banon@elasticsearch.com wrote:

Good catch Paul, I also think that might be the issue. Note in the network page you can set descriptive names like en0:ipv4 so you won't have to set it explicitly for each node.
On Tuesday, May 17, 2011 at 10:44 PM, Paul Loy wrote:

Looking at this line:

[Lorelei II] Bound to address [/fe80:0:0:0:1031:38ff:fe0d:a457:9310]

Looks like you're binding to ipv6 address, but the addresses you're getting back from EC2 are ipv4:

[Lorelei II] using dynamic discovery nodes [[#cloud-i-5f37ca31-0][inet[/10.124.135.165:9310]], [#cloud-i-cfd02ea1-0][inet[/10.124.243.93:9310]]]
So that you get no ping responses back for the ipv4 addresses:

[Lorelei II] ping responses: {none}
I think you may need to set your host correctly in the config.

On Tue, May 17, 2011 at 8:04 PM, James Cook jcook@tracermedia.com wrote:

I have two identically configured Elastic Search nodes embedded in a web app which is deployed to two different EC2 nodes. However the EC2 servers do not discover each other.

This gist includes the log files and the ES discovery Http results. I see both servers in the resulting DescribeInstances logs, but something must be keeping ES from associating them?
977123’s gists · GitHub

The gist also begins with a dump of all the ES properties I am using.

Anyone see anything?

--

Paul Loy
paul@keteracel.com
http://uk.linkedin.com/in/paulloy

--

Paul Loy
paul@keteracel.com
http://uk.linkedin.com/in/paulloy

Cool, I'll start a ticket and we can discuss there.

On Tue, May 17, 2011 at 2:09 PM, Shay Banon shay.banon@elasticsearch.comwrote:

Yea, sounds like a good enhancement!. Happy for the contrib.

And now that you are going to contribute :slight_smile: :

I am not sure defaulting HTTP to the public IP is a good default. And, in
terms of implementation, it can get a bit tricky, but once you are up to it,
we can discuss how best to implement it.

On Wednesday, May 18, 2011 at 12:06 AM, Paul Loy wrote:

Shay,

could an enhancement to the cloud module also set your tcp host to the
private ipv4 and your http host to the public dns using

http://169.254.169.254/latest/meta-data/XXX

as this is what the cloud discovery is expecting.

These could still, of course, be overidded in conf.

If you like, that sounds like something I could possibly contrib (with a
few pointers from you as to where it's best to hook it in).

Cheers,

Paul.

On Tue, May 17, 2011 at 10:00 PM, Shay Banon <shay.banon@elasticsearch.com

wrote:

You want it to use the private ip address, so it depends which one the non
loopback will be picked up.

On Tuesday, May 17, 2011 at 11:58 PM, James Cook wrote:

This is Amazon EC2, so would it be better to use non_loopback:ipv4?

*-- jim
*

On Tue, May 17, 2011 at 4:35 PM, Shay Banon shay.banon@elasticsearch.comwrote:

Good catch Paul, I also think that might be the issue. Note in the
network page you can set descriptive names like en0:ipv4 so you won't have
to set it explicitly for each node.

On Tuesday, May 17, 2011 at 10:44 PM, Paul Loy wrote:

Looking at this line:

[Lorelei II] Bound to address [/fe80:0:0:0:1031:38ff:fe0d:a457:9310]

Looks like you're binding to ipv6 address, but the addresses you're getting
back from EC2 are ipv4:

[Lorelei II] using dynamic discovery nodes [[#cloud-i-5f37ca31-0][inet[/10.124.135.165:9310]], [#cloud-i-cfd02ea1-0][inet[/10.124.243.93:9310]]]

So that you get no ping responses back for the ipv4 addresses:

[Lorelei II] ping responses: {none}

I think you may need to set your host correctly in the config.

On Tue, May 17, 2011 at 8:04 PM, James Cook jcook@tracermedia.com wrote:

I have two identically configured Elastic Search nodes embedded in a web
app which is deployed to two different EC2 nodes. However the EC2 servers do
not discover each other.

This gist includes the log files and the ES discovery Http results. I see
both servers in the resulting DescribeInstances logs, but something must be
keeping ES from associating them?
977123’s gists · GitHub

The gist also begins with a dump of all the ES properties I am using.

Anyone see anything?

--

Paul Loy
paul@keteracel.com
http://uk.linkedin.com/in/paulloy

--

Paul Loy
paul@keteracel.com
http://uk.linkedin.com/in/paulloy

--

Paul Loy
paul@keteracel.com
http://uk.linkedin.com/in/paulloy

On Tue, May 17, 2011 at 5:47 PM, Paul Loy keteracel@gmail.com wrote:

Cool, I'll start a ticket and we can discuss there.

On Tue, May 17, 2011 at 2:09 PM, Shay Banon shay.banon@elasticsearch.comwrote:

Yea, sounds like a good enhancement!. Happy for the contrib.

And now that you are going to contribute :slight_smile: :

I am not sure defaulting HTTP to the public IP is a good default. And, in
terms of implementation, it can get a bit tricky, but once you are up to it,
we can discuss how best to implement it.

On Wednesday, May 18, 2011 at 12:06 AM, Paul Loy wrote:

Shay,

could an enhancement to the cloud module also set your tcp host to the
private ipv4 and your http host to the public dns using

http://169.254.169.254/latest/meta-data/XXX

as this is what the cloud discovery is expecting.

These could still, of course, be overidded in conf.

If you like, that sounds like something I could possibly contrib (with a
few pointers from you as to where it's best to hook it in).

Cheers,

Paul.

On Tue, May 17, 2011 at 10:00 PM, Shay Banon <
shay.banon@elasticsearch.com> wrote:

You want it to use the private ip address, so it depends which one the
non loopback will be picked up.

On Tuesday, May 17, 2011 at 11:58 PM, James Cook wrote:

This is Amazon EC2, so would it be better to use non_loopback:ipv4?

*-- jim
*

On Tue, May 17, 2011 at 4:35 PM, Shay Banon <shay.banon@elasticsearch.com

wrote:

Good catch Paul, I also think that might be the issue. Note in the
network page you can set descriptive names like en0:ipv4 so you won't have
to set it explicitly for each node.

On Tuesday, May 17, 2011 at 10:44 PM, Paul Loy wrote:

Looking at this line:

[Lorelei II] Bound to address [/fe80:0:0:0:1031:38ff:fe0d:a457:9310]

Looks like you're binding to ipv6 address, but the addresses you're
getting back from EC2 are ipv4:

[Lorelei II] using dynamic discovery nodes [[#cloud-i-5f37ca31-0][inet[/10.124.135.165:9310]], [#cloud-i-cfd02ea1-0][inet[/10.124.243.93:9310]]]

So that you get no ping responses back for the ipv4 addresses:

[Lorelei II] ping responses: {none}

I think you may need to set your host correctly in the config.

On Tue, May 17, 2011 at 8:04 PM, James Cook jcook@tracermedia.comwrote:

I have two identically configured Elastic Search nodes embedded in a web
app which is deployed to two different EC2 nodes. However the EC2 servers do
not discover each other.

This gist includes the log files and the ES discovery Http results. I see
both servers in the resulting DescribeInstances logs, but something must be
keeping ES from associating them?
977123’s gists · GitHub

The gist also begins with a dump of all the ES properties I am using.

Anyone see anything?

--

Paul Loy
paul@keteracel.com
http://uk.linkedin.com/in/paulloy

--

Paul Loy
paul@keteracel.com
http://uk.linkedin.com/in/paulloy

--

Paul Loy
paul@keteracel.com
http://uk.linkedin.com/in/paulloy

--

Paul Loy
paul@keteracel.com
http://uk.linkedin.com/in/paulloy