Log Analytics çalışma alanında kullanımı analiz etme

Azure İzleyici maliyetleri, Log Analytics çalışma alanınızda toplanan veri hacmine göre önemli ölçüde farklılık gösterebilir. Çalışma alanını kullanan çözüm kümesi ve her çözümün topladığı veri miktarı bu birimi etkiler.

Bu makalede, veri alımı maliyetlerinizi denetlemenize yardımcı olmak için toplanan verilerinizi analiz etme konusunda rehberlik sağlanır. Size yardımcı olur:

  • Beklenenden yüksek kullanımın nedenini belirleyin.
  • Daha fazla kaynak izlerken ve farklı Azure İzleyici özelliklerini yapılandırdıkça maliyetlerinizi tahmin edin.

Log Analytics'te örnek sorgunun çıkışını gösteren ekran görüntüsü.

İpucu

Azure İzleyici maliyetlerinizi azaltma stratejileri için bkz . Maliyet iyileştirme ve Azure İzleyici.

Beklenenden yüksek kullanım nedenleri

Her Log Analytics çalışma alanı ayrı bir hizmet olarak ücretlendirilir ve Azure aboneliğinizin faturasına katkıda bulunur. Aşağıdakilere bağlı olarak veri alımı miktarı önemli ölçüde olabilir:

Bu faktörlerden herhangi birinde beklenmeyen bir artış, veri saklama ücretlerinin artmasına neden olabilir. Bu makalenin geri kalanında, bu tür bir durumu algılamaya ve daha sonra toplanan verileri analiz ederek artan kullanımın kaynağını belirlemeye ve azaltmaya yönelik yöntemler sağlanır.

Veri toplama yüksek olduğunda uyarı gönderme

Beklenmeyen faturalardan kaçınmak için aşırı kullanım için proaktif bildirimler ayarlayın. Bildirimler alarak, faturalama döneminizin bitimine kadar olası anomalileri ele almak üzere ayarlanırsınız.

Aşağıdaki örnek, son 24 saat içinde işlenen faturalanabilir veri hacmi 50 GB'tan büyükse uyarı gönderen bir günlük araması uyarı kuralıdır. Uyarı Mantığı ayarını, ortamınızdaki beklenen kullanıma göre farklı bir eşik kullanacak şekilde değiştirin. Ayrıca, kullanımı her gün birden çok kez denetleme sıklığını artırabilirsiniz, ancak bu seçenek uyarı kuralı için daha yüksek bir ücrete neden olur.

Ayarlar Değer
Kapsam
Hedef kapsam Log Analytics çalışma alanınızı seçin.
Koşul
Sorgu Usage \| where IsBillable \| summarize DataGB = sum(Quantity / 1000)
Ölçüm Ölçü: DataGB
Toplama türü: Toplam
Toplama ayrıntı düzeyi: 1 gün
Uyarı Mantığı İşleç: Büyük
Eşik değeri: 50
Değerlendirme sıklığı: 1 gün
Eylemler Eşik aşıldığında sizi bilgilendirmek için bir eylem grubu seçin veya ekleyin.
Ayrıntılar
Ciddiyet Uyarı
Uyarı kuralı adı 24 saat içinde 50 GB'tan büyük faturalanabilir veri hacmi.

Yerleşik araçlarla kullanımı analiz etme

Azure İzleyici'deki mevcut araçlarla analizinizi başlatın. Bu araçlar yapılandırma gerektirmez ve genellikle en az çabayla ihtiyacınız olan bilgileri sağlayabilir. Toplanan verilerinizde mevcut Azure İzleyici özelliklerinden daha ayrıntılı analize ihtiyacınız varsa Log Analytics'te aşağıdaki günlük sorgularından herhangi birini kullanın.

Log Analytics Çalışma Alanı İçgörüleri

Log Analytics Workspace Insights çalışma alanınızdaki verileri hızlı bir şekilde anlamanızı sağlar. Örneğin, ortaya çıkarabileceğiniz içgörülerden bazıları şunlardır:

  • Ana tablodaki en fazla veri hacmini alan veri tabloları.
  • Verilere katkıda bulunabilecek en önemli kaynaklar.
  • Veri alımı eğilimi.

Kullanım sekmesi, çözüme ve tabloya göre alımın dökümünü sağlar. Bu bilgiler, veri hacminizin büyük bir kısmı için katkıda bulunan tabloları hızla belirlemenize yardımcı olur. Sekmede ayrıca zaman içindeki veri toplama eğilimi de gösterilir. Bir yapılandırma değişikliğine yanıt olarak veri toplamanın zaman içinde sürekli arttığını veya aniden arttığını görün.

