Azure Virtual Machine discovery
Azure VM discovery allows to use the Azure APIs to perform automatic discovery. Here is a simple sample configuration:
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
		
	
		Binding the network host
	
	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. For example _en0_.
- Create Azure instances
- Install Elasticsearch
- Install Azure plugin
- Modify elasticsearch.ymlfile
- Start Elasticsearch
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,- jceksor- 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.netpart. So if the DNS name isabc.cloudapp.netthen thecloud.service.nameto use is justabc.
The following are a list of settings that can further control the discovery:
- discovery.azure.host.type
- Either public_iporprivate_ip(default). Azure discovery will use the one you set to ping other nodes.
- discovery.azure.endpoint.name
- When using public_ipthis setting is used to identify the endpoint name used to forward requests to Elasticsearch (aka transport port name). Defaults toelasticsearch. In Azure management console, you could define an endpointelasticsearchforwarding 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 stagingorproduction(default).
For example:
discovery:
    type: azure
    azure:
        host:
            type: private_ip
        endpoint:
            name: elasticsearch
        deployment:
            name: your_azure_cloud_service_name
            slot: production