1

我在Azure上运行了一个网站(Web App)(example.azurewebsites.net),我想在我的Asp.Net MVC解决方案中使用NEST(http://nest.azurewebsites.net)。在本地它工作正常,但是当它发布到Azure时,我无法获得与elasticsearch的连接。因为我没有找到任何有用的教程,我混合在一起。如何在Azure中使用NEST/elasticsearch?

首先,我创建了一个虚拟网络,就像这里在步骤1中描述的那样:我称之为VirtualNetwork并获得了网关IP地址。它显示我有1个客户端已连接。

然后我创建了一个虚拟机,如下所述:http://code972.com/blog/2014/07/74-the-definitive-guide-for-elasticsearch-on-windows-azure 我已经有了虚拟网络,所以我跳过了第一步。云服务名为example-elastic-search(example-elastic-search.cloudapp.net),我称之为虚拟机elasticsearchvm。我通过腻子连接,像所描述的配置elasticsearch,我工作正常。

Azure的最后一步是将Web应用程序连接到虚拟网络。我这样做:http://blogs.technet.com/b/canitpro/archive/2015/04/07/step-by-step-connect-an-azure-web-app-to-an-existing-virtual-network.aspx

最后我改变了我的代码使用elasticsearchvm。

new ElasticClient(new ConnectionSettings(new Uri("http://example-elastic-search.cloudapp.net"))) 

相反example-elastic-search.cloudapp.net的我也试过虚拟机(elasticsearchvm),虚拟机的内部和公网IP的名字,云服务的IP及的IP网关。所有这些与http,https,端口和没有端口(9200)。没有工作。

任何想法,我错过了什么?如果需要更多的信息,请随时询问:)

+0

我遇到了同样的问题,即Azure网站无法连接到Azure虚拟网络上的虚拟机。在花费数小时与Microsoft支持尝试调试它们之后,他们建议删除所有内容并重新开始。不要说你的情况是一样的,只是有时候这种设置会以不可修复的方式破坏。 – Frans

+2

当然,我假设你已经在vm本身的防火墙上打开了适当的端口? – Frans

+0

我在VM中安装了nmap,端口9200已经打开。我认为在安装elasticsearch时发生这种情况... – Michael

回答

0

我意识到这不是直接回答你的问题,但我认为这对于未来发现这个问题的人来说是有用的。在Azure上启动和运行Elasticsearch的最简单方法是使用Elastic's ARM template; I wrote a blog post about some of the features available within the template.

可以从门户网站UI或使用Azure CLI部署模板;前者适合入门和玩耍,后者可将模板集成到您选择的自动化环境中。您当然可以克隆/分叉存储库并对模板进行更改以适应您的要求。

将Elasticsearch添加到现有Web应用程序时,可以将已部署的群集连接到同一位置的现有虚拟网络;你只需要指定

  • 网络
  • 子网
  • 包含网络
  • 可用的IP地址以用于内部负载平衡器的资源组的名称的名称的名称

您需要在网络上为您正在部署的群集提供足够的可用IP地址。

相关问题