我想知道是否可以在本地连接到虚拟机上托管的Service Insight?我的意思是:
但是,我在本地安装了Service Insight,当我尝试连接到我的VM上托管的服务控件时,我不确定如何执行此操作。查看特定网站也找不到太多文档。服务控制期望一个我认为应该是http://serviceins.cloudapp.net:33333/api/
的URL,但是这个解析为空。
我的VM名称为serviceins
。
我已对ServiceControl.config进行了更改:
<appsettings>
<add key="ServiceControl/Hostname" value="serviceins.cloudapp.net"/>
<add key="ServiceControl/HoursToKeepMessagesBeforeExpiring" value="24"/>
</appsettings>
ServicePulse.config
service_control_url: 'http://serviceins.cloudapp.net:33333/api/'
我想我的问题是如何在不必远程访问VM的情况下访问Service Insight?我可以通过简单地向Service Insight提供URL来访问它吗?
谢谢,DS。
答案 0 :(得分:4)
ServiceControl没有内置的安全层,因此如果您将API URL暴露给Internet,那么任何可以连接到端口33333的人都可以访问ServiceControl中存储的所有消息。这就是默认情况下它仅限于localhost的原因。
我不能强调它不应该在生产系统上完成
对于Azure,更安全的方法是使用点到站点VPN连接之类的东西。 (参见:https://msdn.microsoft.com/en-us/library/azure/jj156206.aspx)但这可能需要进行一些重新配置。
如果您仍然希望以不安全的方式公开网址,请按以下步骤操作:
<add key="ServiceControl/HostName" value="*" />
您可以通过在cmd提示符下发出此命令来查看URLACL设置:
netsh http show urlacl
如果您有端口http://localhost:33333/api/或http://serviceins.cloudapp.net:33333/api/的现有设置,请使用以下设置删除它们:
netsh http delete urlacl URL=http://localhost:33333/api/
netsh http delete urlacl URL=http://serviceins.cloudapp.net:33333/api/
添加通配符URLACL
netsh http add urlacl URL=http://*:33333/api/ User=Users
通过show命令检查它,它应该有这样的条目
Reserved URL : http://*:33333/api/
User: BUILTIN\Users
Listen: Yes
Delegate: No
SDDL: D:(A;;GX;;;BU)
将入站规则添加到Windows防火墙。默认情况下,端口33333将被阻止传入连接。 您可以使用以下命令通过Admin Powershell执行此操作(我假设您的VM是Win2012)
New-NetFirewallRule -Name ServiceControl -Direction Inbound -Protocol TCP -LocalPort 33333 -Action Allow -Enabled True
您还需要打开Azure端点连接以允许连接到端口33333.这本质上是另一个防火墙。而不是记录下来,我会在这里向您推荐微软自己的doco:http://azure.microsoft.com/en-us/documentation/articles/virtual-machines-set-up-endpoints/
作为端点配置的一部分,您可以通过限制允许连接到端口的IP范围来添加一些安全性。这只有在您拥有静态IP时才有用。