VMware Cloud Community
Patrick_NY
Contributor
Contributor
Jump to solution

ESX Cluster Load--Host wise...

Hi all,

I have 2 clusters with ESX Hosts.

Now I need to get the report for each cluster configuration and cluster have HOSTs.configuration ..I want the report like...cluster resource report and cluster's HOST report..in same

like below

Clustername ||||  Total Disk Space (MB) |||| Available CPU (Mhz) |||| Total CPU (Mhz) |||||||||   Total Physical Memory (MB) |||   Available Memroy (MB)

____________________________________________________________________________________________________________


Thks for LUC providing below report. ,i got this report from our vmware blogs,its same rreport this only for CLUSTERS

I hope u all understand my problem.

appreciate your help

Thank you,

ALDOVMWARE

# Virtual Center Server
$VCServerName = "my servername"
$creds = Get-Credential
# Some variables
$portvc="443"
$VC = Connect-VIServer -server $VCServerName -Credential $creds  -ErrorAction Stop -port $portvc
$report = @()
$clusterName = "MonitoringTestCluster"
$report = foreach($cluster in Get-Cluster -Name $clusterName){
    $esx = $cluster | Get-VMHost
#    $ds = Get-Datastore -VMHost $esx | where {$_.Type -eq "VMFS" -and $_.Extensiondata.Summary.MultipleHostAccess}
    New-Object PSObject -Property @{
        VCname = $cluster.Uid.Split(':@')[1]
        DCname = (Get-Datacenter -Cluster $cluster).Name
        Clustername = $cluster.Name
        "Number of hosts" = $esx.Count
        "Total Processors" = ($esx | measure -InputObject {$_.Extensiondata.Summary.Hardware.NumCpuPkgs} -Sum).Sum
        "Total Cores" = ($esx | measure -InputObject {$_.Extensiondata.Summary.Hardware.NumCpuCores} -Sum).Sum
        "Current CPU Failover Capacity" = $cluster.Extensiondata.Summary.AdmissionControlInfo.CurrentCpuFailoverResourcesPercent
        "Current Memory Failover Capacity" = $cluster.Extensiondata.Summary.AdmissionControlInfo.CurrentMemoryFailoverResourcesPercent
        "Configured Failover Capacity" = $cluster.Extensiondata.ConfigurationEx.DasConfig.FailoverLevel
        "Migration Automation Level" = $cluster.Extensiondata.ConfigurationEx.DrsConfig.DefaultVmBehavior
        "DRS Recommendations" = &{$result = $cluster.Extensiondata.Recommendation | %{$_.Reason};if($result){[string]::Join(',',$result)}}
        "DRS Faults" = &{$result = $cluster.Extensiondata.drsFault | %{$_.Reason};if($result){[string]::Join(',',$result)}}
        "Migration Threshold" = $cluster.Extensiondata.ConfigurationEx.DrsConfig.VmotionRate
        "target hosts load standard deviation" = "NA"
        "Current host load standard deviation" = "NA"       
        "Total Physical Memory (MB)" = ($esx | Measure-Object -Property MemoryTotalMB -Sum).Sum
        "Configured Memory MB" = ($esx | Measure-Object -Property MemoryUsageMB -Sum).Sum
        "Available Memroy (MB)" = ($esx | Measure-Object -InputObject {$_.MemoryTotalMB - $_.MemoryUsageMB} -Sum).Sum
        "Total CPU (Mhz)" = ($esx | Measure-Object -Property CpuTotalMhz -Sum).Sum
        "Configured CPU (Mhz)" = ($esx | Measure-Object -Property CpuUsageMhz -Sum).Sum
        "Available CPU (Mhz)" = ($esx | Measure-Object -InputObject {$_.CpuTotalMhz - $_.CpuUsageMhz} -Sum).Sum
        "Total Disk Space (MB)" = ($ds | where {$_.Type -eq "VMFS"} | Measure-Object -Property CapacityMB -Sum).Sum
        "Configured Disk Space (MB)" = ($ds | Measure-Object -InputObject {$_.CapacityMB - $_.FreeSpaceMB} -Sum).Sum
        "Available Disk Space (MB)" = ($ds | Measure-Object -Property FreeSpaceMB -Sum).Sum
    }
}
$report | Export-Csv "Q:\Cluster-Report.csv" -NoTypeInformation -UseCulture
0 Kudos
1 Solution

Accepted Solutions
LucD
Leadership
Leadership
Jump to solution

Try this, it's the closest you can get.