Veri desenlerinizi daha iyi anlamanıza yardımcı olan önceden oluşturulmuş sorgular için Ek Sorgular'ı seçin.

Kullanım ve tahmini maliyetler

Her çalışma alanının Kullanım ve tahmini maliyetler sayfasındaki çözüm başına veri alımı grafiği, gönderilen toplam veri hacmini ve her çözümün son 31 gün içinde ne kadar veri gönderdiğini gösterir. Bu bilgiler, herhangi bir artışın genel veri kullanımından mı yoksa belirli bir çözüm tarafından kullanımdan mı geldiği gibi eğilimleri belirlemenize yardımcı olur.

Kullanım tablosundan faturalanabilir veri hacmini sorgulama

Belirli bir hizmet veya çözüm tarafından toplanan faturalanabilir veri miktarını analiz edin. Bu sorgular, çalışma alanı içindeki her tablo için kullanım verilerini toplayan Kullanım tablosunu kullanır.

Not

ile TimeGenerated yan tümcesi yalnızca Azure portalındaki sorgu deneyiminin varsayılan 24 saatin ötesine geri döndüğünden emin olmaktır. Kullanım veri türünü kullandığınızda, StartTime ve EndTime sonuçların sunulduğu zaman dilimlerini temsil eder.

Geçen ay türe göre faturalanabilir veri hacmi

Usage 
| where TimeGenerated > ago(32d)
| where StartTime >= startofday(ago(31d)) and EndTime < startofday(now())
| where IsBillable == true
| summarize BillableDataGB = sum(Quantity) / 1000. by bin(StartTime, 1d), DataType 
| render columnchart

Geçen ay içinde çözüme ve türe göre faturalanabilir veri hacmi

Usage 
| where TimeGenerated > ago(32d)
| where StartTime >= startofday(ago(31d)) and EndTime < startofday(now())
| where IsBillable == true
| summarize BillableDataGB = sum(Quantity) / 1000 by Solution, DataType
| sort by Solution asc, DataType asc

Daha fazla örnek sorgu için bkz . Kullanım tablosu için sorgular.

Olay kayıtlarından faturalanabilir veri hacmini sorgulama

Toplanan verilerinizde daha ayrıntılı analize ihtiyacınız varsa Log Analytics içinde log sorguları kullanın. Log Analytics çalışma alanındaki her tablo, faturalanabilir verileri çözümlemenize yardımcı olabilecek aşağıdaki standart sütunlara sahiptir:

  • _IsBillable , alım ücretine neden olan kayıtları tanımlar. Faturalanamayan verileri filtrelemek için bu sütunu kullanın.
  • _BilledSize, kaydın bayt cinsinden boyutunu sağlar.

Belirli olaylar için faturalanabilir veri hacmi

Belirli bir veri türünün aşırı veri topladığını fark ederseniz, artan belirli kayıtları belirlemek için bu tablodaki verileri analiz etmek isteyebilirsiniz. Bu örnek, tablodaki Event belirli olay kimliklerini filtreler ve her kimlik için bir sayı sağlar. Diğer tablolardaki sütunları kullanarak bu sorguyu değiştirebilirsiniz.

Event
| where TimeGenerated > startofday(ago(31d)) and TimeGenerated < startofday(now()) 
| where EventID == 5145 or EventID == 5156
| where _IsBillable == true
| summarize count(), Bytes=sum(_BilledSize) by EventID, bin(TimeGenerated, 1d)

Daha fazla örnek sorgu için bkz. Olay tablosu için sorgular.

Azure kaynağına, kaynak grubuna veya aboneliğe göre veri hacmi

Belirli bir kaynaktan veya kaynak kümesinden toplanan faturalanabilir veri miktarını analiz edebilirsiniz. Bu sorgular, Azure'da barındırılan kaynaklardan gelen veriler için _ResourceId ve _SubscriptionId sütunlarını kullanır.

Uyarı

Veri türleri genelinde yapılan taramalar yürütülmesi yoğun kaynak gerektirdiğinden, bulma sorgularını dikkatli kullanın. Abonelik, kaynak grubu veya kaynak adı başına sonuçlara ihtiyacınız yoksa, Kullanım tablosundaki Sorgu faturalanabilir veri hacmindeki Kullanım tablosu sorgularını kullanın.

Son tam gün için kaynak kimliğine göre faturalanabilir veri hacmi

