Kapsayıcı içgörülerinde günlük toplamayı yapılandırma

Bu makalede, Kubernetes kümeniz eklendikten sonra Kapsayıcı içgörülerinde veri toplamayı yapılandırma hakkında ayrıntılar sağlanır. Kümenizde Kapsayıcı içgörülerini etkinleştirme yönergeleri için bkz . Kubernetes kümeleri için izlemeyi etkinleştirme.

Yapılandırma yöntemleri

Kapsayıcı içgörülerinde toplanan verileri yapılandırmak ve filtrelemek için kullanılan iki yöntem vardır. Ayara bağlı olarak, iki yöntem arasında seçim yapabilir veya birini veya diğerini kullanmanız gerekebilir. aşağıdaki tabloda iki yöntem, aşağıdaki bölümlerde ayrıntılı bilgilerle açıklanmıştır.

Metot Açıklama
Veri toplama kuralı (DCR) Veri toplama kuralları, Azure İzleyici işlem hattını kullanarak veri toplamayı destekleyen yönergeler kümesidir. Kapsayıcı içgörülerini etkinleştirdiğinizde bir DCR oluşturulur ve azure portalını veya diğer yöntemleri kullanarak bu DCR'deki ayarları değiştirebilirsiniz.
ConfigMap ConfigMap'ler , yapılandırma dosyası veya ortam değişkenleri gibi gizli olmayan verileri depolamanıza olanak tanıyan bir Kubernetes mekanizmasıdır. Kapsayıcı içgörüleri, toplaması gereken verileri tanımlayan belirli ayarlara sahip her kümede bir ConfigMap arar.

DCR kullanarak veri toplamayı yapılandırma

Container insights tarafından oluşturulan DCR, MSCI-cluster-region-cluster-name<>< olarak adlandırılır.> Bu DCR'yi aboneliğinizdeki diğer kişilerle birlikte görüntüleyebilir ve Azure İzleyici'de veri toplama kuralları (DCR) oluşturma ve düzenleme bölümünde açıklanan yöntemleri kullanarak düzenleyebilirsiniz. Belirli özelleştirmeler için DCR'yi doğrudan değiştirebilmenize karşın, aşağıda açıklanan yöntemleri kullanarak en gerekli yapılandırmayı gerçekleştirebilirsiniz. Daha gelişmiş yapılandırmalar için doğrudan DCR'yi düzenleme hakkında ayrıntılı bilgi için bkz . Kapsayıcı içgörülerinde veri dönüştürmeleri.

Önemli

AKS kümeleri, sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliği kullanmalıdır. Küme bir hizmet sorumlusu kullanıyorsa, kümeyi sistem tarafından atanan yönetilen kimliği veya kullanıcı tarafından atanan yönetilen kimliği kullanacak şekilde güncelleştirmeniz gerekir.

Azure portalı ile DCR'yi yapılandırma

