Konfigurace shromažďování protokolů v Container Insights

Tento článek obsahuje podrobnosti o tom, jak nakonfigurovat shromažďování dat v Přehledech kontejnerů pro cluster Kubernetes po jeho připojení. Pokyny k povolení přehledů kontejnerů v clusteru najdete v tématu Povolení monitorování pro clustery Kubernetes.

Metody konfigurace

Existují dvě metody, které slouží ke konfiguraci a filtrování shromážděných dat v Přehledech kontejnerů. V závislosti na nastavení si možná budete moct vybrat mezi těmito dvěma metodami, nebo budete muset použít jednu nebo druhou. Tyto dvě metody jsou popsány v následující tabulce s podrobnými informacemi v následujících částech.

metoda Popis
Pravidlo shromažďování dat (DCR) Pravidla shromažďování dat jsou sady instrukcí podporujících shromažďování dat pomocí kanálu služby Azure Monitor. DcR se vytvoří, když povolíte Přehledy kontejnerů a můžete upravit nastavení v tomto DCR pomocí webu Azure Portal nebo jiných metod.
ConfigMap Objekty ConfigMap jsou mechanismus Kubernetes, který umožňuje ukládat neutajení dat, jako je konfigurační soubor nebo proměnné prostředí. Container Insights hledá v každém clusteru objekt ConfigMap s konkrétními nastaveními, která definují data, která by měla shromažďovat.

Konfigurace shromažďování dat pomocí DCR

Řadič domény vytvořený službou Container Insights má název MSCI-cluster-region-cluster-cluster-name<<>>. Tento řadič domény můžete zobrazit společně s ostatními uživateli ve vašem předplatném a můžete ho upravit pomocí metod popsaných v tématu Vytvoření a úprava pravidel shromažďování dat (DCR) ve službě Azure Monitor. I když můžete přímo upravit dcR pro konkrétní přizpůsobení, můžete provést většinu požadované konfigurace pomocí níže popsaných metod. Podrobnosti o úpravách DCR přímo najdete v tématu Transformace dat v Přehledech kontejnerů, kde najdete podrobnější informace o rozšířených konfiguracích.

Důležité

Clustery AKS musí používat spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem. Pokud cluster používá instanční objekt, musíte ho aktualizovat tak, aby používal spravovanou identitu přiřazenou systémem nebo spravovanou identitu přiřazenou uživatelem.

Konfigurace DCR pomocí webu Azure Portal

