Skip to content

Commit

Permalink
Align docs etc with new discovery setting names
Browse files Browse the repository at this point in the history
In elastic#38333 and elastic#38350 we moved away from the `discovery.zen` settings namespace
since these settings have an effect even though Zen Discovery itself is being
phased out. This change aligns the documentation and the names of related
classes and methods with the newly-introduced naming conventions.
  • Loading branch information
DaveCTurner committed Feb 6, 2019
1 parent e73c9c9 commit c014dcf
Show file tree
Hide file tree
Showing 54 changed files with 378 additions and 348 deletions.
7 changes: 4 additions & 3 deletions docs/plugins/discovery-azure-classic.asciidoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
[[discovery-azure-classic]]
=== Azure Classic Discovery Plugin

The Azure Classic Discovery plugin uses the Azure Classic API for unicast discovery.
The Azure Classic Discovery plugin uses the Azure Classic API to identify the
addresses of seed hosts.

// TODO: Link to ARM plugin when ready
// See issue https://github.com/elastic/elasticsearch/issues/19146
Expand All @@ -14,8 +15,8 @@ include::install_remove.asciidoc[]
[[discovery-azure-classic-usage]]
==== Azure Virtual Machine Discovery

Azure VM discovery allows to use the azure APIs to perform automatic discovery (similar to multicast in non hostile
multicast environments). Here is a simple sample configuration:
Azure VM discovery allows to use the azure APIs to perform automatic discovery.
Here is a simple sample configuration:

[source,yaml]
----
Expand Down
39 changes: 21 additions & 18 deletions docs/plugins/discovery-ec2.asciidoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
[[discovery-ec2]]
=== EC2 Discovery Plugin

The EC2 discovery plugin uses the https://github.com/aws/aws-sdk-java[AWS API] for unicast discovery.
The EC2 discovery plugin uses the https://github.com/aws/aws-sdk-java[AWS API]
to identify the addresses of seed hosts.

*If you are looking for a hosted solution of Elasticsearch on AWS, please visit http://www.elastic.co/cloud.*

Expand All @@ -11,12 +12,12 @@ include::install_remove.asciidoc[]
[[discovery-ec2-usage]]
==== Getting started with AWS

The plugin provides a hosts provider for zen discovery named `ec2`. This hosts
provider finds other Elasticsearch instances in EC2 through AWS metadata.
Authentication is done using
The plugin adds a seed hosts provider named `ec2`. This seed hosts provider
finds other Elasticsearch instances in EC2 by querying the AWS metadata
service. Authentication is done using
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html[IAM
Role] credentials by default. To enable the plugin, set the unicast host
provider for Zen discovery to `ec2`:
Role] credentials by default. To enable the plugin, configure {es} to use the
`ec2` seed hosts provider:

[source,yaml]
----
Expand All @@ -25,9 +26,9 @@ discovery.seed_providers: ec2

==== Settings

EC2 host discovery supports a number of settings.
Some settings are sensitive and must be stored in the {ref}/secure-settings.html[elasticsearch keystore].
For example, to use explicit AWS access keys:
EC2 discovery supports a number of settings. Some settings are sensitive and
must be stored in the {ref}/secure-settings.html[elasticsearch keystore]. For
example, to use explicit AWS access keys:

[source,sh]
----
Expand Down Expand Up @@ -184,15 +185,18 @@ Management Console. It should look similar to this.
[[discovery-ec2-filtering]]
===== Filtering by Tags

The ec2 discovery can also filter machines to include in the cluster based on tags (and not just groups). The settings
to use include the `discovery.ec2.tag.` prefix. For example, if you defined a tag `stage` in EC2 and set it to `dev`,
setting `discovery.ec2.tag.stage` to `dev` will only filter instances with a tag key set to `stage`, and a value
of `dev`. Adding multiple `discovery.ec2.tag` settings will require all of those tags to be set for the instance to be included.
The ec2 discovery plugin can also filter machines to include in the cluster
based on tags (and not just groups). The settings to use include the
`discovery.ec2.tag.` prefix. For example, if you defined a tag `stage` in EC2
and set it to `dev`, setting `discovery.ec2.tag.stage` to `dev` will only
filter instances with a tag key set to `stage`, and a value of `dev`. Adding
multiple `discovery.ec2.tag` settings will require all of those tags to be set
for the instance to be included.

