Azure Monitor'da Log Search Uyarıları için Dinamik Eşiklerin Yapılandırılması ve Yönetimi

Azure Monitor'da dinamik eşikler ile log arama uyarılarının nasıl otomatik olarak ayarlanacağını ve yönetileceğini öğrenin. Makine öğrenmesi tabanlı bu özellik, statik eşiklerin karmaşıklığını ortadan kaldırır.

4
4sysops
1 görüntülenme
Azure Monitor'da Log Search Uyarıları için Dinamik Eşiklerin Yapılandırılması ve Yönetimi

Giriş

Azure Monitor, bulut ve yerel ortamlardaki kaynaklardan gelen verileri toplama, analiz etme ve eylem başlatma konusunda kritik bir rol oynar. Özellikle log arama uyarıları (log search alerts), belirli koşullar gerçekleştiğinde ekipleri bilgilendirmek için yaygın olarak kullanılır. Ancak, statik eşiklerin manuel olarak tanımlanması ve sürdürülmesi, zamanla değişen ortamlar için yetersiz kalabilmekteydi. Microsoft, 16 Haziran 2026 tarihinde, Azure Monitor'da dinamik eşikler özelliğini genel kullanıma sunduğunu duyurdu. Bu özellik, makine öğrenmesi algoritmaları kullanarak geçmiş log sorgularından normal davranışları öğrenir ve uyarı eşiklerini otomatik olarak hesaplar. Böylece, kullanıcıların statik limitleri manuel olarak ayarlamasına gerek kalmaz.

Sorun: Statik Eşiklerin Sınırlamaları

Geleneksel statik eşikler, belirli bir metriğin belirli bir değeri aşması durumunda uyarı oluşturur. Örneğin, bir web uygulamasının yanıt süresinin 5 saniyeden fazla olması durumunda uyarı gönderilmesi gibi. Ancak, bu yaklaşımın birkaç önemli dezavantajı bulunmaktadır:

  1. Değişen Ortamlar: Uygulama trafiği, kullanıcı sayısı veya sistem yükü zamanla değişebilir. Statik eşikler, bu değişimlere uyum sağlayamaz ve yanlış pozitifler (false positives) veya yanlış negatifler (false negatives) üretebilir.
  2. Mevsimsel ve Dönemsel Desenler: Günlük, haftalık veya aylık döngülerde oluşan trafik artışları (örneğin, pazartesi sabahları veya yılbaşı dönemleri) statik eşiklerle yakalanamaz. Bu durum, kritik uyarıların gözden kaçmasına neden olabilir.
  3. Yönetimsel Yük: Statik eşiklerin sürekli olarak izlenmesi, güncellenmesi ve ayarlanması gerekir. Bu süreç, büyük ölçekli ortamlarda yönetimsel bir yük oluşturur.

Önemli Not: Statik eşikler, basit ve öngörülebilir senaryolarda kullanılabilirken, dinamik ve karmaşık ortamlar için dinamik eşikler daha uygun bir çözümdür. Dinamik eşikler, ortam değişikliklerine otomatik olarak adapte olur ve yanlış uyarıları minimize eder.

Çözüm: Dinamik Eşiklerin Avantajları

Dinamik eşikler, makine öğrenmesi tabanlı bir yaklaşım kullanarak, geçmiş verilerden normal davranışları öğrenir ve uyarı eşiklerini otomatik olarak hesaplar. Bu özellik, aşağıdaki avantajları sunar:

  • Otomatik Uyarlama: Ortam değişikliklerine, mevsimsel desenlere ve trafik dalgalanmalarına otomatik olarak uyum sağlar.
  • Daha Az Yanlış Uyarı: Normal davranışları öğrenerek, anormal durumları daha doğru bir şekilde tespit eder ve yanlış uyarı sayısını azaltır.
  • Kolay Yönetim: Statik eşiklerin manuel olarak ayarlanmasına gerek kalmaz. Kullanıcılar, sadece uyarı koşullarını ve hedef kaynakları tanımlar.
  • Ücretsiz Erişim: Dinamik eşikler, standart log arama uyarı kuralı oranının ötesinde ek bir maliyet gerektirmez.

Desteklenen Senaryolar

