Hyper-V Ortamları İçin Raporlama Aracı (Get-HyperVReport.ps1)
Üzerinde çok sayıda iş yükü barındıran ve giderek karmaşıklaşan kuruluş içi sanallaştırma yapılarının izlenmesi ortam ölçeği genişledikçe zorlaşır. İşlemci gücü, bellek kapasiteleri, depolama kaynağı, sanal makine instance’ları gibi çeşitli platform bileşenlerinde beklenmedik sounlar ortaya çıktığında büyümeden anlamak veya sorun oluşmadan hemen önce yakalamak, platform ve servis erişilebilirliğini sürekli kılmak adına oldukça önemlidir. Öte yandan sanallaştırma envanterini çıkartmak, atanmış veya bekleyen kaynak miktarları gibi bilgilere ulaşmak altyapı yatırımının daha verimli kullanımı ve kapasite planlama hususlarında destek olabilmektedir.
Günümüzde bu gibi işleri ve aslında çok daha fazlasını yapmaya aday birçok uygulama mevcut. Kimisi düşük maliyetli ama eh işte, kimisi oldukça kapsamlı ancak aradığını bulmak zor, kimisi istenen sonucu veremiyorken kimisi tamam ama gerçekten pahalı, kurması işletmesi meşakkatli… Ama yine de gerekliler çünkü ortamda özellikle geriye dönük raporlama yapabilen, geçmiş günlerde oluşmuş olayları ve değerleri kayıt altına alıp bunları gerektiğinde gösterebilen bir izleme uygulaması belirli ölçeğin üzerindeki yapılarda mutlaka çalışıyor olmalı.
Ama bazen izleme uygulamasının sorunlarıyla boğuşmadan, belirli bir bilgiye ulaşmak için menüler/pencereler arasında kaybolmadan (ki o bilgiyle ilişkili diğer bilgi genelde uygulamanın en uzak köşesindedir :) veya uzun ve karmaşık paragraflar okumak zorunda kalmadan o an neler olup bittiğini bir bakışta anlamak istemez miyiz? İşte tam olarak bu fikirle yola çıktım ve Hyper-V Reporting Script (Get-HyperVReport.ps1) isimli bir raporlama aracı hazırladım.
Windows Powershell tabanlı olan Get-HyperVReport.ps1 tam olarak Hyper-V sanallaştırma ortamlarını raporlamak ve o anki durumun fotoğrafını çekmek üzere kullanabileceğiniz bir araç. Araç diyorum çünkü aslında bir script’e göre fazla kontrollü ve kapsamlı. Gerçekte bir kodun kapsamı veya başarısı asla satır sayısıyla ölçülemez çünkü fazla sayıda satır, ortaya çıkan uygulamaya kapsamlı imajı katabileceği gibi aslında programcının başarısızlığı da olabilir. Ama az önce baktım 2600+ satır olmuş, bu yüzden script deyince kızıyor :)
Get-HyperVReport.ps1 indirme bağlantısını ve parametre örneklerini yazının sonunda bulabilirsiniz.
Mesela genelde script’ler bir işi yaparken (örneğin sunuculara bağlanıp belirli verileri toplarken) o kodun zaten başarılı bir şekilde çalışacağını kabul ederek ilerlerler. Veya çalışmadan önce runtime environment için gerekli olan temel bileşenlerin zaten yüklü olacağını kabul ederler. Bu yüzden de genelde ilk sefer başarısızlıkla sonuçlanır :) Get-HyperVReport.ps1 ise biraz farklı. Mesela veri toplama aşamasına geçmeden önce doğru raporlama için gerekli ön koşulları kontrol ediyor, eğer bir eksik varsa ve tamamlayabileceği bir eksikse önce bu sorunu ortadan kaldırıyor (mesela Hyper-V veya Clustering Powershell komut setlerinin yüklenmesi gibi) ve daha sonra raporlama aşamasına geçiyor. Bir tablo içerisini doldururken mesela WMI sorgusunda bir problem oluşursa hata verip sonlanmak yerine hatayı yakalayıp çalışmaya devam edebiliyor. Akış sırasında geçilen aşamaları ve oluşan önemli hataları komut satırı ekranına, debug kayıtları da dahil tüm olay kayıtlarını ise working directory altında oluşturduğu kendi log dosyasına yazıyor. Eğer raporun üretilmesi sırasında bir problem oluşursa, buralara bakıp kolayca anlayabiliyorsunuz.