One practical use for tag filtering is when an ec2 cluster contains many nodes that are not running Elasticsearch. In
this case (particularly with high `discovery.zen.ping_timeout` values) there is a risk that a new node's discovery phase
will end before it has found the cluster (which will result in it declaring itself master of a new cluster with the same
name - highly undesirable). Tagging Elasticsearch ec2 nodes and then filtering by that tag will resolve this issue.
One practical use for tag filtering is when an ec2 cluster contains many nodes
that are not master-eligible {es} nodes. In this case, tagging the ec2
instances that _are_ running the master-eligible {es} nodes, and then filtering
by that tag, will help discovery to run more efficiently.

[[discovery-ec2-attributes]]
===== Automatic Node Attributes
Expand Down Expand Up @@ -229,7 +233,6 @@ Prefer https://aws.amazon.com/amazon-linux-ami/[Amazon Linux AMIs] as since Elas

===== Networking
* Networking throttling takes place on smaller instance types in both the form of https://lab.getbase.com/how-we-discovered-limitations-on-the-aws-tcp-stack/[bandwidth and number of connections]. Therefore if large number of connections are needed and networking is becoming a bottleneck, avoid https://aws.amazon.com/ec2/instance-types/[instance types] with networking labeled as `Moderate` or `Low`.
* Multicast is not supported, even when in an VPC; the aws cloud plugin which joins by performing a security group lookup.
* When running in multiple http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html[availability zones] be sure to leverage {ref}/allocation-awareness.html[shard allocation awareness] so that not all copies of shard data reside in the same availability zone.
* Do not span a cluster across regions. If necessary, use a cross cluster search.

Expand Down
16 changes: 8 additions & 8 deletions docs/plugins/discovery-gce.asciidoc
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
[[discovery-gce]]
=== GCE Discovery Plugin

The Google Compute Engine Discovery plugin uses the GCE API for unicast discovery.
The Google Compute Engine Discovery plugin uses the GCE API to identify the
addresses of seed hosts.

:plugin_name: discovery-gce
include::install_remove.asciidoc[]

[[discovery-gce-usage]]
==== GCE Virtual Machine Discovery

Google Compute Engine VM discovery allows to use the google APIs to perform automatic discovery (similar to multicast
in non hostile multicast environments). Here is a simple sample configuration:
Google Compute Engine VM discovery allows to use the google APIs to perform
automatic discovery of seed hosts. Here is a simple sample configuration:

[source,yaml]
--------------------------------------------------
Expand Down Expand Up @@ -358,11 +359,10 @@ The GCE discovery can also filter machines to include in the cluster based on ta
For example, setting `discovery.gce.tags` to `dev` will only filter instances having a tag set to `dev`. Several tags
set will require all of those tags to be set for the instance to be included.

One practical use for tag filtering is when an GCE cluster contains many nodes that are not running
Elasticsearch. In this case (particularly with high `discovery.zen.ping_timeout` values) there is a risk that a new
node's discovery phase will end before it has found the cluster (which will result in it declaring itself master of a
new cluster with the same name - highly undesirable). Adding tag on Elasticsearch GCE nodes and then filtering by that
tag will resolve this issue.
One practical use for tag filtering is when a GCE cluster contains many nodes
that are not master-eligible {es} nodes. In this case, tagging the GCE
instances that _are_ running the master-eligible {es} nodes, and then filtering
by that tag, will help discovery to run more efficiently.

Add your tag when building the new instance:

Expand Down
17 changes: 9 additions & 8 deletions docs/plugins/discovery.asciidoc
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
[[discovery]]
== Discovery Plugins

Discovery plugins extend Elasticsearch by adding new hosts providers that can be
used to extend the {ref}/modules-discovery.html[cluster formation module].
Discovery plugins extend Elasticsearch by adding new seed hosts providers that
can be used to extend the {ref}/modules-discovery.html[cluster formation
module].

