98 lines
3.0 KiB
Markdown
98 lines
3.0 KiB
Markdown
|
---
|
|||
|
mapped_pages:
|
|||
|
- https://www.elastic.co/guide/en/elasticsearch/plugins/current/discovery-azure-classic-usage.html
|
|||
|
---
|
|||
|
|
|||
|
# Azure Virtual Machine discovery [discovery-azure-classic-usage]
|
|||
|
|
|||
|
Azure VM discovery allows to use the Azure APIs to perform automatic discovery. Here is a simple sample configuration:
|
|||
|
|
|||
|
```yaml
|
|||
|
cloud:
|
|||
|
azure:
|
|||
|
management:
|
|||
|
subscription.id: XXX-XXX-XXX-XXX
|
|||
|
cloud.service.name: es-demo-app
|
|||
|
keystore:
|
|||
|
path: /path/to/azurekeystore.pkcs12
|
|||
|
password: WHATEVER
|
|||
|
type: pkcs12
|
|||
|
|
|||
|
discovery:
|
|||
|
seed_providers: azure
|
|||
|
```
|
|||
|
|
|||
|
::::{admonition} Binding the network host
|
|||
|
:class: important
|
|||
|
|
|||
|
The keystore file must be placed in a directory accessible by Elasticsearch like the `config` directory.
|
|||
|
|
|||
|
It’s important to define `network.host` as by default it’s bound to `localhost`.
|
|||
|
|
|||
|
You can use [core network host settings](/reference/elasticsearch/configuration-reference/networking-settings.md). For example `_en0_`.
|
|||
|
|
|||
|
::::
|
|||
|
|
|||
|
|
|||
|
## How to start (short story) [discovery-azure-classic-short]
|
|||
|
|
|||
|
* Create Azure instances
|
|||
|
* Install Elasticsearch
|
|||
|
* Install Azure plugin
|
|||
|
* Modify `elasticsearch.yml` file
|
|||
|
* Start Elasticsearch
|
|||
|
|
|||
|
|
|||
|
## Azure credential API settings [discovery-azure-classic-settings]
|
|||
|
|
|||
|
The following are a list of settings that can further control the credential API:
|
|||
|
|
|||
|
`cloud.azure.management.keystore.path`
|
|||
|
: /path/to/keystore
|
|||
|
|
|||
|
`cloud.azure.management.keystore.type`
|
|||
|
: `pkcs12`, `jceks` or `jks`. Defaults to `pkcs12`.
|
|||
|
|
|||
|
`cloud.azure.management.keystore.password`
|
|||
|
: your_password for the keystore
|
|||
|
|
|||
|
`cloud.azure.management.subscription.id`
|
|||
|
: your_azure_subscription_id
|
|||
|
|
|||
|
`cloud.azure.management.cloud.service.name`
|
|||
|
: your_azure_cloud_service_name. This is the cloud service name/DNS but without the `cloudapp.net` part. So if the DNS name is `abc.cloudapp.net` then the `cloud.service.name` to use is just `abc`.
|
|||
|
|
|||
|
|
|||
|
## Advanced settings [discovery-azure-classic-settings-advanced]
|
|||
|
|
|||
|
The following are a list of settings that can further control the discovery:
|
|||
|
|
|||
|
`discovery.azure.host.type`
|
|||
|
: Either `public_ip` or `private_ip` (default). Azure discovery will use the one you set to ping other nodes.
|
|||
|
|
|||
|
`discovery.azure.endpoint.name`
|
|||
|
: When using `public_ip` this setting is used to identify the endpoint name used to forward requests to Elasticsearch (aka transport port name). Defaults to `elasticsearch`. In Azure management console, you could define an endpoint `elasticsearch` forwarding for example requests on public IP on port 8100 to the virtual machine on port 9300.
|
|||
|
|
|||
|
`discovery.azure.deployment.name`
|
|||
|
: Deployment name if any. Defaults to the value set with `cloud.azure.management.cloud.service.name`.
|
|||
|
|
|||
|
`discovery.azure.deployment.slot`
|
|||
|
: Either `staging` or `production` (default).
|
|||
|
|
|||
|
For example:
|
|||
|
|
|||
|
```yaml
|
|||
|
discovery:
|
|||
|
type: azure
|
|||
|
azure:
|
|||
|
host:
|
|||
|
type: private_ip
|
|||
|
endpoint:
|
|||
|
name: elasticsearch
|
|||
|
deployment:
|
|||
|
name: your_azure_cloud_service_name
|
|||
|
slot: production
|
|||
|
```
|
|||
|
|
|||
|
|