https://github.com/github/elasticsearch-srv-discovery
Elasticsearch discovery with SRV records
https://github.com/github/elasticsearch-srv-discovery
Last synced: 5 months ago
JSON representation
Elasticsearch discovery with SRV records
- Host: GitHub
- URL: https://github.com/github/elasticsearch-srv-discovery
- Owner: github
- License: mit
- Archived: true
- Created: 2015-04-30T04:26:54.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2016-10-15T19:22:08.000Z (over 9 years ago)
- Last Synced: 2024-09-30T00:20:39.544Z (over 1 year ago)
- Language: Java
- Size: 54.7 KB
- Stars: 34
- Watchers: 276
- Forks: 33
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
SRV Discovery Plugin for Elasticsearch
======================================
Use SRV records for Elasticsearch discovery, like the ones
[Consul](https://consul.io) provides.
Looking for a plugin that uses the Consul API directly? Check out
[lithiumtech/elasticsearch-consul-discovery](https://github.com/lithiumtech/elasticsearch-consul-discovery).
## Installation
Based on the version of Elasticsearch that you're running, pick the compatible plugin version (e.g. `1.5.1`), then run this command:
```bash
bin/plugin install srv-discovery --url https://github.com/github/elasticsearch-srv-discovery/releases/download/1.5.1/elasticsearch-srv-discovery-1.5.1.zip
```
Verify that the plugin was installed:
```
$ bin/plugin -l
Installed plugins:
- srv-discovery
$ curl localhost:9200/_cat/plugins?v
name component version type url
Pluto srv-discovery ... j
```
## Compatibility
The SRV Discovery plugin is known to be compatible with these versions of Elasticsearch:
Elasticsearch|SRV Discovery plugin
---|---
1.7.3|1.5.1
1.7.2|1.5.1
1.7.1|1.5.1
1.7.0|1.5.1
1.6.2|1.5.1
1.6.1|1.5.1
1.6.0|1.5.1
1.5.2|1.5.1
1.5.1|1.5.1
1.5.0|1.5.1
## Configuration
Key|Example|Description
---|---|---
`discovery.srv.query`|`elasticsearch-9300.service.consul`|The query string to use when querying for SRV records.
`discovery.srv.servers`|`127.0.0.1:8600`|DNS Servers to contact. Can be an array or a comma-delimited string. Port numbers are optional.
`discovery.srv.protocol`|`tcp`|Which protocol to use. Options are `tcp` and `udp`. Default is `tcp`.
Note: Consul will return maximum 3 records when using UDP queries. All records are returned when using TCP.
### Simple Example
```yaml
discovery:
type: srv
srv:
query: elasticsearch-9300.service.consul
```
### Complex Example
```yaml
discovery:
type: srv
srv:
query: elasticsearch-9300.service.consul
protocol: tcp
servers:
- 127.0.0.1:8600
- 192.168.1.1
```
## Development
To see the effects of a change on a real Elasticsearch instance, build the package and install it like so:
```bash
plugin="/Users/you/elasticsearch-/bin/plugin"
name="srv-discovery"
zip="file:///Users/you/elasticsearch-srv-discovery/build/distributions/elasticsearch-srv-discovery-.zip"
gradle distZip || exit 1
$plugin remove $name
$plugin install $name --url $zip
```