Konfigurace shromažďování dat v Container Insights pomocí ConfigMap

Tento článek popisuje, jak nakonfigurovat shromažďování dat v Nástroji Container Insights pomocí configMap. Konfigurace Mapy je mechanismus Kubernetes, který umožňuje ukládat neutajení dat, jako jsou konfigurační soubor nebo proměnné prostředí.

Objekt ConfigMap se primárně používá ke konfiguraci shromažďování dat protokolů kontejneru a proměnných prostředí clusteru. Můžete jednotlivě nakonfigurovat protokoly stdout a stderr a také povolit víceřádkové protokolování. L Konkrétní konfigurace, kterou můžete provést s objektem ConfigMap, zahrnuje:

  • Povolení nebo zakázání a filtrování oboru názvů pro protokoly stdout a stderr
  • Povolení nebo zakázání kolekce proměnných prostředí pro cluster
  • Filtrování normálních událostí Kube
  • Výběr schématu protokolu
  • Povolení nebo zakázání víceřádkového protokolování
  • Ignorovat nastavení proxy serveru

Důležité

Úplná konfigurace shromažďování dat v Container Insights může vyžadovat úpravy objektu ConfigMap i pravidla shromažďování dat (DCR) pro cluster, protože každá metoda umožňuje konfiguraci jiné sady nastavení.

Viz Konfigurace shromažďování dat v Přehledech kontejnerů pomocí pravidla shromažďování dat pro seznam nastavení a procesu konfigurace shromažďování dat pomocí DCR.

Požadavky

  • ConfigMap je globální seznam a pro službu Container Insights může být použit pouze jeden objekt ConfigMap. Použití jiné objektu ConfigMap bude přerušovat předchozí nastavení kolekce ConfigMap.
  • Minimální verze agenta podporovaná pro shromažďování proměnných stdout, stderr a prostředí z úloh kontejnerů je ciprod06142019 nebo novější. Pokud chcete ověřit verzi agenta, vyberte na kartě Uzel uzel. V podokně Vlastnosti si poznamenejte hodnotu vlastnosti Agent Image Tag. Další informace o verzích agenta a o tom, co je součástí každé verze, najdete v poznámkách k verzi agenta.

Konfigurace a nasazení objektu ConfigMap

Pomocí následujícího postupu nakonfigurujte a nasaďte konfigurační soubor ConfigMap do clusteru:

  1. Stáhněte soubor YAML šablony ConfigMap a otevřete ho v editoru. Pokud už máte soubor ConfigMap, můžete ho použít.

  2. Upravte soubor YAML configMap pomocí vlastních nastavení popsaných v nastavení shromažďování dat.

  3. Vytvořte objekt ConfigMap spuštěním následujícího příkazu kubectl:

    kubectl apply -f <configmap_yaml_file.yaml>
    

    Příklad:

    kubectl apply -f container-azm-ms-agentconfig.yaml
    

    Než se změny konfigurace projeví, může trvat několik minut. Potom se restartují všechny pody agenta služby Azure Monitor v clusteru. Restartování je postupné restartování pro všechny pody agenta služby Azure Monitor, takže ne všechny se restartují současně. Po dokončení restartování se zobrazí zpráva podobná následujícímu výsledku:

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

Nastavení shromažďování dat

Následující tabulka popisuje nastavení, která můžete nakonfigurovat pro řízení shromažďování dat.

