Configurare la raccolta dati e l'ottimizzazione dei costi in Informazioni dettagliate sui contenitori usando la regola di raccolta dati

Questo articolo descrive come configurare la raccolta dati in Informazioni dettagliate sui contenitori usando la regola di raccolta dati (DCR) per il cluster Kubernetes. Sono incluse le configurazioni predefinite per ottimizzare i costi. Quando si esegue l'onboarding di un cluster in Informazioni dettagliate sui contenitori, viene creato un registro DCR. Questo DCR viene usato dall'agente in contenitori per definire la raccolta dati per il cluster.

Il DCR viene usato principalmente per configurare la raccolta dati dei dati relativi alle prestazioni e all'inventario e per configurare l'ottimizzazione dei costi.

Una configurazione specifica che è possibile eseguire con il Registro Azure Container include:

  • Abilitare/disabilitare il filtro della raccolta e dello spazio dei nomi per i dati relativi alle prestazioni e all'inventario.
  • Definire l'intervallo di raccolta per i dati sulle prestazioni e l'inventario
  • Abilitare/disabilitare la raccolta Syslog
  • Selezionare lo schema del log

Importante

La configurazione completa della raccolta di dati in Informazioni dettagliate sui contenitori può richiedere la modifica di DCR e ConfigMap per il cluster, perché ogni metodo consente la configurazione di un set di impostazioni diverso.

Vedere Configurare la raccolta dati in Informazioni dettagliate sui contenitori usando ConfigMap per un elenco di impostazioni e il processo per configurare la raccolta dati usando ConfigMap.

Prerequisiti

  • I cluster del servizio Azure Kubernetes devono usare l'identità gestita assegnata dal sistema o dall'utente. Se il cluster usa un'entità servizio, è necessario eseguire l'aggiornamento a Identità gestita.

Configurare la raccolta dei dati

Il DCR creato quando si abilita Informazioni dettagliate contenitore è denominato MSCI-cluster-region-cluster-name><<>. È possibile visualizzarla nel portale di Azure selezionando l'opzione Regole di raccolta dati nel menu Monitoraggio del portale di Azure. Anziché modificare direttamente il Registro Azure Container, è consigliabile usare uno dei metodi descritti di seguito per configurare la raccolta dati. Per informazioni dettagliate sulle diverse impostazioni disponibili usate da ogni metodo, vedere Parametri di raccolta dati.

Avviso

L'esperienza predefinita di Informazioni dettagliate sui contenitori dipende da tutti i flussi di dati esistenti. La rimozione di uno o più flussi predefiniti rende l'esperienza di Informazioni dettagliate contenitore non disponibile ed è necessario usare altri strumenti, ad esempio dashboard Grafana e query di log per analizzare i dati raccolti.

È possibile usare il portale di Azure per abilitare l'ottimizzazione dei costi nel cluster esistente dopo l'abilitazione di Informazioni dettagliate sui contenitori oppure abilitare Informazioni dettagliate sui contenitori nel cluster insieme all'ottimizzazione dei costi.

  1. Selezionare il cluster nel portale di Azure.

  2. Selezionare l'opzione Insights nella sezione Monitoraggio del menu.

  3. Se nel cluster sono già state abilitate informazioni dettagliate sui contenitori, selezionare il pulsante Monitoraggio Impostazioni. In caso contrario, selezionare Configura Monitoraggio di Azure e vedere Abilitare il monitoraggio nel cluster Kubernetes con Monitoraggio di Azure per informazioni dettagliate sull'abilitazione del monitoraggio.

    Screenshot del cluster del servizio Azure Kubernetes con il pulsante Delle impostazioni di monitoraggio.

  4. Per il servizio Azure Kubernetes e Kubernetes abilitato per Arc, selezionare Usa identità gestita se non è ancora stata eseguita la migrazione del cluster all'autenticazione dell'identità gestita.

  5. Selezionare uno dei set di impostazioni dei costi descritti in Set di impostazioni dei costi.

    Screenshot che mostra le opzioni di onboarding.

  6. Per personalizzare le impostazioni, fare clic su Modifica impostazioni raccolta. Per informazioni dettagliate su ogni impostazione, vedere Parametri di raccolta dati. Per i dati raccolti, vedere Dati raccolti di seguito.

    Screenshot che mostra le opzioni delle impostazioni della raccolta.

  7. Fare clic su Configura per salvare le impostazioni.

Set di impostazioni di costo

Quando si usa il portale di Azure per configurare l'ottimizzazione dei costi, è possibile selezionare le configurazioni predefinite seguenti. È possibile selezionare una di queste impostazioni o specificare impostazioni personalizzate. Per impostazione predefinita, Informazioni dettagliate contenitore usa il set di impostazioni Standard .