Dinamik eşikler aşağıdaki senaryolarda etkili bir şekilde kullanılabilir:

  • Log Tabanlı Uyarılar: Azure Monitor Logs (eski adıyla Log Analytics) verilerine dayalı uyarılar.
  • Metrik Tabanlı Uyarılar: Azure Monitor Metrics verilerine dayalı uyarılar.
  • Mevsimsel ve Dönemsel Desenler: Günlük, haftalık veya aylık döngülerde oluşan trafik artışları.
  • Anormal Davranışların Tespiti: Anormal log sayısı, hata oranı veya performans düşüşleri gibi durumlar.

Adım Adım: Dinamik Eşiklerin Yapılandırılması

Dinamik eşikleri yapılandırmak için aşağıdaki adımları izleyin. Bu adımlar, hem Azure Portal hem de Azure CLI aracılığıyla gerçekleştirilebilir.

Azure Portal Üzerinden Yapılandırma

  1. Azure Portal'a Giriş Yapın: https://portal.azure.com adresine giderek Azure hesabınıza giriş yapın.

  2. Azure Monitor'a Erişim: Sol menüden "Monitor" seçeneğine tıklayın ve ardından "Alerts" bölümüne gidin.

  3. Yeni Bir Uyarı Kuralı Oluşturun: "Create alert rule" butonuna tıklayın ve uyarı kuralı türü olarak "Log search" seçeneğini seçin.

  4. Log Sorgusu Tanımlayın: Uyarı kuralı için bir log sorgusu girin. Örneğin, aşağıdaki sorguda, "requests" tablosunda "resultCode" değeri 5xx olan kayıtları arıyoruz:

    requests
    | where resultCode >= 500
    | summarize count() by bin(timestamp, 5m)
  5. Dinamik Eşik Seçeneğini Etkinleştirin: "Threshold" bölümünde "Dynamic" seçeneğini seçin. Ardından, "Learn behavior from historical data" seçeneğini etkinleştirin. Azure, geçmiş 7 günlük verileri kullanarak normal davranışı öğrenecektir.

  6. Uyarı Koşullarını Tanımlayın: Dinamik eşikler otomatik olarak hesaplandığından, sadece uyarı koşullarını ve hedef kaynakları tanımlamanız gerekir. Örneğin, "count_" metriğinin belirli bir standart sapma değerini aşması durumunda uyarı gönderilmesini sağlayabilirsiniz.

  7. Uyarı Ayrıntılarını Tanımlayın: Uyarı kuralına bir ad verin, açıklama ekleyin ve eylem grubunu (action group) seçin. Eylem grubu, uyarı tetiklendiğinde hangi eylemlerin gerçekleştirileceğini belirler (örneğin, e-posta göndermek, bir webhook tetiklemek).

  8. Uyarı Kuralını Kaydedin: Tüm ayarları tamamladıktan sonra "Review + create" butonuna tıklayın ve ardından "Create" butonuna tıklayarak uyarı kuralını kaydedin.

Azure CLI Üzerinden Yapılandırma

Azure CLI kullanarak dinamik eşikleri yapılandırmak için aşağıdaki komutları kullanabilirsiniz. Bu örnekte, Azure Monitor Logs verilerine dayalı bir uyarı kuralı oluşturulmaktadır.

# Azure CLI'ye giriş yapın
az login

# Yeni bir uyarı kuralı oluşturun
az monitor metrics alert create \
  --name "DynamicThresholdAlert" \
  --resource-group "MyResourceGroup" \
  --scopes "/subscriptions/{subscription-id}/resourceGroups/MyResourceGroup/providers/Microsoft.OperationalInsights/workspaces/MyWorkspace" \
  --condition "avg Percentage CPU > 80 avg 5m" \
  --window-size 5m \
  --evaluation-frequency 1m \
  --action "/subscriptions/{subscription-id}/resourceGroups/MyResourceGroup/providers/microsoft.insights/actionGroups/MyActionGroup" \
  --dynamic-threshold "{"\"metricName\":\"Percentage CPU\",\"windowSize\":\"PT5M\",\"timeAggregation\":\"Average\",\"operator\":\"GreaterThan\",\"threshold\":80}"

İpucu: Azure CLI komutlarında dinamik eşikleri tanımlamak için --dynamic-threshold parametresini kullanın. Bu parametre, dinamik eşiklerin nasıl hesaplanacağını ve hangi koşulların uygulanacağını belirler.

Dinamik Eşiklerin İzlenmesi ve Yönetimi

