Aracılığıyla paylaş


Kapsayıcı içgörüleri günlük şeması

Kapsayıcı içgörüleri, topladığı günlük verilerini Log Analytics çalışma alanında ContainerLogV2 adlı bir tabloda 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, yönetilen kimlik kimlik doğrulaması ile Kapsayıcı içgörüleri ekleyen müşteriler için varsayılan tablodur. ContainerLogV2, veri toplama ayarları kullanılarak CLI sürüm 2.51.0 veya üzeri aracılığıyla açıkça etkinleştirilebilir.

Önemli

ContainerLog tablosu desteği 30 Eylül 2026'da kullanımdan kaldırılacaktır.

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

Özellik farkları ContainerLog ContainerLogV2
Şema ContainerLog'daki ayrıntılar. ContainerLogV2'deki ayrıntılar.
Ek sütunlar şunlardır:
- ContainerName
- PodName
- PodNamespace
- LogLevel1
- KubernetesMetadata2
Ekleme 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ı çıkış için birleştirilmiş, tek girişlere izin vermek için ç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, 'den LogMessageçıkarım LogLevel yapmak için regex tabanlı anahtar sözcük eşleştirmesi kullanılır. Bu çıkarım bazı yanlış sınıflandırmalara neden olabilir. LogLevel, , ERROR, WARNING, INFODEBUG, TRACEveya UNKNOWNgibi CRITICALbir sistem durumu değerine sahip bir dize alanıdır.

2KubernetesMetadata, Kubernetes meta verileriyle etkinleştirilen isteğe bağlı bir sütundur. Bu alanın değeri, podAnnotationsImagepodUidImageTagve Image repoalanlarına podLabelssahip JSON'dır.

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

Not

Gelen LogMessage geçerli JSON değilse Olay Hub'ına ve Depolama Hesabına dışarı aktarma desteklenmez. En iyi performans için kapsayıcı günlüklerini JSON biçiminde yayın.

ContainerLogV2 şemasını etkinleştirme

Kümenin Veri Toplama Kuralı 'nı (DCR) 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 hem DCR hem de ConfigMap açıkça kapalı olarak ayarlandığında kullanılır.

ContainerLogsV2 şemasını etkinleştirmeden önce, ContainerLog tablosunu kullanan uyarı kurallarınız olup olmadığını değerlendirmeniz gerekir. Bu tür uyarıların yeni tabloyu kullanacak şekilde güncelleştirilmesi gerekir. Tabloya başvuran uyarı kurallarını taramak için aşağıdaki Azure Kaynak Grafı sorgusunu ContainerLog ç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, ContainerLogsV2 ş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ükleriniz için daha zengin bağlam ve gelişmiş görünürlük sağlar.

Özellikler

  • Geliştirilmiş ContainerLogV2 şeması Kubernetes GünlükLeri Meta Verileri etkinleştirildiğinde, basit günlük sorgularıyla sorun gidermeyi geliştiren ve diğer tablolarla birleştirme gereksinimini ortadan kaldıran adlı KubernetesMetadata bir sütun ContainerLogV2 ekler. Bu sütundaki alanlar şunlardır: PodLabels, PodAnnotations, PodUid, Image, , ImageID, ImageRepo. ImageTag Bu alanlar, diğer tablolarla birleştirmek zorunda kalmadan günlük sorgularını kullanarak sorun giderme deneyimini geliştirir. Kubernetes meta veri özelliğini etkinleştirme hakkında ayrıntılı bilgi için aşağıya bakın.

  • Günlük düzeyi Bu özellik ContainerLogV2'ye kritik, hata, uyarı, bilgi, hata ayıklama, izleme veya bilinmeyen olası değerlerle bir LogLevel sütun ekler. Bu, uygulama durumunu önem düzeyine göre değerlendirmenize yardımcı olur. Grafana panosunu ekleyerek, zaman içindeki günlük düzeyi eğilimlerini görselleştirebilir ve etkilenen kaynakları hızla saptayabilirsiniz.

  • Görselleştirme için Grafana panosu Grafana panosu, günlük düzeyinin renk kodlu bir görselleştirmesini sağlar ve ayrıca Günlük Hacmi, Günlük Hızı, Günlük Kayıtları, Günlükler hakkında içgörüler sağlar. Zamana duyarlı analizler, zaman içindeki günlük düzeyi eğilimlerine yönelik dinamik içgörüler ve önemli gerçek zamanlı izleme elde edebilirsiniz. Pano ayrıca bilgisayar, pod ve kapsayıcıya göre ayrıntılı bir döküm sağlar ve bu da ayrıntılı analiz ve noktalı sorun giderme işlemlerini güçlendirmektedir. Grafana panosunu yükleme hakkında ayrıntılı bilgi için aşağıya bakın.

  • İş yükleri için ek açıklama tabanlı günlük filtreleme Pod ek açıklamaları aracılığıyla 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, Log Analytics çalışma alanınızdaki verilerin maliyetini en aza indirmek için sistem ad alanından tüm kapsayıcı günlükleri hariç tutulur. Ancak belirli sorun giderme senaryolarında sistem kapsayıcısının kapsayıcı günlükleri önemli bir rol oynar. Örneklerden biri, ad alanı içindeki kube-system kapsayıcıdırcoredns.

Kubernetes meta verilerini etkinleştirme

Önemli

Kubernetes meta verilerinin toplanması için yönetilen kimlik doğrulaması ve ContainerLogsV2 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ğıda gösterildiği gibi tablo için ContainerLogV2 tüm günlük sorgularıyla birlikte eklenmelidir.

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

Grafana panosunu yükleme

Önemli

Kubernetes kümeleri için izlemeyi etkinleştirme yönergelerini kullanarak Grafana'yı 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ğine Log Analytics çalışma alanınız için İzleme Okuyucusu rolü verme yönergeleri için bkz . Azure İzleyici'ye erişim izinlerini değiştirme.

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

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

Not

Grafana Panosu'nu ilk yüklediğinizde henüz seçilmeyen değişkenler nedeniyle 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ı günlüğe kaydetme

Çok satırlı günlükler etkinleştirildiğinde, önceden bölünmüş kapsayıcı günlükleri bir araya toplanır ve ContainerLogV2 tablosuna tek girdiler olarak gönderilir. Birleştirilmiş günlük çizgisi 64 KB'tan büyükse Log Analytics çalışma alanı sınırları nedeniyle kesilir. Bu özellik ayrıca ContainerLogV2 tablosunda tek girdiler olarak görünen .NET, Go, Python ve Java yığın izlemeleri için de destek içerir. ConfigMap kullanarak Kapsayıcı içgörülerinde veri toplamayı yapılandırma bölümünde açıklandığı gibi ConfigMap ile çok satırlı günlüğe kaydetmeyi etkinleştirin.

Not

Yapılandırma haritasında artık müşterilerin yalnızca ilgilendikleri dilleri seçebileceği bir dil belirtimi seçeneği bulunur. Bu özellik, yapılandırma haritasındaki stacktrace_languages seçeneğindeki diller düzenlenerek etkinleştirilebilir.

Aşağıdaki ekran görüntüleri Go özel durum yığını izlemesi için çok satırlı günlüğe kaydetmeyi gösterir:

Ç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ü.

Ç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ı izleme

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

Python yığını izleme

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

Sonraki adımlar