Nastavení Datový typ Hodnota Popis
schema-version Řetězec (rozlišují se malá a velká písmena) v1 Používá se agentem při analýze této objektu ConfigMap. Aktuálně podporovaná verze schématu je verze 1. Úprava této hodnoty není podporována a při vyhodnocování objektu ConfigMap bude odmítnuta.
config-version String Umožňuje sledovat verzi tohoto konfiguračního souboru v systému nebo úložišti správy zdrojového kódu. Maximální povolený počet znaků je 10 a všechny ostatní znaky jsou zkráceny.
[log_collection_settings]
[stdout] enabled Logická hodnota true
false (nepravda)
Určuje, jestli je povolená kolekce protokolů kontejneru stdout. Pokud je nastavená hodnota true a nejsou vyloučeny žádné obory názvů pro shromažďování protokolů stdout, budou se protokoly stdout shromažďovat ze všech kontejnerů napříč všemi pody a uzly v clusteru. Pokud není zadána v objektu ConfigMap, je výchozí hodnota true.
[stdout] exclude_namespaces String Pole oddělené čárkami Pole oborů názvů Kubernetes, pro které se neshromažďují protokoly stdout. Toto nastavení platí pouze v případě, že enabled je nastaveno na truehodnotu . Pokud není zadána v objektu ConfigMap, výchozí hodnota je
["kube-system","gatekeeper-system"].
[stderr] enabled Logická hodnota true
false (nepravda)
Určuje, jestli je povolená kolekce protokolů kontejneru stderr. Pokud je pro shromažďování protokolů stderr vyloučeno true a nejsou vyloučeny žádné obory názvů, budou se protokoly stderru shromažďovat ze všech kontejnerů napříč všemi pody a uzly v clusteru. Pokud není zadána v objektu ConfigMap, je výchozí hodnota true.
[stderr] exclude_namespaces String Pole oddělené čárkami Pole oborů názvů Kubernetes, pro které se neshromažďují protokoly stderru. Toto nastavení platí pouze v případě, že enabled je nastaveno na truehodnotu . Pokud není zadána v objektu ConfigMap, výchozí hodnota je
["kube-system","gatekeeper-system"].
[env_var] enabled Logická hodnota true
false (nepravda)
Toto nastavení řídí shromažďování proměnných prostředí napříč všemi pody a uzly v clusteru. Pokud není zadána v objektu ConfigMap, je výchozí hodnota true. Pokud je kolekce proměnných prostředí globálně povolená, můžete ji pro konkrétní kontejner zakázat nastavením proměnné AZMON_COLLECT_ENV prostředí na False nastavení Souboru Dockerfile nebo v konfiguračním souboru poduenv: v části. Pokud je kolekce proměnných prostředí globálně zakázaná, nemůžete pro konkrétní kontejner povolit kolekci. Jediným přepsáním, které je možné použít na úrovni kontejneru, je zakázat kolekci, pokud už je povolená globálně.
[enrich_container_logs] enabled Logická hodnota true
false (nepravda)
Řídí rozšiřování protokolu kontejneru, aby se naplnily Name hodnoty a Image hodnoty vlastností pro každý záznam protokolu zapsaný do tabulky ContainerLogV2 nebo ContainerLog pro všechny protokoly kontejneru v clusteru. Pokud není zadána v objektu ConfigMap, je výchozí hodnota false.
[collect_all_kube_events] enabled Logická hodnota true
false (nepravda)
Určuje, jestli se shromažďují události Kube všech typů. Ve výchozím nastavení se neshromažďují události Kube s typem Normální . Pokud je truetoto nastavení nastaveno, události Normal se už nefiltrují a shromažďují se všechny události. Pokud není zadána v objektu ConfigMap, je výchozí hodnota false.
[schema] containerlog_schema_version Řetězec (rozlišují se malá a velká písmena) v2
v1
Nastaví formát příjmu protokolů. Pokud v2se použije tabulka ContainerLogV2 . Pokud v1se použije tabulka ContainerLog (tato tabulka je zastaralá). Pro clustery, které umožňují přehledy kontejnerů pomocí Azure CLI verze 2.54.0 nebo vyšší, je v2výchozím nastavením . Podrobnosti najdete v tématu Schéma protokolu Container Insights.
[enable_multiline_logs] enabled Logická hodnota true
false (nepravda)
Určuje, jestli jsou povolené víceřádkové protokoly kontejneru. Podrobnosti najdete v části Víceřádkové protokolování v kontejneru Přehledy. Pokud není zadána v objektu ConfigMap, je výchozí hodnota false. To vyžaduje, aby toto nastavení bylo nastaveno schemav2.
[metric_collection_settings]
[collect_kube_system_pv_metrics] enabled Logická hodnota true
false (nepravda)
Umožňuje shromažďování metrik využití trvalého svazku (PV) v oboru názvů kube-system. Ve výchozím nastavení se neshromažďují metriky využití trvalých svazků s deklaracemi trvalých svazků v oboru názvů kube-system. Pokud je toto nastavení nastavené na true, shromažďují se metriky využití pv pro všechny obory názvů. Pokud není zadána v objektu ConfigMap, je výchozí hodnota false.
[agent_settings]
[proxy_config] ignore_proxy_settings Logická hodnota true
false (nepravda)
Když truese nastavení proxy serveru ignoruje. Pro prostředí Kubernetes s podporou AKS i Arc platí, že pokud je váš cluster nakonfigurovaný s předávaným proxy serverem, nastavení proxy serveru se automaticky použije a použije pro agenta. U určitých konfigurací, jako je například ampLS + Proxy, můžete chtít konfiguraci proxy serveru ignorovat. Pokud není zadána v objektu ConfigMap, je výchozí hodnota false.

Ověření konfigurace

Pokud chcete ověřit úspěšné použití konfigurace v clusteru, pomocí následujícího příkazu zkontrolujte protokoly z podu agenta.

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

Pokud dojde k chybám konfigurace z podů agenta služby Azure Monitor, zobrazí se ve výstupu chyby podobné následujícímu příkladu:

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

Chyby související s použitím změn konfigurace jsou také k dispozici ke kontrole. K dispozici jsou následující možnosti pro řešení potíží se změnami konfigurace:

  • V protokolu podu agenta pomocí stejného kubectl logs příkazu.

  • Z živých protokolů. Živé protokoly zobrazují chyby podobné následujícímu příkladu:

    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
    
  • Z tabulky KubeMonAgentEvents v pracovním prostoru služby Log Analytics. Data se odesílají každou hodinu se závažností chyby konfigurace. Pokud nedojde k žádným chybám, položka v tabulce bude obsahovat data s informacemi o závažnosti, které hlásí žádné chyby. Vlastnost Tags obsahuje další informace o podu a ID kontejneru, ke kterému došlo k chybě, a také o prvním výskytu, posledním výskytu a počtu za poslední hodinu.

Ověření verze schématu

Podporované verze schématu konfigurace jsou k dispozici jako poznámky podu (verze schématu) v podu agenta služby Azure Monitor. Můžete je zobrazit pomocí následujícího příkazu kubectl.

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

Výstup podobný následujícímu příkladu se zobrazí s verzemi schématu poznámek:

    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 

Nejčastější dotazy

Návody povolit shromažďování protokolů pro kontejnery v oboru názvů kube-system prostřednictvím Nástroje Helm?

Kolekce protokolů z kontejnerů v oboru názvů kube-system je ve výchozím nastavení zakázaná. Shromažďování protokolů můžete povolit nastavením proměnné prostředí v agentu Služby Azure Monitor. Podívejte se na stránku GitHubu s přehledy kontejnerů.

Další kroky