Azure portalını kullanarak Kapsayıcı içgörüleri'nde veri toplama için önceden ayarlanmış birden çok yapılandırma arasından seçim yapabilirsiniz. Bu yapılandırmalar, belirli önceliklerinize bağlı olarak farklı tablo kümelerini ve koleksiyon sıklıklarını içerir. Ayrıca ayarları yalnızca ihtiyacınız olan verileri toplayacak şekilde özelleştirebilirsiniz. Kapsayıcı içgörüleri etkinleştirildikten sonra mevcut kümenizdeki yapılandırmayı özelleştirmek için Azure portalını kullanabilir veya kümenizde Kapsayıcı içgörülerini etkinleştirdiğinizde bu yapılandırmayı gerçekleştirebilirsiniz.

  1. Azure portalında kümeyi seçin.

  2. Menünün İzleme bölümünde İçgörüler seçeneğini belirleyin.

  3. Kapsayıcı içgörüleri kümede zaten etkinleştirildiyse İzleme Ayarları düğmesini seçin. Aksi takdirde Azure İzleyici'yi Yapılandır'ı seçin ve izlemeyi etkinleştirme hakkında ayrıntılı bilgi için bkz. Azure İzleyici ile Kubernetes kümenizde izlemeyi etkinleştirme.

    İzleyici ayarları düğmesiyle AKS kümesinin ekran görüntüsü.

  4. AKS ve Arc özellikli Kubernetes için Kümeyi henüz yönetilen kimlik kimlik doğrulamasına geçirmediyseniz Yönetilen kimliği kullan'ı seçin.

  5. Maliyet ön ayarlarından birini seçin.

    Ekleme seçeneklerini gösteren ekran görüntüsü.

    Maliyet ön ayarı Toplama sıklığı Ad alanı filtreleri Syslog koleksiyonu Toplanan veriler
    Standart 1 m Hiçbiri Etkin değil Tüm standart kapsayıcı içgörüleri tabloları
    Maliyet için iyileştirilmiş 5 m kube-system, gatekeeper-system, azure-arc dışlar Etkin değil Tüm standart kapsayıcı içgörüleri tabloları
    Syslog 1 m Hiçbiri Varsayılan olarak etkin Tüm standart kapsayıcı içgörüleri tabloları
    Günlükler ve Olaylar 1 m Hiçbiri Etkin değil ContainerLog/ContainerLogV2
    KubeEvents
    KubePodInventory
  6. Ayarları özelleştirmek istiyorsanız Koleksiyon ayarlarını düzenle'ye tıklayın.

    Koleksiyon ayarları seçeneklerini gösteren ekran görüntüsü.

    Veri Akışı Adı Açıklama
    Toplama sıklığı Aracının veri toplama sıklıklarını belirler. Geçerli değerler 1m - 1m aralıklarla 30m'dir Varsayılan değer 1m'dir.
    Ad alanı filtreleme Kapalı: Tüm ad alanları üzerinde veri toplar.
    Include: Yalnızca ad alanları alanındaki değerlerden veri toplar.
    Dışla: Ad alanları alanındaki değerler dışında tüm ad alanlarından veri toplar.

    NamespaceFilteringMode temelinde envanter ve performans verilerini toplamak için kubernetes ad alanlarını virgülle ayırmış dizi. Örneğin, dahil et ayarına sahip ad alanları = ["kube-system", "default"] yalnızca bu iki ad alanını toplar. Dışla ayarıyla aracı, kube-system ve varsayılan dışında diğer tüm ad alanlarının verilerini toplar.
    Toplanan Veriler Hangi Kapsayıcı içgörüleri tablolarının toplayacağını tanımlar. Her gruplandırma açıklaması için aşağıya bakın.
    ContainerLogV2'yi etkinleştirme ContainerLogV2 şemasını etkinleştirmek için Boole bayrağı. true olarak ayarlanırsa, stdout/stderr Günlükleri ContainerLogV2 tablosuna alınır. Aksi takdirde kapsayıcı günlükleri, ConfigMap'te aksi belirtilmedikçe ContainerLog tablosuna alınıyor. Tek tek akışları belirtirken, ContainerLog veya ContainerLogV2 için karşılık gelen tabloyu eklemeniz gerekir.
    Syslog koleksiyonunu etkinleştirme Kümeden Syslog koleksiyonunu etkinleştirir.

    Toplanan veriler seçeneği, küme için doldurulan tabloları seçmenize olanak tanır. Tablolar en yaygın senaryolara göre gruplandırılır. Tek tek tabloları belirtmek için DCR'yi başka bir yöntem kullanarak değiştirmeniz gerekir.

    Toplanan veri seçeneklerini gösteren ekran görüntüsü.

    Gruplama Tablolar Notlar
    Tümü (Varsayılan) Tüm standart kapsayıcı içgörüleri tabloları Varsayılan Container insights görselleştirmelerini etkinleştirmek için gereklidir
    Performans Perf, InsightsMetrics
    Günlükler ve olaylar ContainerLog veya ContainerLogV2, KubeEvents, KubePodInventory Yönetilen Prometheus ölçümlerini etkinleştirdiyseniz önerilir
    İş Yükleri, Dağıtımlar ve HPA'lar InsightsMetrics, KubePodInventory, KubeEvents, ContainerInventory, ContainerNodeInventory, KubeNodeInventory, KubeServices
    Kalıcı Birimler InsightsMetrics, KubePVInventory
  7. Ayarları kaydetmek için Yapılandır'a tıklayın.

DCR için geçerli tablolar ve ölçümler

DCR'deki koleksiyon sıklığı ve ad alanı filtreleme ayarları tüm Kapsayıcı içgörüleri verilerine uygulanmaz. Aşağıdaki tablolar, Kapsayıcı içgörüleri tarafından kullanılan Log Analytics çalışma alanında yer alan tabloları ve topladığı ölçümleri ve her birine uygulanan ayarları listeler.

