Adatgyűjtés konfigurálása a Container Insightsban a ConfigMap használatával

Ez a cikk bemutatja, hogyan konfigurálhatja az adatgyűjtést a Container Insightsban a ConfigMap használatával. A Config Térképek egy Kubernetes-mechanizmus, amellyel nem bizalmas adatokat, például konfigurációs fájlokat vagy környezeti változókat tárolhat.

A ConfigMap elsősorban a fürt tárolónaplóinak és környezeti változóinak adatgyűjtésének konfigurálására szolgál. Egyénileg konfigurálhatja az stdout- és stderr-naplókat, valamint engedélyezheti a többsoros naplózást is. l A ConfigMap használatával végrehajtható konkrét konfiguráció a következőket tartalmazza:

  • Stdout- és stderr-naplók engedélyezése/letiltása és névtérszűrés
  • A fürt környezeti változóinak gyűjtésének engedélyezése/letiltása
  • Normál Kube-események szűrése
  • Naplóséma kiválasztása
  • Többsoros naplózás engedélyezése/letiltása
  • Proxybeállítások figyelmen kívül hagyása

Fontos

A Container Insightsban az adatgyűjtés teljes konfigurálásához szükség lehet a fürt ConfigMap-jának és adatgyűjtési szabályának (DCR) szerkesztésére is, mivel minden módszer más beállításkészlet konfigurálását teszi lehetővé.

Lásd: Adatgyűjtés konfigurálása a Container Insightsban adatgyűjtési szabály használatával a beállítások listájához és az adatgyűjtés DCR használatával történő konfigurálásának folyamatához.

Előfeltételek

  • A ConfigMap egy globális lista, és csak egy ConfigMap alkalmazható a Container Insights ügynökére. Egy másik konfigurációtérkép alkalmazása felülírja a korábbi ConfigMap-gyűjteménybeállításokat.
  • A tárolóterhelésekből származó stdout, stderr és környezeti változók gyűjtéséhez támogatott minimális ügynökverzió a ciprod06142019 vagy újabb. Az ügynök verziójának ellenőrzéséhez a Csomópont lapon válasszon ki egy csomópontot. A Tulajdonságok panelen jegyezze fel az Ügynök képcímkéje tulajdonság értékét. Az ügynökverziókról és az egyes kiadásokban szereplő információkról az Ügynök kibocsátási megjegyzéseiben talál további információt.

ConfigMap konfigurálása és üzembe helyezése

A ConfigMap konfigurációs fájljának konfigurálásához és fürtben való üzembe helyezéséhez kövesse az alábbi eljárást:

  1. Töltse le a sablon ConfigMap YAML-fájlt , és nyissa meg egy szerkesztőben. Ha már rendelkezik ConfigMap-fájllal, használhatja azt.

  2. A ConfigMap YAML-fájl szerkesztése a testreszabásokkal az adatgyűjtési beállításokban leírt beállítások használatával

  3. Hozzon létre egy konfigurációtérképet a következő kubectl-parancs futtatásával:

    kubectl apply -f <configmap_yaml_file.yaml>
    

    Példa:

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

    A konfigurációmódosítás érvénybe lépése előtt eltarthat néhány percig. Ezután a fürt összes Azure Monitor Agent-podja újraindul. Az újraindítás az Azure Monitor Agent összes podjának folyamatos újraindítása, ezért nem mindegyik egyszerre indul újra. Ha az újraindítások befejeződnek, a következő eredményhez hasonló üzenetet fog kapni:

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

Adatgyűjtési beállítások

Az alábbi táblázat az adatgyűjtés vezérlésére konfigurálható beállításokat ismerteti.