You can't mix different objects (records) in a CSV file.

# Virtual Center Server
$VCServerName = "my servername" 
$creds
= Get-Credential
# Some variables
$portvc="443" $VC = Connect-VIServer -server $VCServerName -Credential $creds  -ErrorAction Stop -port $portvc
$report
= @() $clusterName = "MonitoringTestCluster"
foreach
($cluster in Get-Cluster -Name $clusterName){   foreach($esx in (Get-VMHost -Location $cluster)){     $report += New-Object PSObject -Property @{         VCname = $cluster.Uid.Split(':@')[1]         DCname = (Get-Datacenter -Cluster $cluster).Name
       
Clustername = $cluster.Name
       
VMHost = $esx.Name
       
"Number of hosts" = $esx.Count
       
"Total Processors" = ($esx | measure -InputObject {$_.Extensiondata.Summary.Hardware.NumCpuPkgs} -Sum).Sum
       
"Total Cores" = ($esx | measure -InputObject {$_.Extensiondata.Summary.Hardware.NumCpuCores} -Sum).Sum
       
"Current CPU Failover Capacity" = $cluster.Extensiondata.Summary.AdmissionControlInfo.CurrentCpuFailoverResourcesPercent
       
"Current Memory Failover Capacity" = $cluster.Extensiondata.Summary.AdmissionControlInfo.CurrentMemoryFailoverResourcesPercent
        "Configured Failover Capacity" = $cluster.Extensiondata.ConfigurationEx.DasConfig.FailoverLevel
       
"Migration Automation Level" = $cluster.Extensiondata.ConfigurationEx.DrsConfig.DefaultVmBehavior
       
"DRS Recommendations" = &{$result = $cluster.Extensiondata.Recommendation | %{$_.Reason};if($result){[string]::Join(',',$result)}}         "DRS Faults" = &{$result = $cluster.Extensiondata.drsFault | %{$_.Reason};if($result){[string]::Join(',',$result)}}         "Migration Threshold" = $cluster.Extensiondata.ConfigurationEx.DrsConfig.VmotionRate
        "target hosts load standard deviation" = "NA"
       
"Current host load standard deviation" = "NA"               "Total Physical Memory (MB)" = ($esx | Measure-Object -Property MemoryTotalMB -Sum).Sum
       
"Configured Memory MB" = ($esx | Measure-Object -Property MemoryUsageMB -Sum).Sum
       
"Available Memroy (MB)" = ($esx | Measure-Object -InputObject {$_.MemoryTotalMB - $_.MemoryUsageMB} -Sum).Sum
       
"Total CPU (Mhz)" = ($esx | Measure-Object -Property CpuTotalMhz -Sum).Sum
        "Configured CPU (Mhz)" = ($esx | Measure-Object -Property CpuUsageMhz -Sum).Sum
       
"Available CPU (Mhz)" = ($esx | Measure-Object -InputObject {$_.CpuTotalMhz - $_.CpuUsageMhz} -Sum).Sum
       
"Total Disk Space (MB)" = ($ds | where {$_.Type -eq "VMFS"} | Measure-Object -Property CapacityMB -Sum).Sum
       
"Configured Disk Space (MB)" = ($ds | Measure-Object -InputObject {$_.CapacityMB - $_.FreeSpaceMB} -Sum).Sum
       
"Available Disk Space (MB)" = ($ds | Measure-Object -Property FreeSpaceMB -Sum).Sum
    }   } }
$report | Export-Csv "Q:\Cluster-Report.csv" -NoTypeInformation -UseCulture


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

View solution in original post

0 Kudos
8 Replies
Patrick_NY
Contributor
Contributor
Jump to solution

Hi all,

I have 2 clusters with ESX Hosts.

Now I need to get the report for each cluster configuration and cluster have HOSTs.configuration ..I want the report like...cluster resource report and cluster's HOST report..in same

like below

Clustername ||||  Total Disk Space (MB) |||| Available CPU (Mhz) |||| Total CPU (Mhz) |||||||||   Total Physical Memory (MB) |||   Available Memroy (MB)

Thks for LUC providing below report. ,i got this report from our vmware blogs,its same rreport this only for CLUSTERS

I hope u all understand my problem.

appreciate your help

Thank you,

ALDOVMWARE

0 Kudos
depping
Leadership
Leadership
Jump to solution

Moved your thread to the PowerCLI section as this is where Luc resides normally 🙂

0 Kudos
LucD
Leadership
Leadership
Jump to solution

Try this, it's the closest you can get.