Tablo adı Ara? Ad alanları mı? Açıklamalar
ContainerInventory Yes Yes
ContainerNodeInventory Yes Hayır Kubernetes Node ad alanı kapsamlı bir kaynak olmadığından ad alanları için veri toplama ayarı geçerli değildir
KubeNodeInventory Yes Hayır Ad alanları için veri toplama ayarı geçerli değil Kubernetes Node, ad alanı kapsamlı bir kaynak değil
KubePodInventory Yes Yes
KubePVInventory Yes Yes
KubeServices Yes Yes
KubeEvents Hayır Evet Kubernetes Olayları için aralık için veri toplama ayarı geçerli değildir
Perf Yes Yes Kubernetes Düğümü ad alanı kapsamlı bir nesne olmadığından, ad alanları için veri toplama ayarı Kubernetes Node ile ilgili ölçümler için geçerli değildir.
InsightsMetrics Yes Yes Veri toplama ayarları yalnızca şu ad alanlarını toplayan ölçümler için geçerlidir: container.azm.ms/kubestate, container.azm.ms/pv ve container.azm.ms/gpu
Ölçüm ad alanı Ara? Ad alanları mı? Açıklamalar
Insights.container/node Yes Hayır Düğüm, ad alanı kapsamlı bir kaynak değildir
Insights.container/pods Yes Yes
Insights.container/containers Yes Yes
Insights.container/persistentvolumes Yes Yes

DCR'de akış değerleri

CLI veya ARM kullanarak toplayacak tabloları belirttiğinizde, Log Analytics çalışma alanında belirli bir tabloya karşılık gelen bir akış adı belirtirsiniz. Aşağıdaki tabloda, her tablonun akış adı listelenir.

Not

Veri toplama kuralının yapısı hakkında bilgi sahibiyseniz, bu tablodaki akış adları DCR'nin Veri akışları bölümünde belirtilir.

Akış Kapsayıcı içgörüleri tablosu
Microsoft-ContainerInventory ContainerInventory
Microsoft-ContainerLog ContainerLog
Microsoft-ContainerLogV2 ContainerLogV2
Microsoft-ContainerLogV2-HighScale ContainerLogV2 (Yüksek ölçek modu)1
Microsoft-ContainerNodeInventory ContainerNodeInventory
Microsoft-InsightsMetrics InsightsMetrics
Microsoft-KubeEvents KubeEvents
Microsoft-KubeMonAgentEvents KubeMonAgentEvents
Microsoft-KubeNodeInventory KubeNodeInventory
Microsoft-KubePodInventory KubePodInventory
Microsoft-KubePVInventory KubePVInventory
Microsoft-KubeServices KubeServices
Microsoft-Perf Perf

1 Aynı DCR'de hem Microsoft-ContainerLogV2 hem de Microsoft-ContainerLogV2-HighScale kullanmamalısınız. Bu, yinelenen verilere neden olur.

DCR'i birden çok kümeyle paylaşma

Kubernetes kümesinde Kapsayıcı içgörülerini etkinleştirdiğinizde, bu küme için yeni bir DCR oluşturulur ve her küme için DCR bağımsız olarak değiştirilebilir. Özel izleme yapılandırmalarına sahip birden çok kümeniz varsa, tek bir DCR'yi birden çok kümeyle paylaşmak isteyebilirsiniz. Ardından, kendisiyle ilişkilendirilmiş tüm kümeler için otomatik olarak uygulanan tek bir DCR'de değişiklik yapabilirsiniz.

DCR, veri toplama kuralı ilişkilendirmeleri (DCRA) olan bir kümeyle ilişkilendirilir. Her küme için mevcut DCR ilişkilendirmelerini görüntülemek ve kaldırmak için önizleme DCR deneyimini kullanın. Daha sonra bu özelliği kullanarak birden çok küme için tek bir DCR'ye ilişkilendirme ekleyebilirsiniz.

ConfigMap kullanarak veri toplamayı yapılandırma

ConfigMap'ler , yapılandırma dosyası veya ortam değişkenleri gibi gizli olmayan verileri depolamanıza olanak sağlayan bir Kubernetes mekanizmasıdır. Kapsayıcı içgörüleri, toplaması gereken verileri tanımlayan belirli ayarlara sahip her kümede bir ConfigMap arar.

Önemli

ConfigMap genel bir listedir ve Kapsayıcı içgörüleri için aracıya yalnızca bir ConfigMap uygulanabilir. Başka bir ConfigMap uygulanması önceki ConfigMap koleksiyon ayarlarını geçersiz kılacaktır.

Önkoşullar

  • Kapsayıcı iş yüklerinden stdout, stderr ve ortam değişkenlerini toplamak için desteklenen en düşük aracı sürümü ciprod06142019 veya üzeridir.

ConfigMap'i yapılandırma ve dağıtma

