ConfigMap kullanarak Kapsayıcı içgörülerinde veri toplamayı yapılandırma

Bu makalede, ConfigMap kullanarak Kapsayıcı içgörülerinde veri toplamanın nasıl yapılandırıldığı açıklanır. Yapılandırma Haritalar yapılandırma dosyası veya ortam değişkenleri gibi gizli olmayan verileri depolamanıza olanak sağlayan bir Kubernetes mekanizmasıdır.

ConfigMap öncelikli olarak kümenin kapsayıcı günlüklerinin ve ortam değişkenlerinin veri toplamasını yapılandırmak için kullanılır. stdout ve stderr günlüklerini ayrı ayrı yapılandırabilir ve ayrıca çok satırlı günlüğe kaydetmeyi etkinleştirebilirsiniz. l ConfigMap ile gerçekleştirebileceğiniz belirli yapılandırma şunları içerir:

  • stdout ve stderr günlükleri için etkinleştirme/devre dışı bırakma ve ad alanı filtreleme
  • Küme için ortam değişkenlerinin toplanmasını etkinleştirme/devre dışı bırakma
  • Normal Kube olayları için filtre uygulama
  • Günlük şemasını seçin
  • Çok satırlı günlüğü etkinleştirme/devre dışı bırakma
  • Proxy ayarlarını yoksay

Önemli

Kapsayıcı içgörülerinde veri toplamanın tam yapılandırması, her yöntem farklı bir ayar kümesinin yapılandırılmasına izin verdiğinden küme için hem ConfigMap'in hem de veri toplama kuralının (DCR) düzenlenmesini gerektirebilir.

Ayarların listesi ve DCR kullanarak veri toplamayı yapılandırma işlemi için bkz . Kapsayıcı içgörülerinde veri toplama kuralını kullanarak veri toplamayı yapılandırma.

Önkoşullar

  • 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.
  • 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. Aracı sürümünüzü doğrulamak için Düğüm sekmesinde bir düğüm seçin. Özellikler bölmesinde Aracı Görüntüsü Etiketi özelliğinin değerini not edin. Aracı sürümleri ve her sürüme nelerin dahil olduğu hakkında daha fazla bilgi için bkz . Aracı sürüm notları.

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. Şablon ConfigMap YAML dosyasını indirin ve bir düzenleyicide açın. Zaten bir ConfigMap dosyanız varsa, bunu kullanabilirsiniz.

  2. Veri toplama ayarlarında açıklanan ayarları kullanarak ConfigMap YAML dosyasını özelleştirmelerinizle düzenleyin

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

    kubectl apply -f <configmap_yaml_file.yaml>
    

    Örnek:

    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`.
    

Veri toplama ayarları

Aşağıdaki tabloda, 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 enabledtruegeç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 enabledtruegeçerlidir. ConfigMap'te belirtilmezse, varsayılan değer şudur:
["kube-system","gatekeeper-system"].
[env_var] enabled Boolean true
yanlış
Bu ayar, 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. Ortam değişkenlerinin toplanması genel olarak etkinleştirildiyse, ortam değişkenini AZMON_COLLECT_ENVFalse dockerfile ayarıyla veya bölümün altındaki env: Pod yapılandırma dosyasında olarak ayarlayarak bunu belirli bir kapsayıcı için devre dışı bırakabilirsiniz. Ortam değişkenlerinin koleksiyonu genel olarak devre dışı bırakılmışsa, belirli bir kapsayıcı için koleksiyonu etkinleştiremezsiniz. Kapsayıcı düzeyinde uygulanabilecek tek geçersiz kılma, genel olarak zaten etkinleştirildiğinde koleksiyonu devre dışı bırakmaktır.
[enrich_container_logs] enabled Boolean true
yanlış
Kümedeki Name tüm kapsayıcı günlükleri için ContainerLogV2 veya 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 Analizler'da çok satırlı günlüğe kaydetme. ConfigMap'te belirtilmezse, varsayılan değer olur false. Bunun için ayarın olması v2gerekirschema.
[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.

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

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

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

Yapılandırma değişikliklerini uygulamayla ilgili hatalar da gözden geçirilebilir. Yapılandırma değişiklikleriyle ilgili daha fazla sorun giderme gerçekleştirmek için aşağıdaki seçenekler kullanılabilir:

  • Aynı kubectl logs komutu kullanarak bir aracı pod günlüğünden.

  • Canlı günlüklerden. Canlı günlükler aşağıdaki örneğe benzer hatalar gösterir:

    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
    
  • Log Analytics çalışma alanınızdaki KubeMonAgentEvents tablosundan. Veriler, yapılandırma hataları için hata önem derecesiyle saatte bir gönderilir. Hata yoksa, tablodaki girdide hata bildirmeyen önem derecesine sahip veriler bulunur. Tags özelliği, 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.

Aşağıdaki örneğe benzer çıktı, ek açıklama şema sürümleriyle birlikte görüntülenir:

    Name:           ama-logs-fdf58
    Namespace:      kube-system
    Node:           aks-agentpool-95673144-0/10.240.0.4
    Start Time:     Mon, 10 Jun 2019 15:01:03 -0700
    Labels:         controller-revision-hash=589cc7785d
                    dsName=ama-logs-ds
                    pod-template-generation=1
    Annotations:    agentVersion=1.10.0.1
                  dockerProviderVersion=5.0.0-0
                    schema-versions=v1 

Sık sorulan sorular

Helm aracılığıyla kube-system ad alanında kapsayıcılar için günlük toplamayı etkinleştirmek Nasıl yaparım??

kube-system ad alanında kapsayıcılardan günlük koleksiyonu varsayılan olarak devre dışıdır. Azure İzleyici Aracısı'nda bir ortam değişkeni ayarlayarak günlük toplamayı etkinleştirebilirsiniz. Kapsayıcı içgörüleri GitHub sayfasına bakın.

Sonraki adımlar

  • Bkz. ConfigMap yerine DCR kullanarak veri toplamayı yapılandırmak için bkz . Veri toplama kuralını kullanarak Kapsayıcı içgörülerinde veri toplamayı yapılandırma.