如何用Azure Monitor Application Insights Agent仅针对指定本地站点埋点
问题:Azure Monitor Application Insights Agent 配置异常
我在本地机器上配置Azure Monitor Application Insights Agent,已在Azure门户创建Application Insights资源。
执行启用监控的命令:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force Enable-ApplicationInsightsMonitoring -ConnectionString 'InstrumentationKey=00000000-0000-0000-0000-000000000123;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/'
但发现只有本地运行的Azure生产环境应用(website1.local)被埋点,目标站点website2.local未被埋点,通过Get-ApplicationInsightsMonitoringStatus命令确认了这个状态。
之后尝试用以下命令仅针对website2.local埋点,既没实现仅对该站点埋点的预期,也没成功埋点这个站点:
Enable-ApplicationInsightsMonitoring -InstrumentationKeyMap @( @{ MachineFilter='.*'; AppFilter='website2.local'; InstrumentationSettings=@{ InstrumentationKey='00000000-0000-0000-0000-000000000123' } } )
我使用的是.NET Framework + MVC应用,是否需要在应用层面额外配置?
解决方案
1. 修正AppFilter匹配规则
AppFilter匹配的是IIS站点的准确名称,不是自定义域名(如website2.local)。先在IIS管理器中确认目标站点的实际名称,再修改正则表达式,比如用^站点名称$实现精确匹配,避免误匹配其他站点。
2. 重置配置后重新执行定向埋点
原有全局配置可能残留干扰,先清理再重新配置:
# 禁用现有监控 Disable-ApplicationInsightsMonitoring # 重新配置仅目标站点埋点 Enable-ApplicationInsightsMonitoring -InstrumentationKeyMap @( @{ MachineFilter='.*'; AppFilter='^你的目标站点名称$'; # 替换为IIS中website2的真实名称 InstrumentationSettings=@{ InstrumentationKey='00000000-0000-0000-0000-000000000123' } } )
3. .NET Framework MVC应用的必要检查
- 确认应用的.NET Framework版本≥4.6.2:低于该版本的应用无法被Agent自动检测,需手动添加
Microsoft.ApplicationInsights.WebNuGet包并完成基础配置。 - 检查web.config冲突:如果应用之前手动配置过Application Insights节点,需暂时注释掉这些内容,避免和Agent配置冲突,之后重启站点测试。
4. 验证配置状态
执行Get-ApplicationInsightsMonitoringStatus命令,查看:
Instrumented Sites列表是否包含目标站点Agent Status是否为Running
如果未生效,重启IIS服务后再次验证。
内容的提问来源于stack exchange,提问作者code2018
相关产品推荐
相关产品推荐