You can't mix different objects (records) in a CSV file.

# Virtual Center Server
$VCServerName = "my servername" 
$creds
= Get-Credential
# Some variables
$portvc="443" $VC = Connect-VIServer -server $VCServerName -Credential $creds  -ErrorAction Stop -port $portvc
$report
= @() $clusterName = "MonitoringTestCluster"
foreach
($cluster in Get-Cluster -Name $clusterName){   foreach($esx in (Get-VMHost -Location $cluster)){     $report += New-Object PSObject -Property @{         VCname = $cluster.Uid.Split(':@')[1]         DCname = (Get-Datacenter -Cluster $cluster).Name
       
Clustername = $cluster.Name
       
VMHost = $esx.Name
       
"Number of hosts" = $esx.Count
       
"Total Processors" = ($esx | measure -InputObject {$_.Extensiondata.Summary.Hardware.NumCpuPkgs} -Sum).Sum
       
"Total Cores" = ($esx | measure -InputObject {$_.Extensiondata.Summary.Hardware.NumCpuCores} -Sum).Sum
       
"Current CPU Failover Capacity" = $cluster.Extensiondata.Summary.AdmissionControlInfo.CurrentCpuFailoverResourcesPercent
       
"Current Memory Failover Capacity" = $cluster.Extensiondata.Summary.AdmissionControlInfo.CurrentMemoryFailoverResourcesPercent
        "Configured Failover Capacity" = $cluster.Extensiondata.ConfigurationEx.DasConfig.FailoverLevel
       
"Migration Automation Level" = $cluster.Extensiondata.ConfigurationEx.DrsConfig.DefaultVmBehavior
       
"DRS Recommendations" = &{$result = $cluster.Extensiondata.Recommendation | %{$_.Reason};if($result){[string]::Join(',',$result)}}         "DRS Faults" = &{$result = $cluster.Extensiondata.drsFault | %{$_.Reason};if($result){[string]::Join(',',$result)}}         "Migration Threshold" = $cluster.Extensiondata.ConfigurationEx.DrsConfig.VmotionRate
        "target hosts load standard deviation" = "NA"
       
"Current host load standard deviation" = "NA"               "Total Physical Memory (MB)" = ($esx | Measure-Object -Property MemoryTotalMB -Sum).Sum
       
"Configured Memory MB" = ($esx | Measure-Object -Property MemoryUsageMB -Sum).Sum
       
"Available Memroy (MB)" = ($esx | Measure-Object -InputObject {$_.MemoryTotalMB - $_.MemoryUsageMB} -Sum).Sum
       
"Total CPU (Mhz)" = ($esx | Measure-Object -Property CpuTotalMhz -Sum).Sum
        "Configured CPU (Mhz)" = ($esx | Measure-Object -Property CpuUsageMhz -Sum).Sum
       
"Available CPU (Mhz)" = ($esx | Measure-Object -InputObject {$_.CpuTotalMhz - $_.CpuUsageMhz} -Sum).Sum
       
"Total Disk Space (MB)" = ($ds | where {$_.Type -eq "VMFS"} | Measure-Object -Property CapacityMB -Sum).Sum
       
"Configured Disk Space (MB)" = ($ds | Measure-Object -InputObject {$_.CapacityMB - $_.FreeSpaceMB} -Sum).Sum
       
"Available Disk Space (MB)" = ($ds | Measure-Object -Property FreeSpaceMB -Sum).Sum
    }   } }
$report | Export-Csv "Q:\Cluster-Report.csv" -NoTypeInformation -UseCulture


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos
depping
Leadership
Leadership
Jump to solution

Slow day today Luc, 22 minutes to respond 😉

0 Kudos
LucD
Leadership
Leadership
Jump to solution

Sorry about that, I'll try to improve Smiley Happy


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos
Bar2D2
Enthusiast
Enthusiast
Jump to solution

I have now idea how to implement this power shell script :smileyblush:

Can you point me in the right direction? Do I run it on my vSphere server? I am looking for a report that tells me how many VMs I can add to our cluster(s) before I have to add more hosts(s)...

Sorry for being a script dummie Smiley Sad

0 Kudos
LucD
Leadership
Leadership
Jump to solution

No, you can run it on whatever Windows PC or server that has PowerShell and PowerCLI installed, and that can connect to the vCenter.

See my My PS library for pointers to learning resources.


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos
Bar2D2
Enthusiast
Enthusiast
Jump to solution

Thank you :smileygrin:

0 Kudos