通过 自动检测 为托管在 Azure 虚拟机 和 Azure 虚拟机规模集 上的 Internet Information Server(IIS)的 ASP.NET 和 ASP.NET Core 应用程序启用 Azure MonitorApplication Insights 监控。 使用虚拟机扩展部署 Application Insights 代理。 代理 自动收集与 SDK 相同的依赖项信号。 使用 PowerShell 自动执行大规模部署。
注意
- 对于 Java 应用程序,请使用 Application Insights Java 3.0 代理,该代理 自动收集 最常用的库、框架、日志和依赖项,以及许多其他 配置。
- 在 Azure VM 和 Azure 虚拟机规模集上运行的 Node.js 和 Python 应用程序不支持自动检测。 请改用 Azure Monitor OpenTelemetry 发行版 。
- 若要监视虚拟机客户机及其上托管的应用程序,请参阅 VM 来宾数据。
有关支持的自动检测方案的完整列表,请参阅支持的环境、语言和资源提供程序。
先决条件
在安装 Application Insights 代理扩展之前,需要一个连接字符串。 创建新的 Application Insights 资源 或从现有资源复制连接字符串。
为虚拟机启用监视
可使用 Azure 门户或 PowerShell 来启用 VM 监视。
- Azure 门户
- PowerShell
instrumentationKeyMap (扩展设置)
重要
InstrumentationKeyMap 是一项高级路由功能,可将同一台计算机上的 Internet Information Services (IIS) 应用映射到 Application Insights 资源。 此功能适用于由 Application Insights 代理自动监测的 IIS 托管 ASP.NET 和 ASP.NET Core 应用。
匹配的工作原理
- 映射定义了一个名为
filters
的规则有序列表。 第一个匹配规则生效。 首先设置特定规则,然后以一个通用规则收尾。 - 每个规则都可以为匹配的应用分配不同的 Application Insights 资源。 首选受支持方案中的连接字符串,因为检测密钥是旧式的。
可用筛选器
-
MachineFilter
或machineFilter
:与计算机或虚拟机名称匹配的 C# 正则表达式。.*
匹配所有名称。 -
AppFilter
或appFilter
:与 IIS 站点名称 () 匹配的 C# 正则表达式。HostingEnvironment.SiteName
如果VirtualPathFilter
或virtualPathFilter
未提供,则需要此筛选器。 -
VirtualPathFilter
或virtualPathFilter
:与 IIS 虚拟路径 () 匹配的 C# 正则表达式。HostingEnvironment.ApplicationVirtualPath
使用此筛选器以网站下的单个应用为目标。
术语映射
- PowerShell cmdlet 使用
MachineFilter
、AppFilter
和VirtualPathFilter
。 - Azure VM 和虚拟机规模集扩展 JSON 使用
machineFilter
、appFilter
和virtualPathFilter
,并使用instrumentationSettings
设置资源。
小窍门
包括与所有应用(例如 .*
)匹配的最终规则,并应用默认资源以使行为明确。
VM 和虚拟机规模集扩展的应用方向
将地图置于redfieldConfiguration.instrumentationKeyMap.filters
扩展的公共设置中(-SettingString
用于 VM,-Setting
用于虚拟机规模集)。 属性名称为驼峰式小写。 使用 instrumentationSettings.connectionString
.. 设置每个规则的目标资源。
{
"redfieldConfiguration": {
"instrumentationKeyMap": {
"filters": [
{
"machineFilter": ".*",
"appFilter": ".*",
"instrumentationSettings": {
"connectionString": "<your-APPLICATIONINSIGHTS_CONNECTION_STRING>"
}
}
]
}
}
}
为虚拟机规模集启用监视
可以使用 Azure 门户或 PowerShell 为虚拟机规模集启用监视。
- Azure 门户
- PowerShell
遵循前述用于 VM 的步骤,但需转到虚拟机规模集而不是 VM。
疑难解答
使用这些关于 Application Insights Monitoring Agent 扩展程序的故障排除提示。 这些提示适用于 Azure 虚拟机和 Azure 虚拟机规模集上的 .NET 应用程序。
如果在部署扩展时遇到问题,请查看扩展记录在以下目录中的文件中的执行输出日志:
C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.ApplicationMonitoringWindows\<version>\
如果扩展已成功部署,但你看不到遥测数据,则可能发生了代理故障排除中介绍的以下问题之一:
- 应用的 bin 文件夹中的动态链接库(DLL)冲突
- 与 IIS 共享配置冲突
测试应用程序主机与引入服务之间的连接性
Application Insights SDK 和代理会发送遥测,以将其作为 REST 调用引入到终结点。 可以使用原始 REST 客户端通过 PowerShell 或使用 curl 命令,测试从 Web 服务器或应用程序主机计算机到引入服务终结点的连接。 请参阅排查 Azure Monitor Application Insights 中应用程序遥测数据缺失的问题。
发行说明
2.8.44
- 已将 Application Insights .NET/.NET Core SDK 更新为 2.20.1 - 红色字段。
- 启用了 SQL 查询集合。
- 已启用对 Microsoft Entra 身份验证的支持。
2.8.42
已将 Application Insights .NET/.NET Core SDK 更新到 2.18.1 - 红色字段。
2.8.41
添加了 ASP.NET Core 自动检测功能。
后续步骤
- 若要查看常见问题解答(常见问题解答),请参阅 适用于 Azure VM 和虚拟机规模集的 Application Insights 常见问题解答
- 在虚拟机规模集上部署应用程序。
- Application Insights 可用性测试
- 监视 VM 来宾数据