Vysvětlení nákladů na monitorování pro Přehledy kontejnerů

Tento článek obsahuje doprovodné materiály k cenám služby Container Insights, které vám pomůžou pochopit, jak:

  • Měření nákladů po povolení přehledů kontejnerů pro jeden nebo více kontejnerů
  • Řízení shromažďování dat a snížení nákladů

Tip

Strategie pro snížení nákladů na Azure Monitor najdete v tématu Optimalizace nákladů a Azure Monitor.

Cenový model služby Azure Monitor je primárně založený na množství přijatých dat v gigabajtech za den do pracovního prostoru služby Log Analytics. Náklady na pracovní prostor služby Log Analytics nejsou založené jenom na objemu shromážděných dat, závisí také na vybraném plánu a na tom, jak dlouho jste se rozhodli ukládat data vygenerovaná z clusterů.

Poznámka:

Než to povolíte, přečtěte si téma Odhad nákladů na Azure Monitor a odhad nákladů na přehledy kontejnerů.

Následující typy dat shromažďovaných z clusteru Kubernetes s přehledy kontejnerů ovlivňují náklady a dají se přizpůsobit na základě vašeho využití:

  • Výkon, inventář, Přehledy Metrické metriky a KubeEvents je možné řídit prostřednictvím nastavení optimalizace nákladů.
  • Protokoly kontejneru Stdout a stderr z každého monitorovaného kontejneru v každém oboru názvů Kubernetes v clusteru prostřednictvím objektu ConfigMap agenta
  • Proměnné prostředí kontejneru z každého monitorovaného kontejneru v clusteru
  • Dokončené úlohy nebo pody Kubernetes v clusteru, které nevyžadují monitorování
  • Aktivní výstřižky metrik Prometheus
  • Shromažďování protokolů prostředků protokolů hlavních uzlů Kubernetes v clusteru Azure Kubernetes Service (AKS) za účelem analýzy dat protokolů generovaných hlavními komponentami, jako kube-apiserver jsou a kube-controller-manager.

Řízení příjmu dat za účelem snížení nákladů

Představte si scénář, ve kterém různé organizační jednotky sdílejí infrastrukturu Kubernetes a pracovní prostor služby Log Analytics. Každá obchodní jednotka je oddělená oborem názvů Kubernetes. Pomocí runbooku Využití dat můžete vizualizovat, kolik dat se ingestuje v každém pracovním prostoru. Runbook je k dispozici na kartě Sestavy .

Screenshot that shows the View Workbooks dropdown list.

Tento sešit vám pomůže vizualizovat zdroj dat, aniž byste museli vytvářet vlastní knihovnu dotazů z toho, co sdílíme v naší dokumentaci. V tomto sešitu můžete zobrazit grafy, které zobrazují fakturovatelná data, například:

  • Celková fakturovatelná data ingestována v GB podle řešení
  • Fakturovatelná data ingestována protokoly kontejnerů (protokoly aplikací).
  • Fakturovatelné data protokolů kontejnerů ingestované oborem názvů Kubernetes
  • Fakturovatelná data protokolů kontejnerů ingestovaná podle názvu clusteru.
  • Fakturovatelná data protokolu kontejnerů ingestována podle položky zdroje protokolu.
  • Fakturovatelná diagnostická data ingestována protokoly hlavního uzlu diagnostiky

Screenshot that shows the Data Usage workbook.

Informace o správě práv a oprávnění k sešitu najdete v části Řízení přístupu.

Určení původní příčiny příjmu dat

Kontejnerová Přehledy data se primárně skládají z čítačů metrik (perf, inventory, Přehledy metrics a vlastních metrik) a protokolů (ContainerLog). V závislosti na využití a velikosti clusteru můžete mít různé požadavky a potřeby monitorování.

Když přejdete do části Podle tabulky v sešitu Využití dat, uvidíte rozpis velikostí tabulek pro kontejnerové Přehledy.

Screenshot that shows the By Table breakdown in Data Usage workbook.

Pokud většina dat pochází z jedné z těchto tabulek:

  • Perf
  • InsightsMetrics
  • ContainerInventory
  • ContainerNodeInventory
  • KubeNodeInventory
  • KubePodInventory
  • KubePodInventory
  • KubeServices
  • KubeEvents

Příjem dat můžete upravit pomocí nastavení optimalizace nákladů nebo migrace do doplňku metrik Prometheus.

V opačném případě většina dat patří do tabulky ContainerLog. a podle následujících kroků můžete snížit náklady na ContainerLog.

Snížení nákladů na ContainerLog

Po dokončení analýzy můžete určit, které zdroje generují data, která překračují vaše požadavky, překonfigurovat shromažďování dat. Další informace o konfiguraci kolekce stdout, stderr a proměnných prostředí naleznete v tématu Konfigurace nastavení shromažďování dat agenta.

