Aracılığıyla paylaş


Kapsayıcı içgörü 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 doğrulaması ile Kapsayıcı içgörülerini başlatan 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ı 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ı LogMessagebir anahtarı varsa level değeri kullanılır. Aksi takdirde, LogLevel öğesini LogMessage öğesinden çıkarmak için regex tabanlı anahtar kelime eşleştirme kullanılır. Bu çıkarım bazı yanlış sınıflandırmalara neden olabilir. LogLevel, CRITICAL, ERROR, WARNING, INFO, DEBUG veya TRACE gibi bir sağlık değeri içeren bir dize alanıdır.

2KubernetesMetadata, Kubernetes meta verileriyle etkinleştirilen isteğe bağlı bir sütundur. Bu alanın değeri, podLabelspodAnnotationspodUidImageve ImageTagalanlarına Image reposahip 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. Olay Hub'ına ve Depolama Hesabına günlük veri aktarımı, gelen LogMessage geçerli bir JSON veya geçerli bir düz metin olduğunda desteklenir.

LogMessage Yanlış biçimlendirilmiş JSON ise, bu günlük iletileri kaçışla birlikte alınacaktır. Varsayılan olarak, 16 KB'tan büyük günlük iletileri kısaltılır. Çok satırlı günlüğe kaydetme etkinleştirildiğinde, 64 KB'tan büyük günlük iletileri kesilir.

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. Aşağıdaki Azure Kaynak Grafiği sorgusunu çalıştırarak tabloya başvuran uyarı kurallarını tarayı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.

Not

Kubernetes meta verileri ve günlüklerini filtreleme Grafana panosu şu anda temel günlükleri desteklememektedir.

Ö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ı ContainerLogV2 bir sütun KubernetesMetadata 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 LogLevel sütununu, olası değerler kritik, hata, uyarı, bilgi, hata ayıklama, izleme veya bilinmeyen olacak şekilde 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 bağlı analizler, günlük seviyesindeki eğilimler üzerine zamana dayalı dinamik içgörüler ve hayati 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 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, 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 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 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, aşağıda gösterildiği gibi KubernetesMetadata tablosu için yapılan tüm günlük sorgularına ContainerLogV2 sütunu 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ğinize Log Analytics çalışma alanınız için İzleme Okuyucusu rolü verme konusunda rehberlik almak üzere, Azure İzleyici erişim izinlerini nasıl değiştireceğinizi görün.

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ı kayıt

Ç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. 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 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 gelen özel durum yığını izlerini birleştirir. Ö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.

  • Varsayılan olarak kapsayıcı çalışma zamanı tarafından kesilmesi yerine 16 KB'tan büyük günlük satırı ve günlük satırı 64 KB'a kadar desteklenecekse.

Ö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 izleme çok satırlı kayıt etkinleştirildi

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

Python yığın izi çok satırlı kaydı etkinleştirildi

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

Sonraki adımlar