find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _ResourceId, _BilledSize, _IsBillable
| where _IsBillable == true 
| summarize BillableDataBytes = sum(_BilledSize) by _ResourceId 
| sort by BillableDataBytes nulls last

Son tam gün için kaynak grubuna göre faturalanabilir veri hacmi

find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _ResourceId, _BilledSize, _IsBillable
| where _IsBillable == true 
| summarize BillableDataBytes = sum(_BilledSize) by _ResourceId
| extend resourceGroup = tostring(split(_ResourceId, "/")[4] )
| summarize BillableDataBytes = sum(BillableDataBytes) by resourceGroup 
| sort by BillableDataBytes nulls last

_ResourceId ayrıştırmak faydalı olabilir.

| parse tolower(_ResourceId) with "/subscriptions/" subscriptionId "/resourcegroups/" 
    resourceGroup "/providers/" provider "/" resourceType "/" resourceName   

Son tam gün için aboneliğe göre faturalanabilir veri hacmi

find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _BilledSize, _IsBillable, _SubscriptionId
| where _IsBillable == true 
| summarize BillableDataBytes = sum(_BilledSize) by _SubscriptionId 
| sort by BillableDataBytes nulls last

İpucu

Büyük veri birimlerine sahip çalışma alanları için, bu bölümde gösterilenler gibi büyük hacimli ham verileri sorgulayan sorgular yapmak için tek bir günle sınırlandırılması gerekebilir. Zaman içindeki eğilimleri izlemek için bir Power BI raporu ayarlamayı ve günde bir kez kaynak başına veri hacimlerini toplamak için artımlı yenileme kullanmayı göz önünde bulundurun.

Bilgisayara göre veri hacmi

Bir sanal makineden veya bir sanal makine kümesinden toplanan faturalanabilir veri miktarını analiz edebilirsiniz. Kullanım tablosunda belirli sanal makinelerin veri birimlerini gösterecek ayrıntı düzeyi yoktur, bu nedenle bu sorgular bir bilgisayar adı içeren tüm tablolarda arama yapmak için bul işlecini kullanır. Bu sorgu yalnızca veri eğilimlerinin analizine yönelik olduğundan Kullanım türü atlanır.

Uyarı

Veri türleri genelinde yapılan taramalar yürütülmesi yoğun kaynak gerektirdiğinden, bulma sorgularını dikkatli kullanın. Abonelik, kaynak grubu veya kaynak adı başına sonuçlara ihtiyacınız yoksa, Kullanım tablosundaki Sorgu faturalanabilir veri hacmindeki Kullanım tablosu sorgularını kullanın.

Son tam gün için bilgisayara göre faturalanabilir veri hacmi

find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _BilledSize, _IsBillable, Computer, Type
| where _IsBillable == true and Type != "Usage"
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| summarize BillableDataBytes = sum(_BilledSize) by  computerName 
| sort by BillableDataBytes desc nulls last

Son tam gün için bilgisayara göre faturalanabilir olayların sayısı

find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _IsBillable, Computer, Type
| where _IsBillable == true and Type != "Usage"
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| summarize eventCount = count() by computerName  
| sort by eventCount desc nulls last

Yaygın veri türleri için veri hacmini sorgulama

Belirli bir veri türü için aşırı faturalanabilir verileriniz olduğunu fark ederseniz, bu tablodaki verileri analiz etmek için bir sorgu gerçekleştirmeniz gerekebilir. Aşağıdaki sorgular bazı yaygın veri türleri için örnekler sağlar:

Güvenlik çözümü

SecurityEvent 
| summarize AggregatedValue = count() by EventID
| order by AggregatedValue desc nulls last

Daha fazla örnek sorgu için bkz. SecurityEvent tablosu için sorgular.

Günlük Yönetimi çözümü

Usage 
| where Solution == "LogManagement" and iff(isnotnull(toint(IsBillable)), IsBillable == true, IsBillable == "true") == true 
| summarize AggregatedValue = count() by DataType
| order by AggregatedValue desc nulls last

Daha fazla örnek sorgu için bkz . Kullanım tablosu için sorgular.

Performans veri türü

Perf 
| summarize AggregatedValue = count() by CounterPath
Perf 
| summarize AggregatedValue = count() by CounterName

Daha fazla örnek sorgu için bkz. Performans tablosu için sorgular.

Olay veri türü

Event 
| summarize AggregatedValue = count() by EventID
Event 
| summarize AggregatedValue = count() by EventLog, EventLevelName