Následující příklady ukazují, jaké změny můžete v clusteru použít úpravou souboru ConfigMap, aby pomohly řídit náklady.

  1. Zakažte protokoly stdout napříč všemi obory názvů v clusteru úpravou následujícího kódu v souboru ConfigMap pro službu Azure Container Insights, která načítá metriky:

    [log_collection_settings]       
       [log_collection_settings.stdout]          
          enabled = false
    
  2. Zakažte shromažďování protokolů stderru z vašeho vývojového oboru názvů. Příklad: dev-test. Pokračujte ve shromažďování protokolů stderr z jiných oborů názvů, například prod a default, úpravou následujícího kódu v souboru ConfigMap:

    Poznámka:

    Kolekce protokolů kube-system je ve výchozím nastavení zakázaná. Výchozí nastavení se zachová. dev-test Přidání oboru názvů do seznamu oborů názvů vyloučení se použije pro kolekci protokolů stderr.

    [log_collection_settings.stderr]          
       enabled = true          
          exclude_namespaces = ["kube-system", "dev-test"]
    
  3. Zakažte kolekci proměnných prostředí v clusteru úpravou následujícího kódu v souboru ConfigMap. Tato změna platí pro všechny kontejnery v každém oboru názvů Kubernetes.

    [log_collection_settings.env_var]
        enabled = false
    
  4. Pokud chcete vyčistit dokončené úlohy, zadejte zásadu čištění v yaml definice úlohy. Následuje příklad definice úlohy se zásadami vyčištění. Další podrobnosti najdete v dokumentaci k Kubernetes.

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: pi-with-ttl
    spec:
      ttlSecondsAfterFinished: 100
    

Po použití jedné nebo více těchto změn v konfiguraci Mapy ji použijte v clusteru pomocí příkazu kubectl apply -f <config3. map_yaml_file.yaml>. Spuštěním příkazu kubectl apply -f container-azm-ms-agentconfig.yaml například otevřete soubor ve výchozím editoru, který chcete upravit, a pak ho uložte.

Konfigurace základních protokolů

Náklady na příjem dat v ContainerLogu můžete ušetřit v pracovním prostoru služby Log Analytics, který primárně používáte pro ladění, odstraňování potíží a auditování jako základní protokoly. Další informace, včetně omezení základních protokolů, najdete v tématu Konfigurace základních protokolů ve službě Azure Monitor. ContainerLogV2 je nakonfigurovaná verze základních protokolů, kterou kontejner Přehledy používá. ContainerLogV2 obsahuje podrobné textové záznamy protokolu.

Abyste mohli konfigurovat základní protokoly, musíte být ve schématu ContainerLogV2. Další informace najdete v tématu Povolení schématu ContainerLogV2 (Preview).

Výstřižky metrik Prometheus

Poznámka:

Tato část popisuje kolekci metrik Prometheus v pracovním prostoru služby Log Analytics. Tyto informace se nevztahují, pokud ke scrapování metrik Prometheus používáte Managed Prometheus.

Pokud v pracovním prostoru služby Log Analytics shromažďujete metriky Prometheus, ujistěte se, že omezíte počet metrik, které shromažďujete z clusteru:

  • Ujistěte se, že je optimální nastavení frekvence škrábání. Výchozí hodnota je 60 sekund. Frekvenci můžete zvýšit na 15 sekund, ale musíte zajistit, aby metriky, které šrotujete, byly publikovány v této frekvenci. V opačném případě se v intervalech, které přidají k příjmu dat a nákladům na uchovávání dat, se zlikvidují a odešlou do pracovního prostoru služby Log Analytics.
  • Container Insights podporuje seznamy vyloučení a zahrnutí podle názvu metriky. Pokud například v clusteru děláte výstřižky metrik kubedns , můžou se ve výchozím nastavení stovkami z nich škrábat. Pravděpodobně vás ale zajímá jenom podmnožina metrik. Ověřte, že jste zadali seznam metrik pro výstřižky nebo vyloučíte jiné, s výjimkou několika, které se mají uložit na objem příjmu dat. Je snadné povolit výstřižky a nepoužívat mnoho z těchto metrik, což bude přidávat poplatky jenom na faktuře za Log Analytics.
  • Při výstřižku prostřednictvím poznámek podů se ujistěte, že filtrujete podle oboru názvů, abyste vyloučili výstřižky metrik podů z oborů názvů, které nepoužíváte. Příkladem je dev-test obor názvů.

Data shromážděná z clusterů Kubernetes

Data metrik

Container Insights zahrnuje předdefinovanou sadu metrik a shromážděných položek inventáře, které se zapisují jako data protokolu v pracovním prostoru služby Log Analytics. Všechny metriky v následující tabulce se shromažďují každou minutu.

Typ Metriky
Metriky uzlů cpuUsageNanoCores
cpuCapacityNanoCores
cpuAllocatableNanoCores
memoryRssBytes
memoryWorkingSetBytes
memoryCapacityBytes
memoryAllocatableBytes
restartTimeEpoch
used (disk)
free (disk)
used_percent (disk)
io_time (diskio)
writes (diskio)
reads (diskio)
write_bytes (diskio)
write_time (diskio)
iops_in_progress (diskio)
read_bytes (diskio)
read_time (diskio)
err_in (net)
err_out (net)
bytes_recv (net)
bytes_sent (net)
Kubelet_docker_operations (kubelet)
Metriky kontejnerů cpuUsageNanoCores
cpuRequestNanoCores
cpuLimitNanoCores
memoryRssBytes
memoryWorkingSetBytes
memoryRequestBytes
memoryLimitBytes
restartTimeEpoch

Inventář clusteru

Následující seznam obsahuje data inventáře clusteru shromážděná ve výchozím nastavení:

  • KubePodInventory – 1 za pod za minutu
  • KubeNodeInventory – 1 na uzel za minutu
  • KubeServices – 1 za službu za minutu
  • ContainerInventory – 1 za kontejner za minutu

Další kroky

Pokud chcete zjistit, jaké náklady budou pravděpodobně založené na nedávných vzorech využití dat shromážděných pomocí Přehledů kontejnerů, přečtěte si téma Analýza využití v pracovním prostoru služby Log Analytics.