ContainerLogV2 şemasını yapılandırma

Kapsayıcı içgörüleri, topladığı günlük verilerini ContainerLogV2 adlı bir tabloda Log Analytics çalışma alanında depolar. Bu makalede, bu tablonun şeması ve yapılandırma seçenekleri açıklanmaktadır. Ayrıca bu tabloyu eski ContainerLog tablosuyla karşılaştırır ve bu tablodan geçiş için ayrıntılar sağlar.

Tablo karşılaştırması

ContainerLogV2 , CLI sürüm 2.54.0 ve üzeri için varsayılan şemadır. Bu şema, yönetilen kimlik doğrulaması ile Kapsayıcı içgörüleri ekleyen müşteriler için varsayılan tablodur. ContainerLogV2'yi veri toplama ayarlarını kullanarak CLI sürüm 2.51.0 veya üzeri aracılığıyla açıkça etkinleştirin.

Önemli

ContainerLog tablosu desteği 30 Eylül 2026'da kullanımdan kaldırılır. Bu tarihten sonra eski tablo veri almayı durdurur. Günlük koleksiyonundaki boşluklardan kaçınmak için bundan önce ContainerLogV2'ye geçin. Tabloları değiştirmek için bkz. ContainerLogV2 şemasını etkinleştirme.

Aşağıdaki tabloda ContainerLogV2 ile ContainerLog şemasını kullanma arasındaki temel farklar vurgulanır.

Özellik farkları Konteyner Günlüğü ContainerLogV2
Şema ContainerLog'daki ayrıntılar. ContainerLogV2'deki ayrıntılar.
Ek sütunlar şunlardır:
- ContainerName
- PodName
- PodNamespace
- LogLevel 1
- KubernetesMetadata 2
İşe Alıştırma Yalnızca ConfigMap aracılığıyla yapılandırılabilir. Hem ConfigMap hem de DCR aracılığıyla yapılandırılabilir. 3
Fiyatlandırma Yalnızca tam fiyatlı analiz günlükleriyle uyumludur. Analiz günlüklerine ek olarak düşük maliyetli Temel Günlükler katmanını destekler.
Sorgulama Standart sorgular için envanter tablolarıyla birden çok birleştirme işlemi gerektirir. Sorgu karmaşıklığını ve birleştirme işlemlerini azaltmak için ek pod ve kapsayıcı meta verileri içerir.
Çok satırlı Desteklenmez, çok satırlı girdiler birden çok satıra bölünür. Çok satırlı çıktılar için toplu ve tekli girişler sağlayan çok satırlı günlüğe kaydetme desteği.

1 Geçerli bir JSON ise ve adlı levelbir anahtarı varsa LogMessage değeri kullanılır. Aksi takdirde, regex tabanlı anahtar sözcük eşleştirmesi dosyasından LogMessageçıkarımlar.LogLevel Bu çıkarım bazı yanlış sınıflandırmalara neden olabilir. LogLevel, , , , DEBUGWARNINGINFOTRACE, veya UNKNOWNgibi CRITICALbir değere sahip bir dize alanıdır. ERROR

2KubernetesMetadata, Kubernetes meta verileriyle etkinleştirilen isteğe bağlı bir sütundur. Bu alanın değeri, podAnnotations, podUidimage, imageID, imageRepove imageTagalanlarına podLabelssahip JSON'dır.

3 DCR yapılandırması yönetilen kimlik doğrulaması gerektirir.

Not

Alan LogMessage dinamiktir ve hem JSON hem de düz metin dize biçimlerinin alımını destekler. Gelen geçerli bir JSON veya geçerli bir düz dizeyse Event Hubs ve Depolama Hesabına LogMessage desteklenir.

LogMessage hatalı biçimlendirilmiş JSON ise, bu günlük iletileri kaçışla birlikte alınıyor. Varsayılan olarak, 16 KB'tan büyük günlük iletileri kesilir. Çok satırlı günlük etkinleştirildiğinde, 64 KB'tan büyük günlük iletileri kesilir.

ContainerLogV2 şemasını etkinleştirme

Kümenin günlük profilini veya ConfigMap'i kullanarak bir küme için ContainerLogV2 şemasını etkinleştirin. Her iki ayar da etkinleştirilirse, ConfigMap önceliklidir. Tablo ContainerLog yalnızca her ikisi de açıkça kapalı olarak ayarlandığında kullanılır.

Önemli