Pomocí webu Azure Portal můžete vybrat z několika přednastavených konfigurací pro shromažďování dat v Přehledech kontejnerů. Tyto konfigurace zahrnují různé sady tabulek a četností shromažďování v závislosti na konkrétních prioritách. Nastavení můžete také přizpůsobit tak, aby shromažďovat jenom potřebujete data. Konfiguraci existujícího clusteru můžete přizpůsobit pomocí webu Azure Portal po povolení přehledů kontejneru nebo můžete tuto konfiguraci provést, když v clusteru povolíte přehledy kontejnerů.

  1. Vyberte cluster na webu Azure Portal.

  2. V části Monitorování v nabídce vyberte možnost Přehledy.

  3. Pokud už je v clusteru povolená služba Container Insights, vyberte tlačítko Nastavení monitorování. Pokud ne, vyberte Konfigurovat Azure Monitor a podrobnosti o povolení monitorování najdete v tématu Povolení monitorování v clusteru Kubernetes se službou Azure Monitor .

    Snímek obrazovky clusteru AKS s tlačítkem nastavení monitorování

  4. V případě Kubernetes s podporou AKS a Arc vyberte Možnost Použít spravovanou identitu , pokud jste cluster ještě nemigrovali na ověřování spravovaných identit.

  5. Vyberte jednu z předvoleb nákladů.

    Snímek obrazovky znázorňující možnosti onboardingu

    Přednastavení nákladů Četnost shromažďování dat Filtry oborů názvů Kolekce Syslog Shromážděná data
    Standard 1 m Nic Neaktivováno Všechny standardní tabulky přehledů kontejnerů
    Optimalizované pro náklady 5 m Vyloučí kube-system, gatekeeper-system, azure-arc. Neaktivováno Všechny standardní tabulky přehledů kontejnerů
    Syslog 1 m Nic Ve výchozím nastavení povoleno Všechny standardní tabulky přehledů kontejnerů
    Protokoly a události 1 m Nic Neaktivováno ContainerLog/ContainerLogV2
    KubeEvents
    KubePodInventory
  6. Pokud chcete nastavení přizpůsobit, klikněte na Upravit nastavení kolekce.

    Snímek obrazovky s možnostmi nastavení kolekce

    Název Popis
    Četnost shromažďování dat Určuje, jak často agent shromažďuje data. Platné hodnoty jsou 1m – 30m v 1m intervalech. Výchozí hodnota je 1 min.
    Filtrování oboru názvů Vypnuto: Shromažďuje data ve všech oborech názvů.
    Zahrnout: Shromažďuje pouze data z hodnot v poli obory názvů.
    Vyloučení: Shromažďuje data ze všech oborů názvů s výjimkou hodnot v poli obory názvů.

    Pole oborů názvů Kubernetes oddělených čárkami pro shromažďování dat inventáře a výkonu na základě oboru názvůFilteringMode Například obory názvů = ["kube-system", "default"] s nastavením Include shromažďuje pouze tyto dva obory názvů. Při nastavení vyloučení agent shromažďuje data ze všech ostatních oborů názvů s výjimkou kube-system a výchozího nastavení.
    Shromážděná data Definuje, které tabulky Container Insights se mají shromažďovat. Popis jednotlivých seskupení najdete níže.
    Povolení ContainerLogV2 Logický příznak pro povolení schématu ContainerLogV2 Pokud je nastavená hodnota true, protokoly stdout/stderr se ingestují do tabulky ContainerLogV2 . Pokud ne, protokoly kontejneru se ingestují do tabulky ContainerLog , pokud není v objektu ConfigMap uvedeno jinak. Při zadávání jednotlivých datových proudů musíte zahrnout odpovídající tabulku pro ContainerLog nebo ContainerLogV2.
    Povolení kolekce Syslog Povolí kolekci Syslog z clusteru.

    Možnost Shromážděná data umožňuje vybrat tabulky naplněné pro cluster. Tabulky jsou seskupené podle nejběžnějších scénářů. Chcete-li určit jednotlivé tabulky, je nutné upravit dcR pomocí jiné metody.

    Snímek obrazovky znázorňující možnosti shromážděných dat

    Seskupení Tabulky Notes
    Vše (výchozí) Všechny standardní tabulky přehledů kontejnerů Vyžaduje se pro povolení výchozích vizualizací Přehledů kontejnerů.
    Výkon Výkon, Metriky přehledů
    Protokoly a události ContainerLog nebo ContainerLogV2, KubeEvents, KubePodInventory Doporučeno, pokud jste povolili spravované metriky Prometheus.
    Úlohy, nasazení a hpa InsightsMetrics, KubePodInventory, KubeEvents, ContainerInventory, ContainerNodeInventory, KubeNodeInventory, KubeServices
    Trvalé svazky InsightsMetrics, KubePVInventory
  7. Kliknutím na Konfigurovat uložíte nastavení.

Použitelné tabulky a metriky pro DCR

Nastavení četnosti shromažďování a filtrování oboru názvů v DCR se nevztahuje na všechna data přehledů kontejnerů. Následující tabulky uvádějí tabulky v pracovním prostoru služby Log Analytics, který používá přehledy kontejnerů, a metriky, které shromažďuje, spolu s nastavením, která platí pro každý z nich.

Název tabulky Interval? Obory názvů? Poznámky
ContainerInventory Ano Yes
ContainerNodeInventory Yes No Nastavení shromažďování dat pro obory názvů se nedá použít, protože uzel Kubernetes není prostředek s oborem názvů
KubeNodeInventory Yes No Nastavení shromažďování dat pro obory názvů není použitelný uzel Kubernetes, není prostředek s oborem názvů.
KubePodInventory Ano Yes
KubePodInventory Ano Yes
KubeServices Ano Yes
KubeEvents No Ano Nastavení shromažďování dat pro interval se nevztahuje na události Kubernetes.
Perf Ano Yes Nastavení shromažďování dat pro obory názvů se nevztahuje na metriky související s uzlem Kubernetes, protože uzel Kubernetes není objekt s oborem názvů.
InsightsMetrics Ano Yes Nastavení shromažďování dat platí jenom pro metriky, které shromažďují následující obory názvů: container.azm.ms/kubestate, container.azm.ms/pv a container.azm.ms/gpu
Názvový prostor metriky Interval? Obory názvů? Poznámky
Insights.container/nodes Yes No Uzel není prostředek s oborem názvů.
Insights.container/pods Ano Yes
Insights.container/containers Ano Yes
Insights.container/persistentvolumes Ano Yes

