Setting up GCE Discovery
editSetting up GCE Discovery
editPrerequisites
editBefore starting, you need:
-
Your project ID, e.g.
es-cloud
. Get it from Google API Console. - To install Google Cloud SDK
If you did not set it yet, you can define your default project you will work on:
gcloud config set project es-cloud
Login to Google Cloud
editIf you haven’t already, login to Google Cloud
gcloud auth login
This will open your browser. You will be asked to sign-in to a Google account and authorize access to the Google Cloud SDK.
Creating your first instance
editgcloud compute instances create myesnode1 \ --zone <your-zone> \ --scopes compute-rw
When done, a report like this one should appears:
Created [https://www.googleapis.com/compute/v1/projects/es-cloud-1070/zones/us-central1-f/instances/myesnode1]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS myesnode1 us-central1-f n1-standard-1 10.240.133.54 104.197.94.25 RUNNING
You can now connect to your instance:
# Connect using google cloud SDK gcloud compute ssh myesnode1 --zone europe-west1-a # Or using SSH with external IP address ssh -i ~/.ssh/google_compute_engine 192.158.29.199
Service Account Permissions
It’s important when creating an instance that the correct permissions are set. At a minimum, you must ensure you have:
scopes=compute-rw
Failing to set this will result in unauthorized messages when starting Elasticsearch. See Machine Permissions.
Once connected, install Elasticsearch:
sudo apt-get update # Download Elasticsearch wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-2.0.0.deb # Prepare Java installation (Oracle) sudo echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | sudo tee /etc/apt/sources.list.d/webupd8team-java.list sudo echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | sudo tee -a /etc/apt/sources.list.d/webupd8team-java.list sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886 sudo apt-get update sudo apt-get install oracle-java8-installer # Prepare Java installation (or OpenJDK) # sudo apt-get install java8-runtime-headless # Prepare Elasticsearch installation sudo dpkg -i elasticsearch-2.0.0.deb
Install Elasticsearch discovery gce plugin
editInstall the plugin:
# Use Plugin Manager to install it sudo bin/elasticsearch-plugin install discovery-gce
Open the elasticsearch.yml
file:
sudo vi /etc/elasticsearch/elasticsearch.yml
And add the following lines:
cloud: gce: project_id: es-cloud zone: europe-west1-a discovery: type: gce
Start Elasticsearch:
sudo /etc/init.d/elasticsearch start
If anything goes wrong, you should check logs:
tail -f /var/log/elasticsearch/elasticsearch.log
If needed, you can change log level to trace
by opening log4j2.properties
:
sudo vi /etc/elasticsearch/log4j2.properties
and adding the following line:
# discovery logger.discovery_gce.name = discovery.gce logger.discovery_gce.level = trace