本文說明如何透過自動偵測,在 Azure 虛擬機器 和 Azure 虛擬機器擴展集 上,啟用由 IIS 裝載的 ASP.NET 和 ASP.NET Core 應用程式的 Azure 監視器Application Insights 監控。 其涵蓋如何使用虛擬機擴充功能來部署Application Insights代理程式,其 會自動收集與SDK相同的相依性訊號,並提供使用PowerShell將大規模部署自動化的指引。
如需支援自動檢測案例的完整清單,請參閱支援的環境、語言和資源提供者。
先決條件
安裝 Application Insights 代理程式擴充功能之前,您需要連接字串。
建立新的 Application Insights 資源 ,或從現有的資源複製連接字串。
為虛擬機器啟用監視功能
您可以使用 Azure 入口網站或 PowerShell,以啟用對 VM 的監視。
在 Azure 入口網站中,移至您的 Application Insights 資源。 將連接字串複製到剪貼簿。
移至虛擬機器。 在左側功能表中的 [設定] 區段下,選取 [延伸模組 + 應用程式]> [新增]。
選取 [Application Insights 代理程式]> [下一步]。
貼上您在步驟 1 中複製的連接字串,然後選取 [檢閱 + 建立]。
安裝或更新 Application Insights 代理程式作為 Azure 虛擬機器的擴充功能:
# define variables to match your environment before running
$ResourceGroup = "<myVmResourceGroup>"
$VMName = "<myVmName>"
$Location = "<myVmLocation>"
$ConnectionString = "<myAppInsightsResourceConnectionString>"
$publicCfgJsonString = @"
{
"redfieldConfiguration": {
"instrumentationKeyMap": {
"filters": [
{
"appFilter": ".*",
"machineFilter": ".*",
"virtualPathFilter": ".*",
"instrumentationSettings" : {
"connectionString": "$ConnectionString"
}
}
]
}
}
}
"@
$privateCfgJsonString = '{}'
Set-AzVMExtension -ResourceGroupName $ResourceGroup -VMName $VMName -Location $Location -Name "ApplicationMonitoringWindows" -Publisher "Microsoft.Azure.Diagnostics" -Type "ApplicationMonitoringWindows" -Version "2.8" -SettingString $publicCfgJsonString -ProtectedSettingString $privateCfgJsonString
注意
如需更複雜的大規模部署,您可以使用 PowerShell 迴圈,跨多個 VM 安裝或更新 Application Insights 代理程式延伸模組。
查詢 Azure 虛擬機器的 Application Insights 代理程式延伸模組狀態:
Get-AzVMExtension -ResourceGroupName "<myVmResourceGroup>" -VMName "<myVmName>" -Name ApplicationMonitoringWindows -Status
取得 Azure 虛擬機器已安裝的延伸模組清單:
Get-AzResource -ResourceId "/subscriptions/<mySubscriptionId>/resourceGroups/<myVmResourceGroup>/providers/Microsoft.Compute/virtualMachines/<myVmName>/extensions"
從 Azure 虛擬機器解除安裝 Application Insights 代理程式延伸模組:
Remove-AzVMExtension -ResourceGroupName "<myVmResourceGroup>" -VMName "<myVmName>" -Name "ApplicationMonitoring"
注意
選取與用來部署 Application Insights 代理程式延伸模組的連接字串相關聯的 Application Insights 資源即時計量資料流,以驗證安裝。 如果您想從數個虛擬機器傳送資料,請在 [伺服器名稱] 底下選取目標 Azure 虛擬機器。 可能需要一分鐘,資料才會開始流動。
啟用虛擬機器擴展集的監視功能
您可以使用 Azure 入口網站或 PowerShell,以啟用對虛擬機器擴展集的監視功能。
遵循適用於 VM 的先前步驟,但請移至虛擬機器擴展集 (而不是 VM)。
安裝或更新 Application Insights 代理程式作為虛擬機器擴展集的延伸模組:
# Set resource group, vmss name, and connection string to reflect your environment
$ResourceGroup = "<myVmResourceGroup>"
$VMSSName = "<myVmName>"
$ConnectionString = "<myAppInsightsResourceConnectionString>"
$publicCfgHashtable =
@{
"redfieldConfiguration"= @{
"instrumentationKeyMap"= @{
"filters"= @(
@{
"appFilter"= ".*";
"machineFilter"= ".*";
"virtualPathFilter"= ".*";
"instrumentationSettings" = @{
"connectionString"= "$ConnectionString"
}
}
)
}
}
};
$privateCfgHashtable = @{};
$vmss = Get-AzVmss -ResourceGroupName $ResourceGroup -VMScaleSetName $VMSSName
Add-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "ApplicationMonitoringWindows" -Publisher "Microsoft.Azure.Diagnostics" -Type "ApplicationMonitoringWindows" -TypeHandlerVersion "2.8" -Setting $publicCfgHashtable -ProtectedSetting $privateCfgHashtable
Update-AzVmss -ResourceGroupName $vmss.ResourceGroupName -Name $vmss
# Note: Depending on your update policy, you might need to run Update-AzVmssInstance for each instance
取得虛擬機器擴展集已安裝的延伸模組清單
Get-AzResource -ResourceId "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.Compute/virtualMachineScaleSets/<myVmssName>/extensions"
從虛擬機器擴展集解除安裝應用程式監視延伸模組
# set resource group and vmss name to reflect your environment
$vmss = Get-AzVmss -ResourceGroupName "<myResourceGroup>" -VMScaleSetName "<myVmssName>"
Remove-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "ApplicationMonitoringWindows"
Update-AzVmss -ResourceGroupName $vmss.ResourceGroupName -Name $vmss.Name -VirtualMachineScaleSet $vmss
# Note: Depending on your update policy, you might need to run Update-AzVmssInstance for each instance
疑難排解
針對在 Azure 虛擬機器和虛擬機器擴展集上執行的 .NET 應用程式,尋找 Application Insights 監視代理程式延伸模組的疑難排解提示。
如果您在部署延伸模組時遇到問題,請檢閱執行輸出,這些輸出會記錄在於下列目錄中找到的檔案:
C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.ApplicationMonitoringWindows\<version>\
如果延伸模組的部署成功完成,但無法看到遙測,可能是因為代理程式疑難排解中涵蓋的下列其中一個問題:
- 應用程式 bin 目錄中衝突的 DLL
- 與 IIS 共用設定衝突
測試應用程式主機與擷取服務之間的連線
應用程式深入剖析 SDK 和代理程式會傳送遙測,以擷取為 REST 呼叫擷取到我們擷取的端點。 您可以使用來自 PowerShell 或 curl 命令的原始 REST 用戶端,測試從 Web 伺服器或應用程式主機電腦到擷取服務端點的連線。 請參閱針對 Azure 監視器 Application Insights 中遺失的應用程式遙測進行疑難排解。
版本資訊
2.8.44
- 已將 ApplicationInsights .NET/.NET Core SDK 更新為 2.20.1:red field。
- 已啟用 SQL 查詢集合。
- 已啟用對 Microsoft Entra 驗證的支援。
2.8.42
已將 ApplicationInsights .NET/.NET Core SDK 更新為 2.18.1:red field。
2.8.41
已新增 ASP.NET Core 自動檢測功能。
下一步