AutomationVMware

VMware PowerCLI ve Slack Alarmları #1 Snapshots

Sanal makine snapshotlarının bir backup olarak kullanılmaması gerektiğini, buradaki sanal makinelerin üzerlerinde Snapshot varken uzun süreli çalışmasının sanal makineleri kararsız duruma düşürebildiğini ve hatta veri kaybının yaşanabildiğini hepimiz biliyoruz. Sizlere bu makalede vCenter altındaki tüm sanal makinelere ait Snapshot bilgilerini PowerCLI kullanarak daha hızlı aksiyon alabilmek adına Slack kanalına alarm olarak iletebilmeyi anlatacağım.

Henüz PowerCLI kurulumu yapmadıysanız aşağıdaki makalemi inceleyebilirsiniz.

Örnek olması açısından son 24 saattir VMware ortamında bulunan snapshotları Slack kanalına 3 farklı görünümle alarm olarak iletmeyi göstereceğim. İstediğiniz görünüme göre script içerisindeki değişkenleri kendinize göre güncelleyip çalıştırabilirsiniz. $snapshotList içerisindeki tüm sanal makinelere ait Create virtual machine snapshot loglarını da filtreleyerek snapshotların kime ait olabileceğini yorumlayabiliyoruz. PowerCLI ile toplanılan snapshot bilgilerini de günlük olarak Slack kanalına iletebilirsiniz.

PowerShell
if ($snapshotList.Length -ne 0) {
    foreach ($vm in $snapshotList) {
        if ($reportStyle -eq 3) {
            $vmNames = $vm.VM.Name + " >" + " Snapshot Name: " + $vm.Name + " >" + " Created Date :" + $vm.Created + "`n"
        }
        else {
            $getSnapshotEvent = Get-VIEvent -Entity $vm.VM -Types Info -Finish $vm.Created -MaxSamples 1 | Where-Object { $_.FullFormattedMessage -imatch 'Task: Create virtual machine snapshot' }
            if ($null -ne $getSnapshotEvent) { 
                Write-Host ( "VM: " + $vm.VM + ". Snapshot '" + $vm + "' created on " + $vm.Created.DateTime + " by " + $getSnapshotEvent.UserName + ".")
                $snapshotCreator = $getSnapshotEvent.UserName
                $snapshotCreator = $snapshotCreator.Replace("\","\\")
            }
            else { 
                Write-Host ("VM: " + $vm.VM + ". Snapshot '" + $vm + "' created on " + $vm.Created.DateTime + ". Can not find the event in vCenter database")
                $snapshotCreator = "User not found."
            }
        }

Örnek-1

Örnek-2

Örnek-3

Bu serinin devamında açıklamaları girilmemiş sanal makinelerin listesini alarm durumu olarak Slack kanalına iletmeyi ve bu iş yükünün JIRA üzerinde iş kaydının açılmasından bahsettiğim makaleye aşağıdan ulaşabilirsiniz.

You can access the scripts used in the article from my Github profile.

https://github.com/vmbro/PowerCLI-Snapshots

Leave a Reply

Your email address will not be published. Required fields are marked *