Daha fazla örnek sorgu için bkz. Olay tablosu için sorgular.

Syslog veri türü

Syslog 
| summarize AggregatedValue = count() by Facility, SeverityLevel
Syslog 
| summarize AggregatedValue = count() by ProcessName

Daha fazla örnek sorgu için bkz. Syslog tablosu için sorgular.

AzureDiagnostics veri türü

AzureDiagnostics 
| summarize AggregatedValue = count() by ResourceProvider, ResourceId

Daha fazla örnek sorgu için bkz. AzureDiagnostics tablosu için sorgular.

Application Insights veri birimini sorgulama

Aşağıdaki sorgular, Log Analytics çalışma alanının dışında veri depolayan klasik kaynaklar da dahil olmak üzere Application Insights kaynakları için geçerlidir. Hem çalışma alanı tabanlı hem de klasik kaynaklar için her alınan olayda kullanılabilen _BilledSize özelliğini kullanın. Klasik kaynaklar için , systemEvents tablosunda toplanan bilgileri de kullanabilirsiniz.

Not

SystemEvents haricinde Application Insights tablolarına yönelik sorgular, hem çalışma alanı tabanlı hem de klasik bir Application Insights kaynağı için çalışır. Geriye dönük uyumluluk, eski tablo adlarını kullanmaya devam etmenizi sağlar. Çalışma alanı tabanlı bir kaynak için Log Analytics çalışma alanı menüsünde Günlükler'i açın. Klasik bir kaynak için Application Insights menüsünde Günlükler'iaçın.

Bağımlılık işlemleri son 30 gün içinde en fazla veri hacmini oluşturur (çalışma alanı tabanlı veya klasik)

dependencies
| where timestamp >= startofday(ago(30d))
| summarize sum(_BilledSize) by operation_Name
| render barchart  

Son 7 gün için bu Application Insights kaynağının türüne göre günlük veri hacmi (yalnızca klasik)

systemEvents
| where timestamp >= startofday(ago(7d)) and timestamp < startofday(now())
| where type == "Billing"
| extend BillingTelemetryType = tostring(dimensions["BillingTelemetryType"])
| extend BillingTelemetrySizeInBytes = todouble(measurements["BillingTelemetrySize"])
| summarize sum(BillingTelemetrySizeInBytes) by BillingTelemetryType, bin(timestamp, 1d)  

Çalışma alanı tabanlı Application Insights kaynaklarının veri hacmi eğilimlerine bakmak için tüm Application Insights tablolarını içeren bir sorgu kullanın. Aşağıdaki sorgular çalışma alanı tabanlı kaynaklara özgü tablo adlarını kullanır.

Çalışma alanında 7 gün boyunca tüm Application Insights kaynakları için türe göre günlük veri hacmi

union AppAvailabilityResults,
      AppBrowserTimings,
      AppDependencies,
      AppExceptions,
      AppEvents,
      AppMetrics,
      AppPageViews,
      AppPerformanceCounters,
      AppRequests,
      AppSystemEvents,
      AppTraces
| where TimeGenerated >= startofday(ago(7d)) and TimeGenerated < startofday(now())
| summarize sum(_BilledSize) by _ResourceId, bin(TimeGenerated, 1d)

Yalnızca tek bir Application Insights kaynağının veri hacmi eğilimlerine bakmak için, önceki sorguya önce summarize aşağıdaki satırı ekleyin:

| where _ResourceId contains "<myAppInsightsResourceName>"

İpucu

Büyük veri birimlerine sahip çalışma alanları için, büyük hacimli ham verileri sorgulayan önceki gibi sorguları tek bir günle kısıtlayın. Zaman içindeki eğilimleri izlemek için bir Power BI raporu ayarlamayı ve günde bir kez kaynak başına veri hacimlerini toplamak için artımlı yenileme kullanmayı göz önünde bulundurun.

Veri gönderen düğümleri anlama

Belirli bir kaynaktan fazla veri görmüyorsanız, veri gönderen çok fazla aracınız olabilir.

Geçen ay her gün kalp atışı gönderen ajan düğümlerin sayısı

Heartbeat 
| where TimeGenerated > startofday(ago(31d))
| summarize nodes = dcount(Computer) by bin(TimeGenerated, 1d)    
| render timechart

Daha fazla örnek sorgu için Heartbeat tablosu için sorgular bölümüne bakın.

Uyarı

