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 ContainerLogV2 adlı bir tabloda depolar. Bu makalede, bu tablonun şeması ve eski ContainerLog tablosundan karşılaştırması ve geçişi açıklanmaktadır.

Önemli

ContainerLogV2, CLI sürüm 2.54.0 ve üzeri için ConfigMap aracılığıyla varsayılan şema olacaktır. ContainerLogV2, ARM, Bicep, Terraform, İlke ve Portal ekleme kullanarak Yönetilen Kimlik Doğrulaması ile kapsayıcı içgörüleri ekleyecek müşteriler için varsayılan alım biçimi olacaktır. ContainerLogV2, Veri toplama ayarları kullanılarak CLI sürüm 2.51.0 veya üzeri aracılığıyla açıkça etkinleştirilebilir.

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

Tablo karşılaştırması

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.

1LogMessage geçerli bir JSON ise ve level adlı bir anahtarı varsa, değeri kullanılır. Aksi takdirde LogLevel'i LogMessage'ın kendisinden çıkarabilmek için regex tabanlı bir anahtar sözcük eşleştirme yaklaşımı kullanırız. Bu değer çıkarılırken bazı yanlış sınıflandırmalar görebileceğinizi unutmayın.

2KubernetesMetadata isteğe bağlı bir sütundur ve bu alanın koleksiyonu Kubernetes Meta Veri özelliğiyle etkinleştirilebilir. Bu alanın değeri JSON'dur ve podLabels, podAnnotations, podUid, Image, ImageTag ve Image deposu gibi alanları içerir.

3DCR yapılandırması, hizmet sorumlusu kimlik doğrulaması tabanlı kümeleri kullanan kümeler için desteklenmez. Bu deneyimi kullanmak için hizmet sorumlusuyla kümelerinizi yönetilen kimliğe geçirin.

Not

Gelen LogMessage geçerli bir JSON değilse Olay Hub'ına ve Depolama Hesabına aktar desteklenmez. En iyi performans için kapsayıcı günlüklerini JSON biçiminde yaymanızı öneririz.

Mevcut uyarılar üzerindeki etkiyi değerlendirme

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.

ContainerLog tablosuna başvuran uyarıları 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

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ştirebilirsiniz. Her iki ayar da etkinleştirilirse, ConfigMap önceliklidir. Stdout ve stderr günlükleri yalnızca hem DCR hem de ConfigMap açıkça kapalı olarak ayarlandığında ContainerLog tablosuna alınır.

Kubernetes meta verileri ve günlükleri filtreleme

Kubernetes Meta Verileri ve Günlükleri Filtreleme, ContainerLogsV2 şemasını PodLabels, PodAnnotations, PodUid, Image, ImageID, ImageRepo ve ImageTag gibi daha fazla Kubernetes meta verileriyle geliştirir. Ayrıca, Günlük filtreleme özelliği hem iş yükü hem de platform (sistem ad alanları) kapsayıcıları için filtreleme özellikleri sağlar. Bu özellikler sayesinde kullanıcılar iş yüklerine daha zengin bağlam ve gelişmiş görünürlük kazandırır.

Önemli özellikler

  • Kubernetes meta veri alanlarıyla geliştirilmiş ContainerLogV2 şeması: Kubernetes Günlükleri Meta Verileri, basit Log Analytics sorgularıyla sorun giderme deneyimini geliştiren ve diğer tablolara katılma gereksinimini ortadan kaldıran diğer isteğe bağlı meta veri alanlarını kullanıma sunar. Bu alanlar "PodLabels", "PodAnnotations", "PodUid", "Image," "ImageID", "ImageRepo" ve "ImageTag" gibi temel bilgileri içerir. Kullanıcılar bu bağlamı kullanıma hazır hale alarak sorun giderme işlemlerini hızlandırabilir ve sorunları hızla belirleyebilir.

  • Özelleştirilmiş ekleme listesi yapılandırması: Kullanıcılar, configmap'i düzenerek görmek istedikleri yeni meta veri alanlarını uyarlayabilir. etkinleştirildiğinde tüm meta veri alanlarının metadata_collection varsayılan olarak toplandığını ve belirli alanları seçmek istiyorsanız, include_fields toplanması gereken alanları açıklamayı kaldırın ve belirtin.