Beállítás Adattípus Érték Leírás
schema-version Sztring (kis- és nagybetűk megkülönböztetése) v1 Ezt a konfigurációtérképet az ügynök használja. A jelenleg támogatott sémaverzió az 1- es verzió. Az érték módosítása nem támogatott, és a ConfigMap kiértékelésekor a rendszer elutasítja.
config-version Sztring Lehetővé teszi a konfigurációs fájl verziójának nyomon követését a forrásvezérlő rendszerben/adattárban. A megengedett karakterek maximális száma 10, a többi karakter pedig csonkolt.
[log_collection_settings]
[stdout] enabled Logikai true
false
Azt szabályozza, hogy engedélyezve van-e az stdout tárolónapló-gyűjtemény. Ha az true stdout-naplógyűjtésben nincs névtér, és nincs kizárva névtér, az stdout-naplók a fürt összes podjában és csomópontjában lévő összes tárolóból lesznek összegyűjtve. Ha nincs megadva a konfigurációtérképen, az alapértelmezett érték a következő true.
[stdout] exclude_namespaces Sztring Vesszővel tagolt tömb Azon Kubernetes-névterek tömbje, amelyekhez nem lesznek gyűjtve stdout-naplók. Ez a beállítás csak akkor érvényes, ha enabled be van állítva.true Ha nincs megadva a konfigurációtérképen, az alapértelmezett érték a következő:
["kube-system","gatekeeper-system"].
[stderr] enabled Logikai true
false
Azt szabályozza, hogy engedélyezve van-e az stderr-tárolónapló-gyűjtemény. Ha az true stderr-naplógyűjtésben nincs névtér, és nincs kizárva névtér, az stderr-naplók a fürt összes podjában és csomópontjában lévő összes tárolóból lesznek összegyűjtve. Ha nincs megadva a konfigurációtérképen, az alapértelmezett érték a következő true.
[stderr] exclude_namespaces Sztring Vesszővel tagolt tömb Azon Kubernetes-névterek tömbje, amelyekhez az stderr-naplók nem lesznek összegyűjtve. Ez a beállítás csak akkor érvényes, ha enabled be van állítva.true Ha nincs megadva a konfigurációtérképen, az alapértelmezett érték a következő:
["kube-system","gatekeeper-system"].
[env_var] enabled Logikai true
false
Ez a beállítás szabályozza a környezeti változók gyűjteményét a fürt összes podja és csomópontja között. Ha nincs megadva a konfigurációtérképen, az alapértelmezett érték a következő true. Ha a környezeti változók gyűjteménye globálisan engedélyezve van, letilthatja azt egy adott tároló esetében úgy, hogy False a környezeti változót AZMON_COLLECT_ENV dockerfile beállítással vagy a pod szakasz alatti env: konfigurációs fájljában állítja be. Ha a környezeti változók gyűjteménye globálisan le van tiltva, nem engedélyezheti a gyűjteményt egy adott tárolóhoz. A tároló szintjén csak akkor alkalmazható felülbírálás, ha letiltja a gyűjteményt, ha az már globálisan engedélyezve van.
[enrich_container_logs] enabled Logikai true
false
A tárolónapló-bővítést szabályozza, hogy a fürt összes tárolónaplójához kitöltse a NameImageContainerLogV2 vagy ContainerLog táblába írt összes naplórekord és tulajdonság értékét. Ha nincs megadva a konfigurációtérképen, az alapértelmezett érték a következő false.
[collect_all_kube_events] enabled Logikai true
false
Azt szabályozza, hogy a rendszer minden típusú Kube-eseményt gyűjt-e. Alapértelmezés szerint a Normál típusú Kube-események nem lesznek összegyűjtve. Ha ez a beállítás be van trueállítva, a normál események már nem lesznek szűrve, és az összes eseményt összegyűjti a rendszer. Ha nincs megadva a konfigurációtérképen, az alapértelmezett érték a következő false.
[schema] containerlog_schema_version Sztring (kis- és nagybetűk megkülönböztetése) v2
v1
Beállítja a naplóbetöltés formátumát. Ha v2a ContainerLogV2 táblát használja a rendszer. Ha v1a ContainerLog táblát használja (ez a tábla elavult). A tárolóelemzést az Azure CLI 2.54.0-s vagy újabb verziójával engedélyező fürtök esetében az alapértelmezett beállítás a v2. Részletekért tekintse meg a Container Insights naplós sémáját .
[enable_multiline_logs] enabled Logikai true
false
Azt szabályozza, hogy engedélyezve vannak-e a többsoros tárolónaplók. Részletekért tekintse meg a többsoros naplózást a Container Elemzések-ben. Ha nincs megadva a konfigurációtérképen, az alapértelmezett érték a következő false. Ehhez a beállításnak meg schema kell lennie v2.
[metric_collection_settings]
[collect_kube_system_pv_metrics] enabled Logikai true
false
Lehetővé teszi az állandó kötetek (PV) használati metrikáinak gyűjtését a kube-system névtérben. Alapértelmezés szerint a kube-system névtérben állandó mennyiségi jogcímekkel rendelkező állandó kötetek használati metrikái nem lesznek összegyűjtve. Ha ez a beállítás be van állítva true, a rendszer összegyűjti az összes névtér PV-használati metrikáit. Ha nincs megadva a konfigurációtérképen, az alapértelmezett érték a következő false.
[agent_settings]
[proxy_config] ignore_proxy_settings Logikai true
false
Amikor truea rendszer figyelmen kívül hagyja a proxybeállításokat. Az AKS és az Arc-kompatibilis Kubernetes-környezetek esetében, ha a fürt továbbítási proxyval van konfigurálva, akkor a proxybeállítások automatikusan érvényesülnek, és az ügynökhöz lesznek használva. Bizonyos konfigurációk esetében, például az AMPLS+ proxy esetében előfordulhat, hogy a proxykonfiguráció figyelmen kívül hagyása szükséges. Ha nincs megadva a konfigurációtérképen, az alapértelmezett érték a következő false.

