0Pricing
Cloud & IT Cert Prep · Ders

Log Analytics ve KQL Temelleri

Tanılama günlüklerini bir Log Analytics çalışma alanına alın ve operasyonel verileri filtrelemek, toplamak ve görselleştirmek için Kusto Query Language sorguları yazın.

Log Analytics ve KQL Temelleri, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

Log Analytics Çalışma Alanı Nedir?

Bir Log Analytics çalışma alanı, günlük ve telemetri verileri için Azure Monitor'daki merkezi veri deposudur. Bir Azure kaynağında tanılama ayarlarını yapılandırdığınızda, yapılandırılmış günlükler ve ölçümler çalışma alanına akar. Ardından verileri Kusto Sorgu Dili (KQL) kullanarak sorgulayabilirsiniz. Bir çalışma alanının kendine ait bir saklama ilkesi (varsayılan olarak 30 gün, en fazla 730 gün) ve erişim denetimleri vardır.

# Create a Log Analytics workspace
az monitor log-analytics workspace create \
  --resource-group myRG \
  --workspace-name myWorkspace \
  --location eastus \
  --retention-time 90

Tanılama Günlüklerini Çalışma Alanına Gönderme

Her Azure kaynağı, API çağrıları, kimlik doğrulama olayları ve sorgu yürütme gibi işlemlerin ayrıntılı kayıtları olan tanılama günlükleri oluşturabilir. Bunları kaynak üzerindeki Tanılama Ayarları aracılığıyla etkinleştirir ve hedef olarak Log Analytics çalışma alanınızı belirtirsiniz. Yaygın günlük kategorileri arasında Key Vault için AuditEvent, App Service için AppServiceHTTPLogs ve NSG'ler için NetworkSecurityGroupFlowEvent bulunur.

# Enable diagnostic settings to send Key Vault logs to Log Analytics
az monitor diagnostic-settings create \
  --name 'KVLogs' \
  --resource /subscriptions/<sub>/resourceGroups/myRG/providers/Microsoft.KeyVault/vaults/myKV \
  --workspace myWorkspace \
  --logs '[{"category":"AuditEvent","enabled":true}]'

KQL Söz Dizimine Giriş

Kusto Sorgu Dili (KQL), günlük verilerini analiz etmeye yönelik salt okunur bir sorgu dilidir. KQL sorgusu bir işlem hattı olarak soldan sağa okunur: bir tablo adıyla başlayın, ardından işleçler üzerinden boru (|) kullanarak ilerleyin. Yaygın işleçler arasında filtreleme için where, sütunları seçmek için project, toplulaştırma için summarize ve sıralama için order by bulunur. KQL, sütun adlarında büyük-küçük harfe duyarlıdır; ancak anahtar sözcüklerde duyarlı değildir.

// Basic KQL query structure
AzureActivity
| where TimeGenerated > ago(24h)
| where OperationNameValue == 'MICROSOFT.COMPUTE/VIRTUALMACHINES/DELETE'
| project TimeGenerated, Caller, ResourceGroup, Resource
| order by TimeGenerated desc

Where İşleciyle Filtreleme

where işleci, boole ifadelerini kullanarak satırları filtreler. Koşulları and, or ve not ile birleştirebilirsiniz. has işleci dizelerde büyük-küçük harfe duyarsız sözcük sınırı araması yaparken contains alt dize araması yapar. in işleci, bir listedeki üyeliği sınar. ago() işlevini ago(1h) veya ago(7d) gibi göreli zaman aralıklarını ifade etmek için kullanın.

// Filter for failed HTTP requests in the last hour
AppRequests
| where TimeGenerated > ago(1h)
| where Success == false
| where ResultCode in (500, 502, 503)
| project TimeGenerated, Name, ResultCode, DurationMs
| order by DurationMs desc

Summarize ile Verileri Toplama

summarize işleci, satırlar genelinde toplulaştırmalar hesaplar. Yaygın toplulaştırma işlevleri arasında count(), sum(), avg(), max(), min() ve farklı değerlerin sayısını veren dcount() bulunur. by yan tümcesini kullanarak bir veya daha fazla sütuna göre gruplandırabilirsiniz. bin() işlevi, zaman serisi toplulaştırması için zaman damgalarını aralıklara yuvarlar.

// Count failed requests per hour per endpoint
AppRequests
| where TimeGenerated > ago(24h)
| where Success == false
| summarize FailureCount = count() by bin(TimeGenerated, 1h), Name
| order by TimeGenerated desc, FailureCount desc

KQL'de Tabloları Birleştirme

KQL, birden çok tablodaki verileri ilişkilendirmek için join işleçini destekler. Varsayılan birleştirme türü innerunique değeridir; ancak inner, leftouter, rightouter veya fullouter belirtebilirsiniz. Yaygın bir model, yönetim değişikliklerini performans düşüşleriyle ilişkilendirmek için AzureActivity ile AzureMetrics tablolarını birleştirmektir. lookup işleci, küçük bir başvuru tablosundaki satırlarla zenginleştirme yapmak için daha hafif bir alternatiftir.