Hodnoty datových proudů v DCR

Když zadáte tabulky, které se mají shromažďovat pomocí rozhraní příkazového řádku nebo ARM, zadáte název datového proudu, který odpovídá konkrétní tabulce v pracovním prostoru služby Log Analytics. Následující tabulka uvádí název datového proudu pro každou tabulku.

Poznámka:

Pokud znáte strukturu pravidla shromažďování dat, názvy datových proudů v této tabulce se zadají v části Toky dat řadiče domény.

Stream Tabulka Container Insights
Microsoft-ContainerInventory ContainerInventory
Microsoft-ContainerLog ContainerLog
Microsoft-ContainerLogV2 ContainerLogV2
Microsoft-ContainerLogV2-HighScale ContainerLogV2 (režim vysokého škálování)1
Microsoft-ContainerNodeInventory ContainerNodeInventory
Microsoft-InsightsMetrics InsightsMetrics
Microsoft-KubeEvents KubeEvents
Microsoft-KubeMonAgentEvents KubeMonAgentEvents
Microsoft-KubeNodeInventory KubeNodeInventory
Microsoft-KubePodInventory KubePodInventory
Microsoft-KubePVInventory KubePodInventory
Microsoft-KubeServices KubeServices
Microsoft-Perf Perf

1 Ve stejném dcR byste neměli používat Microsoft-ContainerLogV2 i Microsoft-ContainerLogV2-HighScale. Výsledkem budou duplicitní data.

Sdílení DCR s několika clustery

Když povolíte přehledy kontejnerů v clusteru Kubernetes, vytvoří se pro tento cluster nový řadič domény a řadič domény pro každý cluster se dá upravovat nezávisle. Pokud máte více clusterů s vlastní konfigurací monitorování, můžete chtít sdílet jeden řadič domény s více clustery. Pak můžete provést změny v jednom řadiči domény, který se automaticky implementuje pro všechny clustery přidružené k němu.

Řadič domény je přidružený ke clusteru s pravidlem shromažďování dat, které přidruží (DCRA). Pomocí prostředí DCR ve verzi Preview můžete zobrazit a odebrat existující přidružení DCR pro každý cluster. Pomocí této funkce pak můžete přidat přidružení k jednomu řadiči domény pro více clusterů.

Konfigurace shromažďování dat pomocí objektu ConfigMap

Objekty ConfigMap jsou mechanismus Kubernetes, který umožňuje ukládat neutajení dat, jako jsou konfigurační soubor nebo proměnné prostředí. Container Insights hledá v každém clusteru objekt ConfigMap s konkrétními nastaveními, která definují data, která by měla shromažďovat.

Důležité

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.

Požadavky

  • 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ší.

Konfigurace a nasazení objektu ConfigMap

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

  1. Pokud ještě nemáte objekt ConfigMap for Container Insights, stáhněte si soubor CONFIGMap YAML šablony a otevřete ho v editoru.

  2. Upravte soubor YAML configMap pomocí vlastních nastavení. Šablona obsahuje všechna platná nastavení s popisy. Pokud chcete povolit nastavení, odeberte znak komentáře (#) a nastavte jeho hodnotu.

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

    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
    

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

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 -c ama-logs

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

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

Při řešení potíží se změnami konfigurace použijte následující možnosti:

  • Použijte stejný kubectl logs příkaz z podu agenta.

  • V živých protokolech zkontrolujte chyby podobné následujícímu:

    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
    
  • Data se odesílají do KubeMonAgentEvents tabulky v pracovním prostoru služby Log Analytics 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. Sloupec 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.

Nastavení objektu ConfigMap

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

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)
Řídí kolekci 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.
[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 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 tématu Víceřádkové protokolování v Container Insights . Pokud není zadána v objektu ConfigMap, je výchozí hodnota false. To vyžaduje, aby toto nastavení bylo nastaveno schema v2.
[metadata_collection]
enabled
Logická hodnota true
false (nepravda)
Určuje, jestli se metadata shromažďují ve KubernetesMetadata sloupci ContainerLogV2 tabulky.
[metadata_collection]
include_fields
String Pole oddělené čárkami Seznam polí metadat, která se mají zahrnout. Pokud se nastavení nepoužívá, shromažďují se všechna pole. Platné hodnoty jsou ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"]
[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.

Další kroky