Dinamik eşikler otomatik olarak ayarlandığından, kullanıcıların bu eşikleri sürekli olarak izlemesi gerekmez. Ancak, aşağıdaki durumlarda dinamik eşiklerin performansını ve doğruluğunu kontrol etmek önemlidir:

  • Geçmiş Verilerin Doğruluğu: Dinamik eşikler, geçmiş verilerden öğrenir. Bu nedenle, geçmiş verilerin doğru ve eksiksiz olması önemlidir. Eksik veriler, eşiklerin yanlış hesaplanmasına neden olabilir.
  • Uyarı Doğruluğu: Dinamik eşikler, normal davranışları öğrenerek anormal durumları tespit eder. Uyarıların doğruluğunu kontrol etmek için, uyarıların tetiklendiği durumları inceleyin ve yanlış uyarıların olup olmadığını belirleyin.
  • Performans İzleme: Dinamik eşiklerin performansını izlemek için Azure Monitor'un "Metrics" bölümünü kullanın. "DynamicThresholdEvaluation" metriği, dinamik eşiklerin ne sıklıkta ve ne şekilde değerlendirildiğini gösterir.

Sık Karşılaşılan Sorunlar ve Çözümleri

Dinamik eşikleri kullanırken karşılaşabileceğiniz yaygın sorunlar ve bunların çözümleri aşağıda listelenmiştir:

1. Dinamik Eşiklerin Hesaplanmaması

Sorun: Dinamik eşikler hesaplanmıyor ve uyarılar tetiklenmiyor.

Çözüm: Geçmiş verilerin yeterli olup olmadığını kontrol edin. En az 7 günlük geçmiş veriye ihtiyaç vardır. Ayrıca, log sorgusunun doğru olduğundan ve verilerin mevcut olduğundan emin olun.

2. Yanlış Uyarıların Fazla Olması

Sorun: Dinamik eşikler çok sayıda yanlış uyarı üretiyor.

Çözüm: Uyarı koşullarını daha hassas hale getirin. Örneğin, standart sapma değerini artırarak veya uyarı penceresini genişleterek yanlış uyarıları azaltabilirsiniz.

3. Performans Sorunları

Sorun: Dinamik eşiklerin değerlendirilmesi yavaş gerçekleşiyor.

Çözüm: Uyarı kuralının değerlendirme sıklığını (evaluation frequency) ve pencere boyutunu (window size) ayarlayarak performansı artırabilirsiniz. Daha küçük pencere boyutları ve daha seyrek değerlendirmeler, performansı iyileştirebilir.

En İyi Uygulamalar

Dinamik eşikleri kullanırken aşağıdaki en iyi uygulamaları takip edin:

  • Geçmiş Verilerin Kalitesini Sağlayın: Dinamik eşikler, geçmiş verilerden öğrenir. Bu nedenle, geçmiş verilerin doğru, eksiksiz ve temiz olduğundan emin olun.
  • Uyarı Koşullarını Ayarlayın: Dinamik eşikler otomatik olarak hesaplanır, ancak uyarı koşullarını (örneğin, standart sapma değeri) doğru bir şekilde ayarlamak önemlidir. Bu, yanlış uyarıların sayısını azaltır.
  • Performansı İzleyin: Dinamik eşiklerin performansını ve değerlendirme sıklığını düzenli olarak izleyin. Gerektiğinde ayarlamalar yapın.
  • Eylem Gruplarını Tanımlayın: Uyarılar tetiklendiğinde hangi eylemlerin gerçekleştirileceğini (örneğin, e-posta göndermek, bir webhook tetiklemek) tanımlayın. Bu, uyarıların daha etkili bir şekilde yönetilmesini sağlar.

Sonuç

Azure Monitor'da dinamik eşikler, log arama uyarılarının yönetimini büyük ölçüde basitleştirir ve otomatikleştirir. Makine öğrenmesi tabanlı bu özellik, statik eşiklerin sınırlamalarını ortadan kaldırır ve ortam değişikliklerine otomatik olarak adapte olur. Dinamik eşikler, mevsimsel ve dönemsel desenleri tanır, yanlış uyarıları minimize eder ve yönetimsel yükü azaltır. Bu özellik, Azure Monitor Logs ve Azure Monitor Metrics verilerine dayalı uyarılar için kullanılabilir ve ek bir maliyet gerektirmez. Dinamik eşikleri kullanarak, bulut ve yerel ortamlarınızdaki anormal durumları daha doğru ve verimli bir şekilde tespit edebilirsiniz.

Kaynaklar

Kaynak

4sysops