// Correlate VM restarts with CPU spike events
AzureActivity
| where OperationNameValue has 'restart'
| join kind=leftouter (
    AzureMetrics
    | where MetricName == 'Percentage CPU'
    | where Average > 90
) on ResourceId
| project TimeGenerated, Resource, Average

KQL Sonuçlarını Görselleştirme

Log Analytics portalında bir sorgu yazdıktan sonra render işleçini kullanarak sonuçları zaman grafiği, çubuk grafik, pasta grafik veya tablo olarak oluşturabilirsiniz. Ayrıca herhangi bir sorgu sonucunu Azure Dashboard'a sabitleyebilir veya Çalışma Kitabı olarak kaydedebilirsiniz. render timechart komutu, eğilim analizi için zaman serisi summarize sorgusunu anında bir çizgi grafiğine dönüştürür.

// Render a time chart of request counts per 5-minute interval
AppRequests
| where TimeGenerated > ago(4h)
| summarize RequestCount = count() by bin(TimeGenerated, 5m)
| render timechart

Günlük Arama Uyarıları

Günlük arama uyarıları, bir KQL sorgusunu zamanlamaya göre çalıştırır ve sonuç, sıfırdan büyük sonuç sayısı veya bir sayısal sütunun eşiği aşması gibi bir koşulu karşıladığında tetiklenir. Birden çok tablo genelindeki herhangi bir günlük verisini sorgulayabildiğiniz için ölçüm uyarılarından daha esnektir. Değerlendirme sıklığı ve zaman penceresi birbirinden bağımsız olarak yapılandırılabilir; örneğin son 15 dakikayı kapsayacak şekilde her 5 dakikada bir çalıştırılabilir.

// Example log search alert condition: more than 5 exceptions in 15 min
AppExceptions
| where TimeGenerated > ago(15m)
| summarize ExceptionCount = count()
// Alert when ExceptionCount > 5

Yaygın Günlük Tabloları Başvurusu

Azure Monitor, günlükleri iyi bilinen tablolarda depolar. AzureActivity, abonelik düzeyindeki işlemleri kaydeder. SecurityEvent, Log Analytics aracısının bulunduğu VM'lerden gelen Windows Güvenlik günlüklerini içerir. Heartbeat, aracı bağlantısını gösterir (bağlı her VM için dakikada bir satır). AppRequests, AppExceptions ve AppDependencies, Application Insights'tan gelir. Bu tablo adlarını bilmek, etkili operasyon sorguları yazmak için çok önemlidir.

Çalışma Alanı Saklama Süresi ve Maliyetler

Log Analytics fiyatlandırmasının iki bileşeni vardır: veri alımı (alınan GB başına) ve veri saklama (ilk 30 gün ücretsizdir; sonrasında varsayılan sürenin ötesindeki her GB için aylık ücret alınır). Alımdan önce gürültülü günlük kategorilerini filtreleyerek, yüksek hacimli ve düşük değerli veriler için daha düşük ücretli Basic Logs kullanarak ve eski verileri uzun süreli uyumluluk saklaması için Azure Data Explorer veya soğuk depolamaya arşivleyerek maliyetleri azaltabilirsiniz.

Çalışma Alanı Erişim Denetimi Modelleri

Log Analytics çalışma alanları iki erişim denetimi modelini destekler. workspace-context modunda çalışma alanına Okuma erişimi olan bir kullanıcı tüm tabluları sorgulayabilir. resource-context modunda kullanıcı, açık çalışma alanı erişimi olmasa bile yalnızca okumak için RBAC iznine sahip olduğu kaynaklar tarafından oluşturulan günlükleri sorgulayabilir. Resource-context modu, farklı ekiplerin farklı kaynakların sorumluluğunu üstlendiği büyük kuruluşlar için önerilir.

Hızlı Kontrol

Bu dersteki Microsoft Azure Fundamentals (AZ-900) kavramlarını ne ölçüde anladığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: Log Analytics çalışma alanları, Azure kaynaklarındaki tanılama günlüklerini merkezileştirir; where, summarize ve render gibi KQL işleçleri günlükleri filtrelemenizi, toplamanızı ve görselleştirmenizi sağlar; günlük arama uyarıları ise bir KQL sorgusunun sonucu tanımlanmış bir koşulu karşıladığında otomatik yanıtları tetikler. Sırada uygulama düzeyindeki telemetri için Application Insights konusunu inceleyeceğiz.

Sıkça Sorulan Sorular

“Log Analytics ve KQL Temelleri” dersi ücretsiz mi?

Evet — “Log Analytics ve KQL Temelleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

“Log Analytics ve KQL Temelleri” dersinde ne öğreneceğim?

Tanılama günlüklerini bir Log Analytics çalışma alanına alın ve operasyonel verileri filtrelemek, toplamak ve görselleştirmek için Kusto Query Language sorguları yazın. Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Log Analytics ve KQL Temelleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Azure Monitor Ölçümleri ve Uyarıları
  2. Log Analytics ve KQL Temelleri
  3. Application Insights
  4. Azure Panoları ve Çalışma Kitapları
← Cloud & IT Cert Prep Sayfasına Dön