Set di impostazioni dei costi Frequenza di raccolta Filtri dello spazio dei nomi Raccolta Syslog Dati raccolti
Standard 1 m None Non abilitata Tutte le tabelle di informazioni dettagliate sui contenitori standard
Ottimizzato per i costi 5 m Esclude kube-system, gatekeeper-system, azure-arc Non abilitata Tutte le tabelle di informazioni dettagliate sui contenitori standard
syslog 1 m None Abilitata per impostazione predefinita Tutte le tabelle di informazioni dettagliate sui contenitori standard
Log ed eventi 1 m None Non abilitata ContainerLog/ContainerLogV2
KubeEvents
KubePodInventory

Dati raccolti

L'opzione Dati raccolti consente di selezionare le tabelle popolate per il cluster. Questo è l'equivalente del parametro quando si esegue la configurazione con l'interfaccia della riga di streams comando o ARM. Se si seleziona un'opzione diversa da Tutti (impostazione predefinita), l'esperienza Informazioni dettagliate contenitore diventa non disponibile ed è necessario usare Grafana o altri metodi per analizzare i dati raccolti.

Screenshot che mostra le opzioni di dati raccolte.

Raggruppamento Tabelle Note
Tutte (impostazione predefinita) Tutte le tabelle di informazioni dettagliate sui contenitori standard Obbligatorio per abilitare le visualizzazioni predefinite di Informazioni dettagliate contenitore
Prestazioni Perf, InsightsMetrics
Log ed eventi ContainerLog o ContainerLogV2, KubeEvents, KubePodInventory Consigliato se sono state abilitate le metriche di Prometheus gestite
Carichi di lavoro, distribuzioni e HPA InsightsMetrics, KubePodInventory, KubeEvents, ContainerInventory, ContainerNodeInventory, KubeNodeInventory, KubeServices
Volumi permanenti InsightsMetrics, KubePVInventory

Parametri di raccolta dati

Nella tabella seguente vengono descritte le impostazioni di raccolta dati supportate e il nome usato per ognuna per diverse opzioni di onboarding.

Nome Descrizione
Frequenza di raccolta
Interfaccia della riga di comando: interval
BRACCIO: dataCollectionInterval
Determina la frequenza con cui l'agente raccoglie i dati. I valori validi sono 1m - 30m in intervalli di 1m. Il valore predefinito è 1m. Se il valore non è compreso nell'intervallo consentito, il valore predefinito è 1 m.
Filtro dello spazio dei nomi
Interfaccia della riga di comando: namespaceFilteringMode
BRACCIO: namespaceFilteringModeForDataCollection
Includi: raccoglie solo i dati dai valori nel campo spazi dei nomi .
Escludi: raccoglie i dati da tutti gli spazi dei nomi, ad eccezione dei valori nel campo spazi dei nomi .
Off: ignora le selezioni degli spazi dei nomi e raccoglie i dati in tutti gli spazi dei nomi.
Filtro dello spazio dei nomi
Interfaccia della riga di comando: namespaces
BRACCIO: namespacesForDataCollection
Matrice di spazi dei nomi Kubernetes separati da virgole per raccogliere i dati di inventario e prestazioni in base allo spazio dei nomiFilteringMode.
Ad esempio, spazi dei nomi = ["kube-system", "default"] con un'impostazione di inclusione raccoglie solo questi due spazi dei nomi. Con un'impostazione Exclude , l'agente raccoglie i dati da tutti gli altri spazi dei nomi, ad eccezione di kube-system e default. Con un'impostazione Disattivata, l'agente raccoglie i dati da tutti gli spazi dei nomi, tra cui kube-system e impostazione predefinita. Gli spazi dei nomi non validi e non riconosciuti vengono ignorati.
Abilitare ContainerLogV2
Interfaccia della riga di comando: enableContainerLogV2
BRACCIO: enableContainerLogV2
Flag booleano per abilitare lo schema ContainerLogV2. Se impostato su true, i log stdout/stderr vengono inseriti nella tabella ContainerLogV2 . In caso contrario, i log del contenitore vengono inseriti nella tabella ContainerLog , a meno che non diversamente specificato in ConfigMap. Quando si specificano i singoli flussi, è necessario includere la tabella corrispondente per ContainerLog o ContainerLogV2.
Dati raccolti
Interfaccia della riga di comando: streams
BRACCIO: streams
Matrice di flussi di tabelle di informazioni dettagliate sui contenitori. Vedere i flussi supportati sopra al mapping delle tabelle.