ContainerLogV2 ayarı verilerin toplanıp toplanmayacağını denetlemez. Verilerin yalnızca toplandığında hangi tabloya gönderileceğini belirtir.

ContainerLogV2 şemasını etkinleştirmeden önce, ContainerLog tablosunu kullanan uyarı kurallarınız olup olmadığını değerlendirin. Bu tür uyarıları yeni tabloyu kullanacak şekilde güncelleştirin. ContainerLog tablosuna başvuran uyarı kurallarını taramak için aşağıdaki Azure Kaynak Grafı sorgusunu çalıştırın.

resources
| where type in~ ('microsoft.insights/scheduledqueryrules') and ['kind'] !in~ ('LogToMetric')
| extend severity = strcat("Sev", properties["severity"])
| extend enabled = tobool(properties["enabled"])
| where enabled in~ ('true')
| where tolower(properties["targetResourceTypes"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["targetResourceType"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["scopes"]) matches regex 'providers/microsoft.operationalinsights/workspaces($|/.*)?'
| where properties contains "ContainerLog"
| project id,name,type,properties,enabled,severity,subscriptionId
| order by tolower(name) asc

Kubernetes meta verileri ve günlükleri filtreleme

Kubernetes meta verileri ve günlükleri filtreleme, ContainerLogV2 şemasını ek Kubernetes meta verileriyle genişletir. Günlük filtreleme özelliği hem iş yükü hem de platform kapsayıcıları için filtreleme özellikleri sağlar. Bu özellikler iş yüklerinizin görünürlüğünü artırır.

Not

Kubernetes meta verileri ve günlüklerini filtreleme Grafana panosu şu anda Temel Günlükler'i desteklemez.

Özellikler

  • Gelişmiş ContainerLogV2 şeması Kubernetes meta verilerini etkinleştirdiğinizde tabloda ContainerLogV2 adlı KubernetesMetadatayeni bir sütun bulunur. Bu sütun basit günlük sorguları kullanarak sorun gidermeyi kolaylaştırır ve diğer tablolarla birleştirme gereksinimini ortadan kaldırır. Bu sütundaki alanlar , , podAnnotations, podUid, image, imageID, imageRepove imageTagalanlarını içerirpodLabels. Bu özelliği etkinleştirmek için bkz . Kubernetes meta verilerini etkinleştirme.

  • Günlük düzeyi Bu özellik , , veya olası değerleriyle WARNINGINFOERRORCRITICALDEBUGbir sütun ContainerLogV2 ekler.LogLevelUNKNOWNTRACE Bu sütun, uygulama durumunu önem düzeyine göre değerlendirmenize yardımcı olur. Grafana panosu, etkilenen kaynakları hızla saptamak için zaman içindeki günlük düzeyi eğilimlerini görselleştirir.

  • Görselleştirme için Grafana panosu Grafana panosu günlük düzeyinin renk kodlu görselleştirmesini ve günlük hacmi, günlük hızı ve günlük kayıtlarıyla ilgili içgörüler sağlar. Pano, hedeflenen sorun giderme için verileri bilgisayara, poda ve kapsayıcıya göre ayırır. Panoyu yüklemek için bkz . Grafana panosunu yükleme.

  • İş yükleri için pod ek açıklaması tabanlı günlük filtreleme Pod ek açıklamaları ile verimli günlük filtreleme. Bu, gürültüden eleme yapmadan ilgili bilgilere odaklanmanızı sağlar. Ek açıklama tabanlı filtreleme, poda açıklama ekleyerek belirli podlar ve kapsayıcılar için günlük koleksiyonunu dışlamanıza olanak tanır ve bu da günlük analizi maliyetini önemli ölçüde azaltmaya yardımcı olur. Ek açıklama tabanlı filtrelemeyi yapılandırmayla ilgili ayrıntılar için bkz. Ek açıklama tabanlı günlük filtreleme.

  • Platform günlükleri (Sistem Kubernetes Ad Alanları) Platform günlükleri için ConfigMap tabanlı günlük filtreleme, sistem (veya benzer kısıtlanmış) ad alanları içindeki kapsayıcılar tarafından yayılır. Varsayılan olarak, sistem ad alanındaki tüm kapsayıcı günlükleri, Log Analytics çalışma alanınızdaki veri maliyetini en aza indirmek için hariç bırakılır. Ancak belirli sorun giderme senaryolarında, sistem kapsayıcısının günlükleri önemli bir rol oynar. Örneklerden biri, ad alanı içindeki coredns kapsayıcıdırkube-system.

Kubernetes meta verilerini etkinleştirme

Önemli

Kubernetes meta verilerinin toplanması için yönetilen kimlik doğrulaması ve ContainerLogV2 gerekir.

Aşağıdaki ayarlarla ConfigMap kullanarak Kubernetes meta verilerini etkinleştirin. etkinleştirildiğinde metadata_collection tüm meta veri alanları varsayılan olarak toplanır. include_fields Toplanacak tek tek alanları belirtmek için açıklamayı kaldırın.

[log_collection_settings.metadata_collection]
    enabled = true
    include_fields = ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"]

Birkaç dakika sonra sütun, KubernetesMetadata aşağıdaki ekran görüntüsünde gösterildiği gibi tablonun herhangi bir günlük sorgusunda ContainerLogV2 görünür.

containerlogv2'nin gösterildiği ekran görüntüsü.

Grafana panosunu yükleme

Önemli

Grafana'yı Kubernetes kümeleri için izleme yönergelerini kullanarak etkinleştirdiyseniz Grafana örneğinizin Prometheus ölçümleri için Azure İzleyici çalışma alanınıza zaten erişimi olmalıdır. Kubernetes Günlükleri Meta Veri panosu, günlük verilerini içeren Log Analytics çalışma alanınıza da erişim gerektirir. Grafana örneğinize Log Analytics çalışma alanınız için İzleme Okuyucusu rolü verme yönergeleri için Azure İzleyici için erişim izinlerini nasıl değiştireceğiniz konusuna bakın.

ContainerLogV2 Panosu'ndaki Grafana galerisinden panoyu içeri aktarın. Panoyu açın ve DataSource, Subscription, ResourceGroup, Cluster, Namespace ve Labels değerlerini seçin.

Grafana panosunu gösteren ekran görüntüsü.

Not

Grafana panosunu ilk yüklediğinizde, değişkenler henüz seçilmediğinden hatalar görebilirsiniz. Bunun yinelenmesini önlemek için, bir dizi değişken seçtikten sonra ilk açıkta varsayılan olacak şekilde panoyu kaydedin.

Çok satırlı kayıt

Çok satırlı günlük kaydı önceden bölünmüş kapsayıcı günlüklerini birleştirir ve bunları tabloya ContainerLogV2 tek girdiler olarak gönderir. ConfigMap ile kapsayıcı günlüğü koleksiyonunu yapılandırma bölümünde açıklandığı gibi ConfigMap kullanarak çok satırlı günlüğü etkinleştirin.

Not

Yapılandırma haritasında artık yalnızca ilgilendiğiniz dilleri seçmenize olanak tanıyan bir dil belirtimi seçeneği bulunur. Bu özellik, yapılandırma haritasındaki stacktrace_languages seçeneğindeki diller düzenlenerek etkinleştirilebilir.

Sınırlamalar

  • Çok satırlı günlük kaydı yalnızca Java, Python, .NET ve Go kullanarak kapsayıcılardan özel durum yığını izlemelerini biriktirir. Özel özel durumlar ve rastgele günlük iletileri de dahil olmak üzere diğer çok satırlı günlük girişleri birlikte birleştirilmemiştir.
  • Python istisna yığını izlemeleri için fine-grained-error-locations-in-tracebacks ile çok satırlı kayıt desteklenmemektedir. Çok satırlı günlüğe kaydetmenin çalışması için, Python belgelerinde açıklandığı gibi bu özelliği devre dışı bırakmanız gerekir.
  • Varsayılan olarak, kapsayıcı çalışma zamanı günlük satırlarını 16 KB'de kısaltır. Çok satırlı günlüğü etkinleştirdiğinizde, ContainerLogV2 64 KB'a kadar günlük satırlarını destekler.

Örnekler

Git özel durum yığını izleme çok satırlı günlüğe kaydetme devre dışı

Çok satırlı günlüğe kaydetmenin devre dışı bırakıldığını gösteren ekran görüntüsü.

Go programlama dili özel durum yığını izleme çok satırlı günlüğe kaydetme etkinleştirildi

Çoklu satırın etkin olduğunu gösteren ekran görüntüsü.

Java yığın izi çok satırlı kaydetme etkinleştirildi

Java için Çok Satırlı'nın etkinleştirildiğini gösteren ekran görüntüsü.

Python yığın izleme çok satırlı günlüğe kaydetme etkin

Python için çok satırlı özelliğinin etkinleştirildiğini gösteren ekran görüntüsü.

Sonraki adımlar