ConfigMap yapılandırma dosyanızı yapılandırmak ve kümenize dağıtmak için aşağıdaki yordamı kullanın:

  1. Kapsayıcı içgörüleri için ConfigMap'iniz yoksa şablon ConfigMap YAML dosyasını indirin ve bir düzenleyicide açın.

  2. ConfigMap YAML dosyasını özelleştirmelerinizle düzenleyin. Şablon, açıklamaları olan tüm geçerli ayarları içerir. Bir ayarı etkinleştirmek için açıklama karakterini (#) kaldırın ve değerini ayarlayın.

  3. Aşağıdaki kubectl komutunu çalıştırarak bir ConfigMap oluşturun:

    kubectl config set-context <cluster-name>
    kubectl apply -f <configmap_yaml_file.yaml>
    
    # Example: 
    kubectl config set-context my-cluster
    kubectl apply -f container-azm-ms-agentconfig.yaml
    

    Yapılandırma değişikliğinin geçerlilik kazanması birkaç dakika sürebilir. Ardından kümedeki tüm Azure İzleyici Aracısı podları yeniden başlatılır. Yeniden başlatma, tüm Azure İzleyici Aracısı podları için sıralı bir yeniden başlatmadır, bu nedenle hepsi aynı anda yeniden başlatılmaz. Yeniden başlatmalar tamamlandığında aşağıdaki sonuca benzer bir ileti alırsınız:

    configmap "container-azm-ms-agentconfig" created`.
    

Yapılandırmayı doğrulama

Yapılandırmanın bir kümeye başarıyla uygulandığını doğrulamak için aşağıdaki komutu kullanarak aracı podundan günlükleri gözden geçirin.

kubectl logs ama-logs-fdf58 -n kube-system -c ama-logs

Azure İzleyici Aracısı podlarından yapılandırma hataları varsa çıktıda aşağıdakine benzer hatalar gösterilir:

***************Start Config Processing******************** 
config::unsupported/missing config schema version - 'v21' , using defaults

Yapılandırma değişiklikleriyle ilgili daha fazla sorun giderme gerçekleştirmek için aşağıdaki seçenekleri kullanın:

  • Aracı podundan aynı kubectl logs komutu kullanın.

  • Aşağıdakine benzer hatalar için canlı günlükleri gözden geçirin:

    config::error::Exception while parsing config map for log collection/env variable settings: \nparse error on value \"$\" ($end), using defaults, please check config map for errors
    
  • Veriler Log Analytics çalışma alanınızdaki tabloya KubeMonAgentEvents saatte bir, yapılandırma hataları için hata önem derecesiyle gönderilir. Hata yoksa, tablodaki girdide hata bildirmeyen önem derecesine sahip veriler bulunur. sütunu, Tags hatanın oluştuğu pod ve kapsayıcı kimliği ve ayrıca son saat içindeki ilk oluşum, son oluşum ve sayı hakkında daha fazla bilgi içerir.

Şema sürümünü doğrulama

Desteklenen yapılandırma şeması sürümleri, Azure İzleyici Aracısı pod'unun pod ek açıklaması (şema sürümleri) olarak kullanılabilir. Bunları aşağıdaki kubectl komutuyla görebilirsiniz.

kubectl describe pod ama-logs-fdf58 -n=kube-system.

ConfigMap ayarları

Aşağıdaki tabloda, ConfigMap ile veri toplamayı denetlemek için yapılandırabileceğiniz ayarlar açıklanmaktadır.

Ayar Veri türü Value Açıklama
schema-version Dize (büyük/küçük harfe duyarlı) v1 Aracı tarafından bu ConfigMap ayrıştırırken kullanılır. Şu anda desteklenen şema sürümü v1'dir. Bu değerin değiştirilmesi desteklenmez ve ConfigMap değerlendirildiğinde reddedilir.
config-version String Bu yapılandırma dosyasının sürümünü kaynak denetim sisteminizde/deponuzda izlemenize olanak tanır. İzin verilen en fazla karakter sayısı 10'dır ve diğer tüm karakterler kesilir.
[log_collection_settings]
[stdout]
enabled
Boolean true
yanlış
stdout kapsayıcı günlüğü koleksiyonunun etkinleştirilip etkinleştirilmediğini denetler. olarak ayarlandığında true ve stdout günlük koleksiyonu için hiçbir ad alanı dışlanmadığında, stdout günlükleri kümedeki tüm podlar ve düğümler genelindeki tüm kapsayıcılardan toplanır. ConfigMap'te belirtilmezse, varsayılan değer olur true.
[stdout]
exclude_namespaces
String Virgülle ayrılmış dizi Stdout günlüklerinin toplanmadığı Kubernetes ad alanları dizisi. Bu ayar yalnızca olarak ayarlandıysa enabled truegeçerlidir. ConfigMap'te belirtilmezse, varsayılan değer şudur:
["kube-system","gatekeeper-system"].
[stderr]
enabled
Boolean true
yanlış
stderr kapsayıcı günlüğü koleksiyonunun etkinleştirilip etkinleştirilmediğini denetler. olarak ayarlandığında true ve stderr günlük koleksiyonu için hiçbir ad alanı dışlanmadığında, stderr günlükleri kümedeki tüm podlar ve düğümler genelindeki tüm kapsayıcılardan toplanır. ConfigMap'te belirtilmezse, varsayılan değer olur true.
[stderr]
exclude_namespaces
String Virgülle ayrılmış dizi Stderr günlüklerinin toplanmadığı Kubernetes ad alanları dizisi. Bu ayar yalnızca olarak ayarlandıysa enabled truegeçerlidir. ConfigMap'te belirtilmezse, varsayılan değer şudur:
["kube-system","gatekeeper-system"].
[env_var]
enabled
Boolean true
yanlış
Kümedeki tüm podlar ve düğümler arasında ortam değişkeni koleksiyonunu denetler. ConfigMap'te belirtilmezse, varsayılan değer olur true.
[enrich_container_logs]
enabled
Boolean true
yanlış
Kümedeki Name tüm kapsayıcı günlükleri için ContainerLog tablosuna yazılan her günlük kaydının ve Image özellik değerlerini doldurmak için kapsayıcı günlüğü zenginleştirmesini denetler. ConfigMap'te belirtilmezse, varsayılan değer olur false.
[collect_all_kube_events]
enabled
Boolean true
yanlış
Tüm türlerdeki Kube olaylarının toplanıp toplanmayacağını denetler. Varsayılan olarak, Normal türündeki Kube olayları toplanmaz. Bu ayar olduğunda true, Normal olaylar artık filtrelenmez ve tüm olaylar toplanır. ConfigMap'te belirtilmezse, varsayılan değer olur false.
[schema]
containerlog_schema_version
Dize (büyük/küçük harfe duyarlı) v2
v1
Günlük alımı biçimini ayarlar. isev2, ContainerLogV2 tablosu kullanılır. isev1, ContainerLog tablosu kullanılır (bu tablo kullanım dışı bırakılmıştır). Azure CLI sürüm 2.54.0 veya üzerini kullanarak kapsayıcı içgörülerini etkinleştiren kümeler için varsayılan ayardır v2. Ayrıntılar için bkz . Kapsayıcı içgörüleri günlük şeması .
[enable_multiline_logs]
enabled
Boolean true
yanlış
Çok satırlı kapsayıcı günlüklerinin etkinleştirilip etkinleştirilmediğini denetler. Ayrıntılar için bkz . Container Insights'ta çok satırlı günlüğe kaydetme. ConfigMap'te belirtilmezse, varsayılan değer olur false. Bunun için ayarın olması v2gerekirschema.
[metadata_collection]
enabled
Boolean true
yanlış
Meta verilerin tablonun sütununda ContainerLogV2 toplanıp toplanmayacağını KubernetesMetadata denetler.
[metadata_collection]
include_fields
String Virgülle ayrılmış dizi Eklenecek meta veri alanlarının listesi. Ayar kullanılmıyorsa tüm alanlar toplanır. Geçerli değerler şunlardır: ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"]
[metric_collection_settings]
[collect_kube_system_pv_metrics]
enabled
Boolean true
yanlış
Kube-system ad alanında kalıcı birim (PV) kullanım ölçümlerinin toplanmasına izin verir. Varsayılan olarak, kube-system ad alanında kalıcı birim taleplerine sahip kalıcı birimler için kullanım ölçümleri toplanmaz. Bu ayar olarak trueayarlandığında, tüm ad alanları için PV kullanım ölçümleri toplanır. ConfigMap'te belirtilmezse, varsayılan değer olur false.
[agent_settings]
[proxy_config]
ignore_proxy_settings
Boolean true
yanlış
olduğunda true, ara sunucu ayarları yoksayılır. Hem AKS hem de Arc özellikli Kubernetes ortamları için kümeniz ileri ara sunucu ile yapılandırılmışsa ara sunucu ayarları otomatik olarak uygulanır ve aracı için kullanılır. AMPLS + Proxy gibi belirli yapılandırmalar için ara sunucu yapılandırmasının yoksayılmasını isteyebilirsiniz. ConfigMap'te belirtilmezse, varsayılan değer olur false.

Sonraki adımlar

  • Gerekmeyen verileri filtrelemek için Kapsayıcı içgörülerini yapılandırarak maliyet tasarrufu hakkında ayrıntılı bilgi için bkz . Kapsayıcı içgörüleri'nde günlük toplamayı filtreleme.