通过vCenter的API统计esxi分配资源信息,先保存到csv中,后续可能保存到数据库中,经过分析进行数据分析展示
# 连接到 vCenter Server
Connect-VIServer -Protocol https -User 'administrator@vsphere.local' -Password 'Acjas#2023!' -Server 10.19.124.19
# 获取每个 ESXi 主机的信息
$hostInfo = Get-VMHost | ForEach-Object {
# 获取 ESXi 主机的 CPU 核数和内存大小
$numCpu = $_.NumCpu
$memoryTotalGB = $_.MemoryTotalGB
# 获取 ESXi 主机上的所有虚拟机
$vms = Get-VM -Location $_
# 计算 ESXi 主机上已经分配的 CPU 核数和内存大小
$assignedCpuCores = ($vms | Measure-Object -Property NumCpu -Sum).Sum
$assignedMemoryGB = ($vms | Measure-Object -Property MemoryGB -Sum).Sum
# 创建一个包含所有信息的对象
New-Object PSObject -Property @{
'Host' = $_.Name
'Total CPU Cores' = $numCpu
'Total Memory (GB)' = $memoryTotalGB
'Assigned CPU Cores' = $assignedCpuCores
'Assigned Memory (GB)' = $assignedMemoryGB
}
}
# 导出到 CSV 文件
$hostInfo | Export-Csv -Path 'host_info.csv' -NoTypeInformation
# 断开 vCenter Server 连接
Disconnect-VIServer -Server 10.19.124.19 -Confirm:$false