Veri türleri genelinde yapılan taramalar yürütülmesi yoğun kaynak gerektirdiğinden, bulma sorgularını dikkatli kullanın. Abonelik, kaynak grubu veya kaynak adı başına sonuçlara ihtiyacınız yoksa, Kullanım tablosundaki Sorgu faturalanabilir veri hacmindeki Kullanım tablosu sorgularını kullanın.

Son 24 saat içindeki verileri gönderen düğümlerin sayısı

find where TimeGenerated > ago(24h) project Computer
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize nodes = dcount(computerName)

Her düğüm tarafından son 24 saatte gönderilen veri hacmi

find where TimeGenerated > ago(24h) project _BilledSize, Computer
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize TotalVolumeBytes=sum(_BilledSize) by computerName

Eski Düğüm Başına fiyatlandırma katmanına göre faturalanan düğümler

Eski Düğüm Başına fiyatlandırma katmanı, düğümleri saatlik ayrıntı düzeyiyle faturalar. Ayrıca yalnızca bir dizi güvenlik veri türü gönderen düğümleri saymaz. Çalışma alanı eski Düğüm Başına fiyatlandırma katmanındaysa düğüm olarak faturalandırılan bilgisayarların listesini almak için, bazı veri türleri ücretsiz olduğundan faturalanan veri türlerini gönderen düğümleri arayın. Bu durumda, tam etki alanı adının en soldaki alanını kullanın.

Aşağıdaki sorgular, saat başına faturalanan veri içeren bilgisayarların sayısını döndürür. Faturanızdaki birim sayısı, sorgunun billableNodeMonthsPerDay olarak temsil ettiği düğüm ayları cinsindendir. Çalışma alanında Güncelleştirme Yönetimi çözümü yüklüyse, Update ve .

find where TimeGenerated >= startofday(ago(7d)) and TimeGenerated < startofday(now()) project Computer, _IsBillable, Type, TimeGenerated
| where Type !in ("SecurityAlert", "SecurityBaseline", "SecurityBaselineSummary", "SecurityDetection", "SecurityEvent", "WindowsFirewall", "MaliciousIPCommunication", "LinuxAuditLog", "SysmonEvent", "ProtectionStatus", "WindowsEvent")
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| where _IsBillable == true
| summarize billableNodesPerHour=dcount(computerName) by bin(TimeGenerated, 1h)
| summarize billableNodesPerDay = sum(billableNodesPerHour)/24., billableNodeMonthsPerDay = sum(billableNodesPerHour)/24./31.  by day=bin(TimeGenerated, 1d)
| sort by day asc

Not

Çözüm hedefleme kullanıldığında, gerçek faturalama algoritmasındaki bazı karmaşıklıklar önceki sorguda temsil edilmemektedir.

Geç gelen verileri tanılama

Usage kayıtlarını kullanarak rapor edilen yüksek veri toplama görüyorsanız, ancak veri türünde doğrudan _BilledSize topladığınızda aynı sonuçları görmüyorsanız, bunun nedeni geç gelen veriler olabilir. Bu durum, veriler eski zaman damgalarıyla alındığında oluşur.

Örneğin, bir aracı bir bağlantı sorunu yaşayabilir ve yeniden bağlandığında birikmiş verileri gönderebilir. Veya bir sunucunun zamanı yanlış olabilir. Örneklerden herhangi biri, Kullanım veri türü tarafından bildirilen alınan veriler ile olayın oluşturulduğu zaman damgası olan TimeGenerated ile belirtilen belirli bir gün için ham veriler üzerinde _BilledSize toplamını içeren sorgu arasında belirgin bir tutarsızlıkla sonuçlanabilir.

Geç gelen veri sorunlarını tanılamak için _TimeReceived sütununu ve TimeGenerated sütununu kullanın. _TimeReceived özelliği, Azure İzleyici kaydı aldığı zamandır.

Aşağıdaki örnek, alınan bu verilerdeki zaman damgalarını belirlemek için 2 Mayıs 2021'de W3CIISLog verilerinin yüksek veri hacimlerine yanıt verir. where TimeGenerated > datetime(1970-01-01) deyimi, Log Analytics kullanıcı arabiriminin tüm verilere göz atabilmesi için ipucu vermek amacıyla eklenmiştir.

W3CIISLog
| where TimeGenerated > datetime(1970-01-01)
| where _TimeReceived >= datetime(2021-05-02) and _TimeReceived < datetime(2021-05-03) 
| where _IsBillable == true
| summarize BillableDataMB = sum(_BilledSize)/1.E6 by bin(TimeGenerated, 1d)
| sort by TimeGenerated asc 

Sonraki adımlar