elasticsearch - 通过站点地址与 GCP 虚拟机实例交互

标签 elasticsearch google-cloud-platform virtual-machine bitnami

我在尝试访问和管理 GCP 中的虚拟机实例时遇到问题。
基本上,大约两年前,我创建了一个需要 elasticsearch 的项目。我通过谷歌云平台实现了这个模块,使用的是:“Elasticsearch Certified by Bitnami”。
通过访问站点地址,并使用 GCP 提供的凭据,我能够通过直接使用带有站点地址的插件(使用链接 http://35.xxx.xx.xxx//elasticsearch/... 的 POST、PUT 和 GET 命令)来完成我需要的一切。
这工作得很好,但是,我停止了网站上的功能一段时间,现在我需要再次使用它,按照相同的步骤操作不起作用,因为 GCP 不再提供网站地址来访问或与之交互像我以前那样做虚拟机。
我认为这与 Bitnami 直接有关,但是在他们的支持网站上有一个类似的问题
他们的一位工程师回答似乎指向谷歌作为这种变化的来源:https://community.bitnami.com/t/no-more-site-address-gcp-wordpress/52133 (在我的情况下是一个 Elasticsearch 实例而不是一个 wordpress 实例)。
保留静态 ip 并将其插入以前的链接格式也不起作用。 (http://external-IP//elasticsearch/...)
所以我的问题是:现在有没有一种方法可以像以前一样与虚拟机交互?如果是这样,我该怎么做,我应该使用什么地址?如果不可能,我如何与 VM 实例交互以分配映射并直接发送查询?
(如有必要,我发现有人做了与我之前做的类似的实现,所以你可以了解我在寻找什么:https://www.youtube.com/watch?v=Wv2EoMQ-5vQ)
谢谢你的时间。

最佳答案

您无法访问 Elasticsearch 实例可能有多种原因。

  • 验证 Elasticsearch 是否正在运行 sudo /opt/bitnami/ctlscript.sh status
  • GCP Firewall设置 - 默认情况下 API 适用于 9200,因此请确保它已打开(您的端口可能不同,但我在此示例中使用了默认端口):
  • $ gcloud compute firewall-rules list | grep 9200
    elasticsearch                       default  INGRESS    1000      tcp:22,tcp:9200,tcp:9300,tcp:9600        False
    
  • VM 的防火墙设置 - 检查 sudo iptables -L并验证是否没有规则阻止 Elasticsearch 端口。

  • 此外,如果您的 Elasticsearch 最近更新了配置,则配置可能已更改(但目前只是猜测)并且可能是原因。
    但是 - 如果您的实例一切正常,您应该可以通过键入 http://my_vm_external_ip:9200 来访问它。你应该得到一个 API 响应:
      "name" : "elasticsearch-1-vm",
      "cluster_name" : "bnCluster",
      "cluster_uuid" : "0q4a-ouNQ0OechAIXz1S0g",
      "version" : {
        "number" : "7.8.0",
        "build_flavor" : "oss",
        "build_type" : "tar",
        "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
        "build_date" : "2020-06-14T19:35:50.234439Z",
        "build_snapshot" : false,
        "lucene_version" : "8.5.1",
        "minimum_wire_compatibility_version" : "6.8.0",
        "minimum_index_compatibility_version" : "6.0.0-beta1"
      },
      "tagline" : "You Know, for Search"
    }
    
    为了确保这是一个可行的解决方案,我刚刚部署了 "Elasticsearch by Bitnami" from marketplace.然后我创建了一个防火墙规则:gcloud compute --project=my_project firewall-rules create elasticsearch --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:22,tcp:9200,tcp:9300,tcp:9600 --source-ranges=0.0.0.0/0 --target-tags=elasticsearch-1-deployment我用了--target-tags=elasticsearch-1-deployment部署为运行 Elasticsearch 的虚拟机创建的标签 - 您可以使用不同的标签或根本不使用标签 - 这只是一个示例。
    该文档也可能对您有所帮助https://docs.bitnami.com/google/faq/administration/use-firewall/

    关于elasticsearch - 通过站点地址与 GCP 虚拟机实例交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62948565/

    相关文章:

    elasticsearch - 如何获取 ElasticSearch 集群配置

    elasticsearch - 错误429 [type = reduce_search_phase_exception]

    api - 使用Google Vision进行OCR的正确方法是什么

    google-cloud-platform - Google Stackdriver - 如何在一个 View 中显示多个容器的日志?

    virtual-machine - Windows Vista 虚拟机错误 : VMware Tools are not running in the guest

    azure - 实现 Azure 执行模拟软件的策略建议

    vagrant - 如何使用 https 共享 vagrant 机器

    elasticsearch - 如何在 Elasticsearch 中键入字段时为搜索添加模糊性?

    elasticsearch - 我可以使用过滤器注释Elasticsearch中的匹配项吗

    google-cloud-platform - 在 dataproc 上提交 Presto 作业