Meta veri alanlarını gösteren ekran görüntüsü.

  • Günlük düzeyiyle geliştirilmiş ContainerLogV2 şeması: Kullanıcılar artık KRITIK, HATA, UYARI, BİlGİ, HATA AYıKLAMA, İZLEME veya BİlİNMEYEN gibi renk kodlu önem düzeylerine göre uygulama durumunu değerlendirebilir. Olay yanıtı ve proaktif izleme için çok önemli bir araçtır. Kullanıcılar önem düzeylerini görsel olarak ayırt ederek etkilenen kaynakları hızla belirleyebilir. Renk kodlu sistem, araştırma sürecini kolaylaştırır ve daha fazla hata ayıklama için araştırma deneyimi için paneli seçerek kullanıcıların daha da detaya gitmelerini sağlar. Ancak, bu işlevselliğin yalnızca Grafana kullanılırken geçerli olduğunu unutmayın. Log Analytics Çalışma Alanı kullanıyorsanız LogLevel, ContainerLogV2 tablosundaki başka bir sütundur.

  • İş yükleri için ek açıklama tabanlı günlük filtreleme: Pod Ek Açıklamaları aracılığıyla verimli günlük filtreleme tekniği. Kullanıcılar gürültüden eleme yapmadan ilgili bilgilere odaklanabilir. Ek açıklama tabanlı filtreleme, kullanıcıların poda ek açıklama ekleyerek belirli podlar ve kapsayıcılar için günlük koleksiyonunu dışlamalarına olanak tanır ve bu da log analytics maliyetini önemli ölçüde azaltmaya yardımcı olur.

  • Platform günlükleri için ConfigMap tabanlı günlük filtreleme (Sistem Kubernetes Ad Alanları): Platform günlükleri sistem (veya benzer kısıtlanmış) ad alanları içindeki kapsayıcılar tarafından yayılır. Varsayılan olarak, Log Analytics 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. Örneğin, kube-system ad alanı içindeki coredns kapsayıcısını göz önünde bulundurun. Günlükleri (stdout ve stderr) yalnızca coredns kapsayıcı formu kube-system'dan toplamak için, yapılandırma haritasında aşağıdaki ayarları etkinleştirebilirsiniz.

Filtreleme alanlarını gösteren ekran görüntüsü.

  • Grafana görselleştirme panosu: Grafana panosu yalnızca ÖNEMLİ ile BİlİNMEYEN arasında değişen günlük düzeylerinin renk kodlu görselleştirmelerini görüntülemekle kalmaz, aynı zamanda Günlük Hacmi, Günlük Hızı, Günlük Kayıtları, Günlükler'e de girer. Kullanıcılar Zamana Duyarlı Analiz, zaman içindeki günlük düzeyi eğilimlerine yönelik dinamik içgörüler ve önemli gerçek zamanlı izleme elde edebilir. Ayrıca Bilgisayar, Pod ve Kapsayıcı'ya göre ayrıntılı bir döküm de sağlıyoruz. Bu ayrıntılı analiz ve kesin olarak belirtilen sorun giderme işlemlerini güçlendiriyor. Son olarak yeni Günlükler tablosu deneyiminde kullanıcılar, genişletme görünümüyle ayrıntılı ayrıntıları görüntüleyebilir, her sütundaki verileri görüntüleyebilir ve görmek istedikleri bilgileri yakınlaştırabilir.

Grafana Panosunu gösteren bir video aşağıdadır:

Kubernetes meta verileri ve günlükleri filtrelemeyi etkinleştirme

Önkoşullar

  1. Yönetilen Kimlik Kimlik Doğrulaması'na geçiş. Daha fazla bilgi edinin.

  2. ContainerLogV2'nin etkinleştirildiğinden emin olun. Yönetilen Kimlik Doğrulama kümeleri bu şemayı varsayılan olarak etkinleştirdi. Aksi takdirde ContainerLogV2 şemasını etkinleştirin.

Sınırlamalar

ContainerLogV2 Grafana Panosu, ContainerLogV2 tablosundaki Temel Günlükler SKU'su ile desteklenmez.

Kubernetes meta verilerini etkinleştirme

  1. Aşağıdaki ekran görüntüsünde görüldüğü gibi yapılandırma haritasını indirin ve false olan ayarları true olarak değiştirin. Desteklenen tüm meta veri alanlarının varsayılan olarak toplandığını unutmayın. Belirli alanları toplamak istiyorsanız, içinde include_fieldsgerekli alanları belirtin.

Meta veri alanlarını etkinleştirmeyi gösteren ekran görüntüsü.

  1. ConfigMap'i uygulayın. ConfigMap'i dağıtma ve yapılandırma hakkında daha fazla bilgi edinmek için bkz. yapılandırma haritasını yapılandırma.

  2. Birkaç dakika sonra, aşağıdaki ekran görüntüsünde gösterildiği gibi Veriler Kubernetes Logs Metadata ile ContainerLogV2 tablonuza akmalıdır.

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

Grafana pano deneyimine ekleme

  1. Analizler sekmesinde monitör ayarlarını seçin ve Sürüm 10.3.4+ ile Grafana Panosu'na ekleme

