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ů.
Vyberte cluster na webu Azure Portal.
V části Monitorování v nabídce vyberte možnost Přehledy.
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 .
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.
Vyberte jednu z předvoleb nákladů.
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
KubePodInventoryPokud chcete nastavení přizpůsobit, klikněte na Upravit 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.
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 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:
Pokud ještě nemáte objekt ConfigMap for Container Insights, stáhněte si soubor CONFIGMap YAML šablony a otevřete ho v editoru.
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.
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. SloupecTags
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 true hodnotu . 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 true hodnotu . 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 true toto 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 v2 se použije tabulka ContainerLogV2 . Pokud v1 se 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 v2 vý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ž true se 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 . |