Konfiguráció ellenőrzése

Annak ellenőrzéséhez, hogy a konfiguráció sikeresen alkalmazva lett-e egy fürtre, az alábbi paranccsal tekintse át az ügynök podjának naplóit.

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

Ha az Azure Monitor-ügynök podjai konfigurációs hibákba ütköznek, a kimenet az alábbi példához hasonló hibákat jelenít meg:

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

A konfigurációmódosítások alkalmazásával kapcsolatos hibák is megtekinthetők. A konfigurációs módosítások további hibaelhárításához az alábbi lehetőségek állnak rendelkezésre:

  • Egy ügynök podnaplójából ugyanazzal kubectl logs a paranccsal.

  • Élő naplókból. Az élő naplók az alábbi példához hasonló hibákat mutatnak:

    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
    
  • A Log Analytics-munkaterület KubeMonAgentEvents táblájából. A rendszer óránként küldi el az adatokat a konfigurációs hibák hiba súlyosságával. Ha nincsenek hibák, a táblában lévő bejegyzés súlyossági adatokat tartalmaz, amelyek nem jelentenek hibákat. A Címkék tulajdonság további információkat tartalmaz arról a podról és tárolóazonosítóról, amelyen a hiba történt, valamint az első előfordulást, az utolsó előfordulást és az elmúlt óra számát.

Sémaverzió ellenőrzése

A támogatott konfigurációs sémaverziók podjegyzetként (sémaverziókként) érhetők el az Azure Monitor-ügynök podján. Ezeket a következő kubectl paranccsal tekintheti meg.

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

A következő példához hasonló kimenet jelenik meg a széljegyzetséma-verziókkal:

    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 

Gyakori kérdések

Hogyan engedélyezi a naplógyűjtést a Kube-rendszer névterében lévő tárolók számára a Helmen keresztül?

A kube-system névtér tárolóiból származó naplógyűjtemény alapértelmezés szerint le van tiltva. A naplógyűjtést úgy engedélyezheti, hogy beállít egy környezeti változót az Azure Monitor Agentben. Tekintse meg a Container Insights GitHub-oldalát.

Következő lépések