Gcloud VM上的elasticsearch设置失败

时间:2019-05-07 08:37:24

标签: elasticsearch virtual-machine gcloud

我希望在gcloud VM上远程运行我的elasticsearch,它配置为在127.0.0.1的特定端口9200上运行。如何从该VM外部的网站访问它?如果我将yml文件上的网络主机更改为0.0.0.0,那么即使9200端口也无法访问。我该如何克服这个问题?

Changed network.host: [_site_ , _local_ , _global_ ]
_site_ = internal ip given by google cloud vm, 
_local_ = 127.0.0.1, 
_global_ = found using curl ifconfig.me, 
Opened a specific port (9200) and tried to connect with global IP address.

curl to the global ip gives 
>Output: Failed to connect to (_global_ ip) port 9200: connection refused.

3 个答案:

答案 0 :(得分:0)

因此,放入network.host:0.0.0.0,然后尝试允许9200和9201端口并重新启动elasticsearch服务。如果您使用的是ubuntu,则sudo service elasticsearch restart,然后通过执行curl -XGET 'http://localhost:9200?pretty'进行检查。知道您是否仍然遇到任何问题。

答案 1 :(得分:0)

elasticsearch.yml使用以下配置

network.host: 0.0.0.0
action.auto_create_index: false
index.mapper.dynamic: false

答案 2 :(得分:0)

通过浏览日志解决了此问题,发现公用ip地址已重新映射到内部ip地址,因此无法将network.host直接设置为外部ip。 Elasticsearch yml配置如下:

  1. “ network.host:xx.xx.xxx.xx” 设置为内部ip(由Google提供)
  2. “ http.cors.enabled:是”
  3. 'http.cors.allow-origin:“ *” ,(请勿在生产中使用*,这是一个安全问题)
  4. “ discovery.type:单节点” ,以使其独立工作而不是在集群中工作

现在,可以使用Google提供的外部IP地址从VM外部访问此沙盒版本。