设置 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 discovery 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