Azure Resource Graph Kullanımı – Part 2

azureresourcegraph

Yazımızın ilk bölümünde Azure Resource Graph servisini kavramaya çalıştık. Şimdi ise örnek sorgulamalar yaparak, bunları detaylandırmaya ve uygulamaya geçelim. Örnek yapabilmek için şu şekilde bir senaryomuz olduğunu varsayalım; organizasyon içerisinde ortalama `500~` kadar Azure Subscription olduğunu ve bu ortamın bir kişi tarafından yönetildiğini düşünün. Bizden istenen ise tüm storage account hesaplarını listelemek.

Yukarıdaki talep edilen bilgiyi almanın birçok yöntemi var daha önce bunlardan bahsetmiştik. Dilerseniz bu bilgiyi Azure Portal üzerinden alabilir veya PowerShell ile tüm abonelikleri tek tek gezip `Get-AzStorageAccount` cmdlet ile toplama şansına sahip olabiliriz. Fakat Azure Resource Graph Query ile bunu yapmak çok daha kolay ve şimdi bunu deneyimleyeceğiz.

Storage hesaplarını listelemek

resources 
| where type =~ "Microsoft.storage/storageaccounts"

Resim-1

Yaptığımız yukarıdaki örnekte **resources** tablosu içerisinde bulunan ve tipi storageAccounts ile aynı olanları getirmesini istedik. Filtreleme için `where` operatörünü kullandık ve ilgili resource tipine eşit ise bize tüm storage hesaplarını döndürmesini istedik. Unutmayın ki sadece `Reader` hakkımız olan storage hesaplarını listeleyebiliriz. Örneklerimizi çoğaltalım.

Public IP Addressleri listelemek

resources
| where type =~ "microsoft.network/publicipaddresses"
| project name, properties.ipAddress

Resim-2

Bu sefer farklı bir örnek ile devam edelim. Abonelikler içerisinde bulunan tüm Public IP Adreslerinin listelenmesini talep ediyoruz. Bunu listelemek için yukarıdaki `KQL` sorgulaması yeterli olacaktır. Yukarıda bulunan sorgulama cümlesini biraz daha genişletmek istiyorum. Bu sefer `summarize` operatörünü kullanıp bir Resource Map oluşturmaya çalışalım ve sonucu beraber görelim.

resources
| where type =~ "microsoft.network/publicipaddresses"
| project name, properties.ipAddress, location
| summarize count() by location

Resim-3

Örnekte çıkan sonuçta gözüktüğü gibi çok kolay bir şekilde Public IP Adreslerimizi listeledik. Farklı bir örnek ile hız kesmeden devam edelim.

Virtual Machine boyutuna ve lokasyonuna göre sıralamak

resources
| where type =~ 'microsoft.compute/virtualMachines' 
| summarize count() by tostring(properties.hardwareProfile.vmSize), location

Sorgul cümlesinin göz gezdiridignizde yine aynı summarize ve count fonksiyonunu kullanarak virtual machine özelliginde tutulan `vmSize` niteliğine göre yaptığımızı fark edeceksiniz. Sonuç aşağıdaki gibi olmalı:

Resim-4

Hybrid Use Benefit lisansı olanları listelemek

Azure Hybrid Benefit, Enterprise ortamınızda var olan Windows Server, SQL Server lisanslarınızı Azure Cloud ortamında kullanmanıza imkan veren bir lisans tipi olarak geçmektedir. Eğer Azure Cloud ortamınızda bulunan `Windows Server’lar` içerisinden hangilerinde bu lisanslama tipi açık diye merak ediyorsanız aşağıda bulunan sorgulama size yeterli gelecektir.

resources
| where type =~ 'microsoft.compute/virtualMachines' 
| extend imageOffer=tostring(properties.storageProfile.imageReference.offer)
| extend licenseType=properties.licenseType
| where imageOffer == 'WindowsServer' and licenseType=='Windows_Server'
| project name, imageOffer, licenseType
Resim-5

Örneğimizi bir tık daha geliştirelim. Sahip olduğumuz sorgulamayı kullanalım ve bunu `Bar Chart` olarak gösterelim.

resources
| where type =~ 'microsoft.compute/virtualMachines' 
| extend imageOffer=tostring(properties.storageProfile.imageReference.offer)
| extend licenseType=iif(tostring(properties.licenseType) == "Windows_Server", "HUB[WindowsServer]", "WindowsServer")
| where imageOffer == 'WindowsServer' 
| project name, imageOffer, licenseType
| summarize count() by licenseType

Resim-6

Bir sonraki yazımızda Azure Defender for Cloud örnekleri ile sorgulamalar yapacağız.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz. 

Referanslar

www.mshowto.org 

TAGs:Azure Resource Graph, KQL, Resource Manager, Azure Resource Graph nedir

Yazı gezinmesi

Mobil sürümden çık