设置 GCE 发现

编辑

先决条件

编辑

开始之前,你需要

如果尚未设置,你可以定义你将使用的默认项目

gcloud config set project es-cloud

登录 Google Cloud

编辑

如果你尚未登录,请登录 Google Cloud

gcloud auth login

这将打开你的浏览器。你将被要求登录 Google 帐户并授权访问 Google Cloud SDK。

创建你的第一个实例

编辑
gcloud compute instances create myesnode1 \
       --zone <your-zone> \
       --scopes compute-rw

完成后,应显示如下报告

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

现在你可以连接到你的实例

# 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

服务帐户权限

创建实例时设置正确的权限非常重要。至少,你必须确保拥有

scopes=compute-rw

未能设置此项将在启动 Elasticsearch 时导致未授权消息。请参阅 机器权限

连接后,安装 Elasticsearch

安装 Elasticsearch 发现 gce 插件

编辑

安装插件

# Use Plugin Manager to install it
sudo bin/elasticsearch-plugin install discovery-gce

打开 elasticsearch.yml 文件

sudo vi /etc/elasticsearch/elasticsearch.yml

并添加以下行

cloud:
  gce:
      project_id: es-cloud
      zone: europe-west1-a
discovery:
      seed_providers: gce

启动 Elasticsearch

sudo systemctl start elasticsearch

如果出现任何问题,你应检查日志

tail -f /var/log/elasticsearch/elasticsearch.log

如果需要,你可以通过打开 log4j2.properties 将日志级别更改为 trace

sudo vi /etc/elasticsearch/log4j2.properties

并添加以下行

# discovery
logger.discovery_gce.name = discovery.gce
logger.discovery_gce.level = trace