Tabelle e metriche applicabili

Le impostazioni per la frequenza di raccolta e il filtro dello spazio dei nomi non si applicano a tutti i dati di Informazioni dettagliate contenitore. Le tabelle seguenti elencano le tabelle nell'area di lavoro Log Analytics usate da Informazioni dettagliate contenitore e le metriche raccolte insieme alle impostazioni applicabili a ognuna.

Nota

Questa funzionalità configura le impostazioni per tutte le tabelle di informazioni dettagliate sui contenitori, ad eccezione di ContainerLog e ContainerLogV2. Per configurare le impostazioni per queste tabelle, aggiornare ConfigMap descritto nelle impostazioni di raccolta dati dell'agente.

Nome tabella Intervallo? Namespaces? Osservazioni:
ContainerInventory
ContainerNodeInventory No L'impostazione della raccolta dati per gli spazi dei nomi non è applicabile perché il nodo Kubernetes non è una risorsa con ambito spazio dei nomi
KubeNodeInventory No L'impostazione della raccolta dati per gli spazi dei nomi non è applicabile al nodo Kubernetes non è una risorsa con ambito spazio dei nomi
KubePodInventory
KubePVInventory
KubeServices
KubeEvents No L'impostazione della raccolta dati per l'intervallo non è applicabile agli eventi kubernetes
Perf L'impostazione della raccolta dati per gli spazi dei nomi non è applicabile alle metriche correlate al nodo Kubernetes perché il nodo Kubernetes non è un oggetto con ambito dello spazio dei nomi.
InsightsMetrics Le impostazioni di raccolta dati sono applicabili solo per le metriche che raccolgono gli spazi dei nomi seguenti: container.azm.ms/kubestate, container.azm.ms/pv e container.azm.ms/gpu
Spazio dei nomi delle metriche Intervallo? Namespaces? Osservazioni:
Insights.container/nodes No Node non è una risorsa con ambito spazio dei nomi
Insights.container/pods
Insights.container/containers
Insights.container/persistentvolumes

Valori di flusso

Quando si specificano le tabelle da raccogliere usando l'interfaccia della riga di comando o ARM, è necessario specificare un nome di flusso corrispondente a una determinata tabella nell'area di lavoro Log Analytics. La tabella seguente elenca il nome del flusso per ogni tabella.

Nota

Se si ha familiarità con la struttura di una regola di raccolta dati, i nomi dei flussi in questa tabella vengono specificati nella sezione flussi di dati del record di controllo di dominio.

Stream Tabella informazioni dettagliate sui contenitori
Microsoft-ContainerInventory ContainerInventory
Microsoft-ContainerLog ContainerLog
Microsoft-ContainerLogV2 ContainerLogV2
Microsoft-ContainerNodeInventory ContainerNodeInventory
Microsoft-InsightsMetrics InsightsMetrics
Microsoft-KubeEvents KubeEvents
Microsoft-KubeMonAgentEvents KubeMonAgentEvents
Microsoft-KubeNodeInventory KubeNodeInventory
Microsoft-KubePodInventory KubePodInventory
Microsoft-KubePVInventory KubePVInventory
Microsoft-KubeServices KubeServices
Microsoft-Perf Perf

Impatto sulle visualizzazioni e sugli avvisi

Se attualmente si usano le tabelle precedenti per altri avvisi o grafici personalizzati, la modifica delle impostazioni di raccolta dati potrebbe compromettere tali esperienze. Se si escludono spazi dei nomi o si riduce la frequenza di raccolta dei dati, esaminare gli avvisi, i dashboard e le cartelle di lavoro esistenti usando questi dati.

Per cercare avvisi che fanno riferimento a queste tabelle, eseguire la query di Azure Resource Graph seguente:

resources
| where type in~ ('microsoft.insights/scheduledqueryrules') and ['kind'] !in~ ('LogToMetric')
| extend severity = strcat("Sev", properties["severity"])
| extend enabled = tobool(properties["enabled"])
| where enabled in~ ('true')
| where tolower(properties["targetResourceTypes"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["targetResourceType"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["scopes"]) matches regex 'providers/microsoft.operationalinsights/workspaces($|/.*)?'
| where properties contains "Perf" or properties  contains "InsightsMetrics" or properties  contains "ContainerInventory" or properties  contains "ContainerNodeInventory" or properties  contains "KubeNodeInventory" or properties  contains"KubePodInventory" or properties  contains "KubePVInventory" or properties  contains "KubeServices" or properties  contains "KubeEvents" 
| project id,name,type,properties,enabled,severity,subscriptionId
| order by tolower(name) asc

Passaggi successivi