如何通过Azure PowerShell获取Log Analytics工作区中的VM详情
获取Log Analytics工作区关联的虚拟机信息
方法1:通过Connected Machine资源查询
如果你的虚拟机是通过Azure Monitor Agent或Log Analytics Agent连接到工作区的,可通过以下命令筛选关联的VM:
# 获取目标Log Analytics工作区的资源ID $workspaceId = (Get-AzOperationalInsightsWorkspace -Name "你的工作区名称" -ResourceGroupName "你的资源组名称").ResourceId # 查询所有关联到该工作区的虚拟机 Get-AzConnectedMachine | Where-Object { $_.Properties.WorkspaceResourceIds -contains $workspaceId }
该命令会返回VM的名称、资源组、操作系统类型、代理状态等核心详情。
方法2:通过工作区数据源查询
直接查询工作区中注册的Azure虚拟机数据源:
$workspace = Get-AzOperationalInsightsWorkspace -Name "你的工作区名称" -ResourceGroupName "你的资源组名称" Get-AzOperationalInsightsDataSource -Workspace $workspace | Where-Object { $_.Kind -eq "AzureVirtualMachine" }
此方法返回工作区已注册的Azure VM基础信息。
补充:通过心跳日志获取VM运行状态
若需要VM的运行状态等更细节数据,可查询工作区的Heartbeat表:
$query = @" Heartbeat | where TimeGenerated > ago(24h) | distinct Computer, OSVersion, ResourceId, ComputerEnvironment "@ $workspace = Get-AzOperationalInsightsWorkspace -Name "你的工作区名称" -ResourceGroupName "你的资源组名称" Invoke-AzOperationalInsightsQuery -WorkspaceId $workspace.CustomerId -Query $query
该查询返回过去24小时内向工作区发送心跳的VM信息,包含计算机名、OS版本、资源ID等。
前置依赖
确保已安装并登录Azure PowerShell相关模块:
Install-Module -Name Az.OperationalInsights -Force Install-Module -Name Az.ConnectedMachine -Force
内容的提问来源于stack exchange,提问作者monika reddy
相关产品推荐
相关产品推荐

