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 - LogLevel 1- KubernetesMetadata 2 |
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ı level
bir 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
, INFO
DEBUG
, TRACE
veya UNKNOWN
gibi CRITICAL
bir 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, podAnnotations
Image
podUid
ImageTag
ve Image repo
alanlarına podLabels
sahip 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ütunContainerLogV2
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.
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.
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 kaydetme etkinleştirildi
Java yığını izleme
Python yığını izleme
Sonraki adımlar
- ContainerLogv2 için Temel Günlükleri yapılandırın.
- ContainerLogV2'den verileri sorgulamayı öğrenin