適用於 Azure VM 和虛擬機器擴展集的 Application Insights
現在,為 Azure 虛擬機器或 Azure 虛擬機器擴展集上執行的 ASP.NET 和 ASP.NET Core IIS 裝載應用程式啟用監視功能比以往更容易。 在不修改程式碼的情況下,獲得使用 Application Insights 的所有好處。
本文將逐步引導您使用 Application Insights 代理程式啟用 Application Insights 監視。 其也提供將大規模部署程序自動化的初步指引。
啟用 Application Insights
自動檢測的啟用方式很簡單。 不需要進階設定。
如需支援自動檢測案例的完整清單,請參閱支援的環境、語言和資源提供者。
注意
自動檢測適用於 ASP.NET、ASP.NET Core IIS 裝載的應用程式和 JAVA。 使用 SDK 以檢測裝載於 Azure 虛擬機器和虛擬機器擴展集上的 Node.js 和 Python 應用程式。
Application Insights 代理程式會自動收集與 SDK 相同之立即可用的相依性訊號。 若要深入了解,請參閱相依性自動收集。
在安裝 Application Insights 代理程式延伸模組前,您會需要連接字串。 建立新的 Application Insights 資源,或從現有的應用程式見解資源複製連接字串。
為虛擬機器啟用監視功能
您可以使用 Azure 入口網站或 PowerShell,以啟用對 VM 的監視。
Azure 入口網站
在 Azure 入口網站中,移至您的 Application Insights 資源。 將連接字串複製到剪貼簿。
移至虛擬機器。 在左側功能表中的 [設定] 區段下,選取 [延伸模組 + 應用程式] > [新增]。
選取 [Application Insights 代理程式] > [下一步]。
貼上您在步驟 1 中複製的連接字串,然後選取 [檢閱 + 建立]。
PowerShell
注意
您對 PowerShell 還不熟悉嗎? 請參閱使用者入門指南。
安裝或更新 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,以啟用對虛擬機器擴展集的監視功能。
Azure 入口網站
遵循適用於 VM 的先前步驟,但請移至虛擬機器擴展集 (而不是 VM)。
PowerShell
安裝或更新 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 自動檢測功能。