Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo fornisce informazioni dettagliate su come configurare la raccolta dati in Informazioni dettagliate sui contenitori per il cluster Kubernetes dopo l'onboarding. Per indicazioni sull'abilitazione di Informazioni dettagliate sui contenitori nel cluster, vedere Abilitare il monitoraggio per i cluster Kubernetes.
Metodi di configurazione
Esistono due metodi usati per configurare e filtrare i dati raccolti in Informazioni dettagliate sui contenitori. A seconda dell'impostazione, potrebbe essere possibile scegliere tra i due metodi oppure potrebbe essere necessario usare uno o l'altro. I due metodi sono descritti nella tabella seguente con informazioni dettagliate nelle sezioni seguenti.
Metodo | Descrizione |
---|---|
Regola di raccolta dati (DCR) | Le regole di raccolta dati sono insiemi di istruzioni che supportano la raccolta dati usando la pipeline di Monitoraggio di Azure. Quando si abilitano le informazioni dettagliate sui contenitori, viene creato un DCR e puoi modificare le impostazioni in questo DCR usando il portale di Azure o altri metodi. |
ConfigMap | ConfigMaps è un meccanismo Kubernetes che consente di archiviare dati non riservati, ad esempio un file di configurazione o variabili di ambiente. Dati analitici sui contenitori cerca un oggetto ConfigMap in ogni cluster con impostazioni specifiche che definiscono i dati da raccogliere. |
Configurare la raccolta dati con DCR
La DCR creata da Informazioni dettagliate sui contenitori è denominata MSCI-<cluster-region>-<cluster-name>. È possibile visualizzare questo DCR insieme ad altri utenti nella sottoscrizione ed è possibile modificarlo usando i metodi descritti in Creare e modificare regole di raccolta dati in Monitoraggio di Azure. Anche se puoi modificare direttamente il DCR per particolari personalizzazioni, puoi eseguire la maggior parte della configurazione richiesta usando i metodi descritti di seguito. Per informazioni dettagliate sulla modifica diretta del DCR per configurazioni più avanzate, vedere Data transformations in Container insights.
Importante
I cluster AKS devono utilizzare un'identità gestita assegnata dal sistema o dall'utente. Se il cluster usa un'entità servizio, è necessario aggiornarlo per usare un'identità gestita assegnata dal sistema o un'identità gestita assegnata dall'utente.
Configurare il DCR con il portale di Azure
Usando il portale di Azure, è possibile selezionare tra più configurazioni predefinite per la raccolta dei dati in Informazioni dettagliate contenitore. Queste configurazioni includono diversi set di tabelle e frequenze di raccolta a seconda delle priorità specifiche. È anche possibile personalizzare le impostazioni per raccogliere solo i dati necessari. È possibile usare il portale di Azure per personalizzare la configurazione nel cluster esistente dopo l'abilitazione di Informazioni dettagliate sui contenitori oppure è possibile eseguire questa configurazione quando si abilitano informazioni dettagliate sui contenitori nel cluster.
Selezionare il cluster nel portale di Azure.
Selezionare l'opzione Insights nella sezione Monitoraggio del menu.
Se nel cluster è già stato abilitato Container Insights, selezionare il pulsante Impostazioni di monitoraggio. In caso contrario, selezionare Configurare monitoraggio di Azure e vedere Abilitare il monitoraggio nel cluster Kubernetes con Monitoraggio di Azure per informazioni dettagliate sull'abilitazione del monitoraggio.
Per AKS e Kubernetes abilitato per Arc, scegli Usa identità gestita se non hai ancora migrato il cluster all'autenticazione dell'identità gestita.
Selezionare uno dei set di impostazioni di costo.
Set predefinito di costo Frequenza di raccolta Filtri spazio dei nomi Raccolta Syslog Dati raccolti Normale 1 m Nessuno Non abilitato Tutte le tabelle di informazioni dettagliate sui contenitori standard Ottimizzato per i costi 5 m Esclude kube-system, gatekeeper-system, azure-arc Non abilitato Tutte le tabelle di informazioni dettagliate sui contenitori standard Syslog 1 m Nessuno Abilitata per impostazione predefinita Tutte le tabelle di informazioni dettagliate sui contenitori standard Log ed eventi 1 m Nessuno Non abilitato ContainerLog/ContainerLogV2
KubeEvents
KubePodInventoryPer personalizzare le impostazioni, fare clic su Modifica impostazioni raccolta.
Nome Descrizione Frequenza di raccolta Determina la frequenza con cui l'agente raccoglie i dati. I valori validi sono 1 m - 30 m in intervalli di 1 m. Il valore predefinito è 1 m. Questa opzione non può essere configurata tramite ConfigMap. Filtraggio spazio dei nomi Off: raccoglie i dati di tutti i namespace.
Include: raccoglie solo i dati dai valori nel campo namespace.
Escludi: raccoglie i dati da tutti i namespaces tranne che dai valori nel campo namespaces.
Array di spazi dei nomi Kubernetes separati da virgole per raccogliere dati di inventario e prestazioni in base a namespaceFilteringMode. Ad esempio, Spazi dei nomi = ["kube-system", "default"] con un'impostazione Includi raccoglie solo questi due spazi dei nomi. Con un'impostazione Escludi, l'agente raccoglie i dati da tutti gli altri spazi dei nomi, ad eccezione di kube-system e default.Dati raccolti Definisce quali tabelle di informazioni sui container raccogliere. Vedere di seguito per una descrizione di ogni raggruppamento. Abilitare ContainerLogV2 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, salvo se diversamente specificato in ConfigMap. Quando si specificano i singoli flussi, è necessario includere la tabella corrispondente per ContainerLog o ContainerLogV2. Abilitare la raccolta Syslog Abilita la raccolta Syslog dal cluster. L'opzione Dati raccolti consente di selezionare le tabelle popolate per il cluster. Le tabelle sono raggruppate in base agli scenari più comuni. Per specificare singole tabelle, è necessario modificare il DCR usando un altro metodo.
Raggruppamento Tabelle Note Tutte (impostazione predefinita) Tutte le tabelle di informazioni dettagliate sui contenitori standard Obbligatorio per abilitare le visualizzazioni predefinite di Container Insights 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 Fare clic su Configura per salvare le impostazioni.
Tabelle e metriche applicabili per DCR
Le impostazioni per frequenza di raccolta e filtro dello spazio dei nomi nel DCR non si applicano a tutti i dati di Container Insights. Le tabelle seguenti elencano le tabelle nell'area di lavoro Log Analytics usata da Container Insights e le metriche raccolte insieme alle impostazioni applicabili a ognuna di queste.
Nome tabella | Intervallo? | Namespace? | Osservazioni: |
---|---|---|---|
Inventario dei Contenitori | Sì | Sì | |
ContainerNodeInventory | Sì | 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 | Sì | 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 |
KubePodInventory | Sì | Sì | |
InventarioKubePV | Sì | Sì | |
KubeServices | Sì | Sì | |
KubeEvents | NO | Sì | L'impostazione della raccolta dati per l'intervallo non è applicabile agli eventi Kubernetes |
Perf | Sì | Sì | 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 spazio dei nomi. |
InsightsMetrics | Sì | Sì | Le impostazioni di raccolta dati sono applicabili solo per le metriche che raccolgono dati per gli spazi dei nomi seguenti: container.azm.ms/kubestate, container.azm.ms/pv e container.azm.ms/gpu |
Nota
Il filtro dello spazio dei nomi non si applica ai record dell'agente ama-logs. Di conseguenza, anche se lo spazio dei nomi kube-system è elencato tra gli spazi dei nomi esclusi, i record associati al contenitore dell'agente ama-logs verranno comunque inseriti.
Spazio dei nomi delle metriche | Intervallo? | Namespace? | Osservazioni: |
---|---|---|---|
Insights.container/nodes | Sì | NO | Il nodo non è una risorsa con ambito spazio dei nomi |
Insights.container/pods | Sì | Sì | |
Insights.container/containers | Sì | Sì | |
Insights.container/persistentvolumes | Sì | Sì |
Valori di flusso nella regola di raccolta dati
Quando si specificano le tabelle da raccogliere usando l'interfaccia della riga di comando o Azure Resource Manager, è 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 di DCR.
Flusso | Tabella Container Insights |
---|---|
Microsoft-ContainerInventory | Inventario dei Contenitori |
Microsoft-ContainerLog | ContainerLog |
Microsoft-ContainerLogV2 | ContainerLogV2 |
Microsoft-ContainerLogV2-HighScale | ContainerLogV2 (modalità a scalabilità elevata)1 |
Microsoft-ContainerNodeInventory | ContainerNodeInventory |
Microsoft-InsightsMetrics | InsightsMetrics |
Microsoft-KubeEvents | KubeEvents |
Microsoft-KubeMonAgentEvents | KubeMonAgentEvents |
Microsoft-KubeNodeInventory | KubeNodeInventory |
Microsoft-KubePodInventory | KubePodInventory |
Microsoft-KubePVInventory | InventarioKubePV |
Microsoft-KubeServices | KubeServices |
Microsoft-Perf | Perf |
1 Non è consigliabile usare Microsoft-ContainerLogV2 e Microsoft-ContainerLogV2-HighScale nella stessa regola di raccolta dati. Ciò darà origine a dati duplicati.
Condividere DCR con più cluster
Quando si abilitano i Container Insights in un cluster Kubernetes, viene creata una nuova regola di raccolta dati (DCR) per quel cluster e la DCR per ciascun cluster può essere modificata in modo indipendente. Se si hanno più cluster con configurazioni di monitoraggio personalizzate, è possibile condividere una singola regola di raccolta dati con più cluster. È quindi possibile apportare modifiche a una singola regola di raccolta dati implementata automaticamente per tutti i cluster associati.
Una regola di raccolta dati è associata a un cluster con una regola di raccolta dati associata (DCRA). Usa l'esperienza DCR di anteprima per visualizzare e rimuovere le associazioni DCR esistenti per ogni cluster. Puoi usare questa funzionalità per aggiungere un'associazione a una singola DCR per vari cluster.
Configurare la raccolta dati con ConfigMap
ConfigMaps è un meccanismo Kubernetes che consente di archiviare dati non riservati, ad esempio un file di configurazione o variabili di ambiente. Dati analitici sui contenitori cerca un oggetto ConfigMap in ogni cluster con impostazioni specifiche che definiscono i dati da raccogliere.
Importante
ConfigMap è un elenco globale e può essere applicato un solo ConfigMap all'agente per Container Insights. L'applicazione di un altro oggetto ConfigMap avrà priorità sulle impostazioni precedenti della raccolta ConfigMap.
Prerequisiti
- La versione minima dell'agente supportata per raccogliere stdout, stderr e variabili di ambiente dai carichi di lavoro del contenitore è ciprod06142019 o versione successiva.
Configurare e distribuire ConfigMap
Usare la procedura seguente per configurare e distribuire il file di configurazione ConfigMap nel cluster:
Se non si dispone già di un file ConfigMap per Informazioni dettagliate sui contenitori, scaricare il file YAML ConfigMap del modello e aprirlo in un editor.
Modificare il file YAML ConfigMap con le personalizzazioni. Il modello include tutte le impostazioni valide con le descrizioni. Per abilitare un'impostazione, rimuovere il carattere di commento (#) e impostarne il valore.
Creare un oggetto ConfigMap eseguendo il comando kubectl seguente:
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
La modifica della configurazione può richiedere alcuni minuti prima di rendere effettiva la modifica. Tutti i pod dell'agente di Monitoraggio di Azure nel cluster verranno quindi riavviati. Il riavvio è un riavvio in sequenza per tutti i pod dell'agente di Monitoraggio di Azure, quindi non tutti vengono riavviati contemporaneamente. Al termine dei riavvii, verrà visualizzato un messaggio simile al risultato seguente:
configmap "container-azm-ms-agentconfig" created`.
Verificare la configurazione
Per verificare che la configurazione sia stata applicata correttamente a un cluster, usare il comando seguente per esaminare i log da un pod agente.
kubectl logs ama-logs-fdf58 -n kube-system -c ama-logs
Se si verificano errori di configurazione dai pod dell'agente di Monitoraggio di Azure, l'output mostrerà errori simili ai seguenti:
***************Start Config Processing********************
config::unsupported/missing config schema version - 'v21' , using defaults
Usare le opzioni seguenti per eseguire altre operazioni di risoluzione dei problemi delle modifiche alla configurazione:
Usare lo stesso comando
kubectl logs
da un pod agente.Esaminare i log live per individuare errori simili ai seguenti:
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
I dati vengono inviati alla tabella
KubeMonAgentEvents
nell'area di lavoro Log Analytics ogni ora con gravità dell'errore per gli errori di configurazione. Se non sono presenti errori, la voce nella tabella includerà dati con informazioni sulla gravità che non segnalano errori. La colonnaTags
contiene altre informazioni sul pod e sull'ID contenitore in cui si è verificato l'errore e anche la prima occorrenza, l'ultima occorrenza e il conteggio nell'ultima ora.
Verificare la versione dello schema
Le versioni dello schema di configurazione supportate sono disponibili come annotazione pod (versioni dello schema) nel pod agente di Monitoraggio di Azure. È possibile visualizzarli con il comando kubectl seguente.
kubectl describe pod ama-logs-fdf58 -n=kube-system.
Impostazioni di ConfigMap
Nella tabella seguente vengono descritte le impostazioni che è possibile configurare per controllare la raccolta dati con ConfigMap.
Impostazione | Tipo di dati | Valore | Descrizione |
---|---|---|---|
schema-version |
String (con distinzione tra maiuscole e minuscole) | v1 | Usato dall'agente durante l'analisi della ConfigMap. La versione dello schema attualmente supportata è v1. La modifica di questo valore non è supportata e verrà rifiutata quando viene valutato ConfigMap. |
config-version |
Stringa | Consente di tenere traccia della versione del file di configurazione nel sistema/repository del controllo del codice sorgente. Il numero massimo di caratteri consentiti è 10 e tutti gli altri caratteri vengono troncati. | |
[impostazioni_raccolta_log] | |||
[stdout] enabled |
Booleano | vero falso |
Controlla se la raccolta di log del contenitore stdout è abilitata. Se impostato su true e nessuno spazio dei nomi viene escluso per la raccolta di log stdout, i log stdout verranno raccolti da tutti i contenitori in tutti i pod e nodi nel cluster. Se non specificato in ConfigMap, il valore predefinito è true . |
[stdout] exclude_namespaces |
Stringa | Matrice delimitata da virgole | Matrice di spazi dei nomi Kubernetes per i quali i log stdout non verranno raccolti. Questa impostazione è valida solo se enabled è impostata su true . Se non specificato in ConfigMap, il valore predefinito è["kube-system","gatekeeper-system"] . |
[stderr] enabled |
Booleano | vero falso |
Controlla se la raccolta di log del contenitore stderr è abilitata. Se impostato su true e nessuno spazio dei nomi viene escluso per la raccolta di log stderr, i log di stderr verranno raccolti da tutti i contenitori in tutti i pod e nodi del cluster. Se non specificato in ConfigMap, il valore predefinito è true . |
[stderr] exclude_namespaces |
Stringa | Matrice delimitata da virgole | Elenco dei namespace di Kubernetes per i quali i log di stderr non verranno raccolti. Questa impostazione è valida solo se enabled è impostata su true . Se non specificato in ConfigMap, il valore predefinito è["kube-system","gatekeeper-system"] . |
[env_var] enabled |
Booleano | vero falso |
Controlla la raccolta di variabili di ambiente in tutti i pod e i nodi del cluster. Se non specificato in ConfigMap, il valore predefinito è true . |
[enrich_container_logs] enabled |
Booleano | vero falso |
Controlla l'arricchimento del log del contenitore per popolare i valori delle proprietà Name e Image per ogni record di log scritto nella tabella ContainerLog per tutti i log dei contenitori nel cluster. Se non specificato in ConfigMap, il valore predefinito è false . |
[collect_all_kube_events] enabled |
Booleano | vero falso |
Controlla se vengono raccolti eventi Kube di tutti i tipi. Per impostazione predefinita, gli eventi Kube con tipo Normale non vengono raccolti. Quando questa impostazione è true , gli eventi Normali non vengono più filtrati e vengono raccolti tutti gli eventi. Se non specificato in ConfigMap, il valore predefinito è false . |
[schema] containerlog_schema_version |
String (con distinzione tra maiuscole e minuscole) | v2 v1 |
Imposta il formato di inserimento del log. Se v2 , viene utilizzata la tabella ContainerLogV2. Se v1 , viene utilizzata la tabella ContainerLog (questa tabella è stata deprecata). Per i cluster che abilitano informazioni dettagliate sui contenitori usando l'interfaccia della riga di comando di Azure versione 2.54.0 o successiva, l'impostazione predefinita è v2 . Per dettagli, vedere Schema del log delle informazioni sui contenitori. |
[enable_multiline_logs] enabled |
Booleano | vero falso |
Controlla se i log dei contenitori su più righe sono abilitati. Per i dettagli, vedere Registrazione multi-riga in Informazioni dettagliate sui contenitori. Se non specificato in ConfigMap, il valore predefinito è false . È quindi necessario che l'impostazione schema sia v2 . |
[metadata_collection] enabled |
Booleano | vero falso |
Controlla se i metadati vengono raccolti nella colonna KubernetesMetadata della tabella ContainerLogV2 . |
[metadata_collection] include_fields |
Stringa | Matrice delimitata da virgole | Elenco di campi di metadati da includere. Se l'impostazione non viene usata, vengono raccolti tutti i campi. I valori validi sono ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"] |
[log_collection_settings.multi_tenancy] enabled |
Booleano | vero falso |
Controlla se la multi-tenancy è abilitata. Per i dettagli, vedere Registrazione gestita multi-tenant. Se non specificato in ConfigMap, il valore predefinito è false . |
[impostazioni_raccolta_metrica] | |||
[collect_kube_system_pv_metrics] enabled |
Booleano | vero falso |
Consente la raccolta delle metriche di utilizzo del volume persistente (PV) nello spazio dei nomi kube-system. Per impostazione predefinita, le metriche di utilizzo per volumi persistenti con attestazioni di volume persistente nello spazio dei nomi kube-system non vengono raccolte. Quando questa impostazione è impostata su true , vengono raccolte le metriche di utilizzo del volume persistente per tutti gli spazi dei nomi. Se non specificato in ConfigMap, il valore predefinito è false . |
[agent_settings] | |||
[proxy_config] ignore_proxy_settings |
Booleano | vero falso |
Quando true , le impostazioni proxy vengono ignorate. Per entrambi gli ambienti Kubernetes abilitati per Arc e AKS, se il cluster è configurato con un proxy di inoltro, le impostazioni proxy vengono applicate automaticamente e utilizzate per l'agente. Per determinate configurazioni, ad esempio con AMPLS + Proxy, è possibile che la configurazione del proxy venga ignorata. Se non specificato in ConfigMap, il valore predefinito è false . |
[agent_settings.fbit_config] | |||
enable_internal_metrics |
Booleano | vero falso |
Controlla se la raccolta di metriche interne è abilitata. Se non specificato in ConfigMap, il valore predefinito è false . |
Passaggi successivi
- Per informazioni dettagliate sul risparmio sui costi, vedere Filtrare la raccolta dei log in Informazioni dettagliate sui contenitori configurando Informazioni dettagliate sui contenitori per filtrare i dati non necessari.