[float]
==== Core discovery plugins
Expand All @@ -12,22 +13,22 @@ The core discovery plugins are:
<<discovery-ec2,EC2 discovery>>::

The EC2 discovery plugin uses the https://github.com/aws/aws-sdk-java[AWS API]
for unicast discovery.
to identify the addresses of seed hosts.

<<discovery-azure-classic,Azure Classic discovery>>::

The Azure Classic discovery plugin uses the Azure Classic API for unicast
discovery.
The Azure Classic discovery plugin uses the Azure Classic API to identify the
addresses of seed hosts.

<<discovery-gce,GCE discovery>>::

The Google Compute Engine discovery plugin uses the GCE API for unicast
discovery.
The Google Compute Engine discovery plugin uses the GCE API to identify the
addresses of seed hosts.

[float]
==== Community contributed discovery plugins

A number of discovery plugins have been contributed by our community:
The following discovery plugins have been contributed by our community:

* https://github.com/fabric8io/elasticsearch-cloud-kubernetes[Kubernetes Discovery Plugin] (by Jimmi Dyson, http://fabric8.io[fabric8])

Expand Down
2 changes: 1 addition & 1 deletion docs/reference/migration/migrate_7_0/plugins.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ renamed to `requiresAnalysisSettings`
* This plugin has been removed since its functionality is now part of
Elasticsearch and requires no plugin. The location of the hosts file has moved
from `$ES_PATH_CONF/file-discovery/unicast_hosts.txt` to
`$ES_PATH_CONF/unicast_hosts.txt`. See <<file-based-hosts-provider, the
`$ES_PATH_CONF/unicast_hosts.txt`. See <<file-based-hosts-provider,the
file-based hosts provider documentation>> for further information.

[float]
Expand Down
31 changes: 28 additions & 3 deletions docs/reference/modules/discovery/discovery-settings.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,30 @@ Discovery and cluster formation are affected by the following settings:
considering the request to have failed. Defaults to `3s`.

`discovery.seed_providers`::
Specifies which types of <<built-in-hosts-providers,seed provider>> provide
the addresses of seed nodes. By default, it is the
<<settings-based-hosts-provider,settings-based hosts provider>>.
Specifies which types of <<built-in-hosts-providers,seed hosts provider>>
to use to obtain the addresses of the seed nodes used to start the
discovery process. By default, it is the
<<settings-based-hosts-provider,settings-based seed hosts provider>>.
This setting was previously known as `discovery.zen.hosts_provider`. Its
old name is deprecated but continues to work in order to preserve backwards
compatibility. Support for the old name will be removed in a future
version.

`discovery.seed_resolver.max_concurrent_resolvers`::
Specifies how many concurrent DNS lookups to perform when resolving the
addresses of seed nodes. Defaults to `10`. This setting was previously
known as `discovery.zen.ping.unicast.concurrent_connects`. Its old name is
deprecated but continues to work in order to preserve backwards
compatibility. Support for the old name will be removed in a future
version.

`discovery.seed_resolver.timeout`::
Specifies how long to wait for each DNS lookup performed when resolving the
addresses of seed nodes. Defaults to `5s`. This setting was previously
known as `discovery.zen.ping.unicast.hosts.resolve_timeout`. Its old name
is deprecated but continues to work in order to preserve backwards
compatibility. Support for the old name will be removed in a future
version.

[[no-master-block]]`cluster.no_master_block`::
Specifies which operations are rejected when there is no active master in a
Expand Down Expand Up @@ -169,6 +190,10 @@ earlier versions. The `discovery.zen.no_master_block` setting is ignored.
format `host:port` or `host`, where `port` defaults to the setting
`transport.profiles.default.port`. Note that IPv6 hosts must be bracketed.
The default value is `127.0.0.1, [::1]`. See <<unicast.hosts>>.
This setting was previously known as `discovery.zen.ping.unicast.hosts`.
Its old name is deprecated but continues to work in order to preserve
backwards compatibility. Support for the old name will be removed in a
future version.

`discovery.seed_resolver.timeout`::

Expand Down
Loading

0 comments on commit c014dcf

Please sign in to comment.