PowerCli ile Kapasite Raporu

tarafından 10 Şubat 2020 tarihinde VMware, VMware ESXi, VMware vCenter kategorisine yazıldı.

Merhaba,

PowerCli ile Kapasite Raporu isimli bu makalemizde VMware ortamında bulunan Virtual Machine’lerin kapasite raporlarının nasıl alınacağı hakkında bilgi vereceğim. Vmware ortamında bulunan virtual machine’lerin günlük olarak kapasite raporlarını mail formatında almak isteyebilirsiniz.

VMware ortamnızdaki virtual machine ile ilgili bilgileri haftalık aylık olarak belirli bir gruba mail atamak isteyebilirsiniz. Veya bu raporu düzenli olarak çalıştırıp arşivlemek isteyebilirsiniz.

PowerCli ile Kapasite Raporu

Aşağıda belirteceğim script ile virtual machine name, power state, Datastore, cpu, memory, gigabyte cinsinden disk notes bölümlerini alabilirsiniz.

Yukarıdaki gibi bir çıktı elde etmek istiyorsanız aşağıdaki script’i kullanabilirsiniz. Bu script’i kendinize göre değiştirebilirsiniz. IP yazılması gereken yerleri değiştirebilirsiniz. Ayrıca script’in altında yer alan SMTP bölümünü düzenlemeniz durumunda script’in sonucunu mail olarak gönderebilirsiniz.

Eğer bu script’in düzenli olarak çalışmasını istiyorsanız, Windows task scheduler üzerine tanımlayabilir böylece günlük veya haftalık olarak çalıştırabilirsiniz.


@"
===============================================================================
Title: Kapasite-raporu.ps1
Description: List capacity report on all VMWARE ESX/ESXi servers as well as VM's managed by Virtual Center.
Requirements: Windows Powershell and the VI Toolkit
Usage: .\Kapasite-raporu.ps1
Author: Tayfun Deger
===============================================================================
"@

Add-PSSnapin VMware.VimAutomation.Core -ErrorAction SilentlyContinue

filter Get-FolderPath {
$_ | Get-View | % {
$row = "" | select Name, Path
$row.Name = $_.Name

$current = Get-View $_.Parent
# $path = $_.Name # Uncomment out this line if you do want the VM Name to appear at the end of the path
$path = ""
do {
$parent = $current
if($parent.Name -ne "vm"){$path = $parent.Name + "\" + $path}
$current = Get-View $current.Parent
} while ($current.Parent -ne $null)
$row.Path = $path
$row
}
}

$VCServerName = "TayfunDeger-vCenter-IP"
$VC = Connect-VIServer $VCServerName -User tayfundeger\Administrator -Password Password1
$VMFolder = "*"
$ExportFilePath = "C:\TayfunDeger-vCenter-Configuration.csv"

$Report = @()
$VMs = Get-Folder $VMFolder | Get-VM

$Datastores = Get-Datastore | select Name, Id
$VMHosts = Get-VMHost | select Name, Parent

ForEach ($VM in $VMs) {
$VMView = $VM | Get-View
$VMInfo = {} | Select VMName,Powerstate,Cluster,Datastore,NumCPU,MemoryGb,DiskGb,Notes
$VMInfo.VMName = $vm.name
$VMInfo.Powerstate = $vm.Powerstate
$VMInfo.Cluster = $vm.host.Parent.Name
$VMInfo.Datastore = ($Datastores | where {$_.ID -match (($vmview.Datastore | Select -First 1) | Select Value).Value} | Select Name).Name
$VMInfo.NumCPU = $vm.NumCPU
$VMInfo.MemoryGb = ([Math]::Round(($vm.MemoryMB),2)) / 1024
$VMInfo.DiskGb = [Math]::Round(((Get-VM -Name $vm.Name | Get-HardDisk | Measure-Object -Property CapacityKB -Sum).Sum * 1KB / 1GB),2)
$VMInfo.Notes = $vm.Notes
$Report += $VMInfo
}
$Report = $Report | Sort-Object VMName
IF ($Report -ne "") {
$report | Export-Csv $ExportFilePath -NoTypeInformation -UseCulture
}

###########Define Variables########

$fromaddress = "vcenterinfo@tayfundeger.com"
$bccaddress = "bcc@tayfundeger.com"
$Subject = "VM Configuration Report - TayfunDeger"
$attachment = "C:\TayfunDeger-vCenter-Configuration.csv"
$smtpserver = "SMTP-IP-Adresi"

####################################

$message = new-object System.Net.Mail.MailMessage
$message.From = $fromaddress
#$message.To.Add($toaddress)
$message.Bcc.Add($bccaddress)
$message.IsBodyHtml = $True
$message.Subject = $Subject
$attach = new-object Net.Mail.Attachment($attachment)
$message.Attachments.Add($attach)
$message.body = $body
$smtp = new-object Net.Mail.SmtpClient($smtpserver)
$smtp.Send($message)

$VC = Disconnect-VIServer TayfunDeger-vCenter-IP -Confirm:$False

Umarım faydalı olmuştur.

İyi çalışmalar.

Bu yazı blog üzerinde Tayfun DEĞER tarafından paylaşılmıştır. 2009 yılında açılan blog kısa zaman içerisinde büyük bir izleyici kitlesine sahip olmuştur. Tayfun DEĞER danışmanlık ve eğitimler vermektedir. vExpert 2013-2019, VCP4/5/6, VCP5-DT, VCP-Cloud ve MCSE sertifikalarına sahiptir.Twitter 'dan @tayfundeger veya RSS ile sitedeki değişiklikleri takip edebilirsiniz.

Kimler Neler Demiş?

avatar
  Subscribe  
Bildir