Grafana ekleme işlemini gösteren ekran görüntüsü.

  1. Erişim denetimini (IAM) denetleyerek Grafana Yönetici/Düzenleyici/Okuyucu rollerinden birine sahip olduğunuzdan emin olun. Aksi takdirde, bunları ekleyin.

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

  1. Grafana örneğinizin Azure Logs Analytics (LA) çalışma alanına erişimi olduğundan emin olun. Erişimi yoksa, LA çalışma alanınıza Grafana Örnek İzleme Okuyucusu rolü erişimi vermeniz gerekir.

Grafana'yı gösteren ekran görüntüsü.

  1. Grafana çalışma alanınıza gidin ve Grafana galerisinden ContainerLogV2 Panosu'nu içeri aktarın.

  2. DataSource, Subscription, ResourceGroup, Cluster, Namespace ve Labels bilgilerinizi seçin. Pano daha sonra aşağıdaki ekran görüntüsünde gösterildiği gibi doldurulur.

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

Not

Grafana Panosu'nu ilk yüklediğinizde, değişkenler henüz seçilmediği için bazı hatalar oluşturabilir. Bunun yinelenmesini önlemek için, bir dizi değişken seçtikten sonra ilk açıkta varsayılan olacak şekilde panoyu kaydedin.

Ek açıklama tabanlı filtrelemeyi etkinleştirme

Ek açıklama tabanlı filtrelemeyi etkinleştirmek için aşağıdaki adımları izleyin. İlgili filtreleme belgeleri yayımlandıktan sonra bağlantıyı burada bulabilirsiniz.

  1. Aşağıdaki ekran görüntüsünde görüldüğü gibi yapılandırma haritasını indirin ve false olan ayarları true olarak değiştirin.

Ek açıklamaları gösteren ekran görüntüsü.

  1. ConfigMap'i uygulayın. ConfigMap'i dağıtma ve yapılandırma hakkında daha fazla bilgi edinmek için bkz. yapılandırma haritasını yapılandırma.

  2. İş yükü podunuza gerekli ek açıklamaları ekleyin. Aşağıdaki tabloda, farklı olası Pod ek açıklamaları ve bunların ne yaptıklarına yönelik açıklamalar vurgulanır.

Ek Açıklama Açıklama
fluentbit.io/exclude: "true" Pod'daki tüm kapsayıcılarda hem stdout hem de stderr akışlarını dışlar
fluentbit.io/exclude_stdout: "true" Pod'daki tüm kapsayıcılarda yalnızca stdout akışını dışlar
fluentbit.io/exclude_stderr: "true" Pod'daki tüm kapsayıcılarda yalnızca stderr akışını dışlar
fluentbit.io/exclude_container1: "true" Hem stdout hem de stderr akışlarını yalnızca poddaki kapsayıcı1 için hariç tutun
fluentbit.io/exclude_stdout_container1: "true" Poddaki kapsayıcı1 için yalnızca stdout'ları hariç tutma

Not

Bu ek açıklamalar akıcı bit tabanlıdır. Kubernetes eklenti filtresi ve ek açıklama tabanlı dışlama ile kendi akıcı bit tabanlı günlük toplama çözümünüzü kullanırsanız, hem Container Analizler hem de çözümünüzden günlükleri toplamayı durdurur.

Pod belirtiminde ek açıklama örneği fluentbit.io/exclude: "true" aşağıda verilmiştir:

apiVersion: v1 
kind: Pod 
metadata: 
 name: apache-logs 
 labels: 
  app: apache-logs 
 annotations: 
  fluentbit.io/exclude: "true" 
spec: 
 containers: 
 - name: apache 
  image: edsiper/apache_logs 

Platform günlükleri için ConfigMap tabanlı günlük filtreleme (Sistem Kubernetes Ad Alanları)

  1. Yapılandırma haritasını indirin ve ve exclude_namespacesile ilgili collect_system_pod_logs ayarları değiştirin.

Örneğin, kube-system ad alanında coredns kapsayıcısının stdout ve stderr günlüklerini toplamak için kube-system ad alanının içinde exclude_namespaces olmadığından ve bu özelliğin yalnızca şu sistem ad alanlarıyla kısıtlandığından emin olun: kube-system, gatekeeper-system, calico-system, azure-arc, kube-public ve kube-node-lease ad alanları.

Filtreleme alanlarını gösteren ekran görüntüsü.

  1. ConfigMap'i uygulayın. ConfigMap'i dağıtma ve yapılandırma hakkında daha fazla bilgi edinmek için bkz. yapılandırma haritasını yapılandırma.

Container Analizler'da çok satırlı günlük kaydı

Ç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