Condividi tramite


Raccolta di log su larga scala in Informazioni dettagliate sui contenitori (anteprima)

La modalità a scalabilità elevata è una funzionalità di Informazioni dettagliate sui contenitori che consente di raccogliere i log della console del contenitore (stdout e stderr) con velocità effettiva elevata dai nodi del cluster del servizio Azure Kubernetes. Questa funzionalità consente di raccogliere fino a 50.000 log/sec per nodo.

Note

Questa funzionalità è attualmente in anteprima pubblica. Per altre informazioni, leggere le Condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure.

Overview

Quando la modalità a scalabilità elevata è abilitata, Informazioni dettagliate sui contenitori esegue più modifiche di configurazione con conseguente velocità effettiva complessiva più elevata. Ciò include l'uso di un agente aggiornato e di una pipeline di dati di Monitoraggio di Azure con miglioramenti della scalabilità. Queste modifiche vengono apportate in background da Monitoraggio di Azure e non richiedono input o configurazione dopo l'abilitazione della funzionalità.

La modalità a scalabilità elevata influisce solo sul livello di raccolta dati. Il resto dell'esperienza di Informazioni dettagliate sui contenitori rimane invariato, con i log inseriti nella stessa ContainerLogV2 tabella. Le query e gli avvisi esistenti continuano a funzionare perché vengono raccolti gli stessi dati.

Per ottenere la velocità effettiva massima supportata dei log, è consigliabile usare SKU di macchine virtuali di fascia alta con 16 core CPU o più per i nodi del cluster del servizio Azure Kubernetes. L'uso di SKU di macchine virtuali di fascia bassa influisce sulla velocità effettiva dei log.

Il cluster è idoneo?

La raccolta di log su larga scala è adatta per gli ambienti che inviano più di 2.000 log/sec (o 2 MB/sec) per nodo nei cluster Kubernetes ed è stata progettata e testata per l'invio di fino a 50.000 log/sec per nodo. Usare le query di log seguenti per determinare se il cluster è adatto per la raccolta di log su larga scala.

Log al secondo e per nodo

ContainerLogV2 
| where _ResourceId =~ "<cluster-resource-id>" 
| summarize count() by bin(TimeGenerated, 1s), Computer 
| render timechart 

Dimensioni del log (in MB) al secondo per ogni nodo

 ContainerLogV2 
| where _ResourceId =~ "<cluster-resource-id>"
| summarize BillableDataMB = sum(_BilledSize)/1024/1024 by bin(TimeGenerated, 1s), Computer 
| render timechart 

Prerequisites

  • Interfaccia della riga di comando di Azure versione 2.63.0 o successiva.
  • La versione dell'estensione dell'interfaccia della riga di comando dell'anteprima del servizio Azure Kubernetes deve essere 7.0.0b4 o successiva se è installata un'estensione dell'interfaccia della riga di comando aks-preview.
  • Lo schema del cluster deve essere configurato per ContainerLogV2.
  • Se i limiti predefiniti delle risorse (CPU e memoria) nel contenitore del set di daemon ama-logs non soddisfano i requisiti di scalabilità dei log, contattare il canale di supporto Microsoft per aumentare i limiti delle risorse del contenitore ama-logs.

Requisiti del firewall di rete

Oltre ai requisiti del firewall di rete per il monitoraggio di un cluster Kubernetes, sono necessarie configurazioni aggiuntive nella tabella seguente per abilitare la modalità a scalabilità elevata a seconda del cloud.

Cloud Endpoint Port
Cloud pubblico di Azure <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.com 443
Microsoft Azure gestito da 21Vianet cloud <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.cn 443
Cloud di Azure per enti pubblici <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.us 443

L'endpoint è il Log inserimento dell’endpoint dall'endpoint di raccolta dati (DCE) per la regola di raccolta dati (DCR) usata dal cluster. Questo controller di dominio viene creato quando si abilita la modalità a scalabilità elevata per il cluster e inizia con il prefisso MSCI-ingest.

Screenshot dell'endpoint di inserimento dei log per DCE.

Limitations

Gli scenari seguenti non sono supportati durante la versione di anteprima. Questi verranno risolti quando la funzionalità diventa disponibile a livello generale.

  • Cluster del servizio Azure Kubernetes con nodi Arm64
  • Kubernetes abilitato per Azure Arc
  • Proxy HTTP con certificato attendibile
  • Onboarding tramite il portale di Azure, Criteri di Azure, Terraform e Bicep
  • Configurazione tramite Monitorare le Impostazioni nell'esperienza del portale di Azure Kubernetes Insights
  • Migrazione automatica da Informazioni dettagliate sui contenitori esistente

Abilitare la raccolta di log su larga scala

Seguire i due passaggi nelle sezioni seguenti per abilitare la modalità a scalabilità elevata per il cluster.

Note

La modalità a scalabilità elevata dei log richiede un endpoint di raccolta dati (DCE) per l'inserimento. Un DCE di inserimento viene creato con il prefisso MSCI-ingest per ogni cluster durante l'onboarding. Se l'ambito del collegamento privato di Monitoraggio di Azure è configurato, verrà creato anche DCE di configurazione con il prefisso MSCI-config.

Update configmap

Il primo passaggio consiste nell'aggiornare configmap per il cluster per indicare ai pod deamonset ama-logs di Informazioni dettagliate sui contenitori di effettuare l'esecuzione in modalità a scalabilità elevata.

  1. Seguire le indicazioni in Configurare e distribuire ConfigMap per scaricare e aggiornare ConfigMap per il cluster.

  2. Abilitare la modalità a scalabilità elevata con l'impostazione seguente in agent-settings.

    [agent_settings.high_log_scale] 
      enabled = true 
    
  3. Abilitare la raccolta di metriche interne per popolare il dashboard QoS Grafana descritto di seguito con l'impostazione seguente in agent-settings.

    [agent_settings.fbit_config]
      enable_internal_metrics = "true"
    
  4. Applicare ConfigMap al cluster con i comandi seguenti.

    kubectl config set-context <cluster-name>
    kubectl apply -f <configmap_yaml_file.yaml>
    

Dopo aver applicato questo file configmap, ama-logs-* pod verranno riavviati automaticamente e verranno configurati i pod daemonset ama-logs per l'esecuzione in modalità a scalabilità elevata.

Abilitare la modalità a scalabilità elevata per il componente aggiuntivo Monitoraggio

Abilitare il componente aggiuntivo Monitoraggio con la modalità a scalabilità elevata usando i comandi seguenti dell'interfaccia della riga di comando di Azure per abilitare la modalità log su larga scala per il componente aggiuntivo Monitoraggio a seconda della configurazione del servizio Azure Kubernetes.

Note

Anziché l'interfaccia della riga di comando, è possibile usare un modello di Resource Manager per abilitare la modalità a scalabilità elevata per il componente aggiuntivo Monitoraggio. Vedere Enable Container Insights per indicazioni sull'abilitazione di Container Insights utilizzando un modello ARM. Per abilitare la modalità a scalabilità elevata, usare Microsoft-ContainerLogV2-HighScale anziché Microsoft-ContainerLogV2 nel parametro streams come descritto in Configurare DCR con i modelli di Resource Manager.

Cluster del servizio Azure Kubernetes

az aks enable-addons -a monitoring -g <resource-group-name> -n <cluster-name> --enable-high-log-scale-mode

Cluster privato del servizio Azure Kubernetes esistente

az aks enable-addons -a monitoring -g <resource-group-name> -n <cluster-name> --enable-high-scale-mode --ampls-resource-id /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/microsoft.insights/privatelinkscopes/<resourceName> 

Nuovo cluster del servizio Azure Kubernetes

az aks create -g <cluster-name> -n <cluster-name> enable-addons -a monitoring --enable-high-log-scale-mode

Nuovo cluster privato del servizio Azure Kubernetes

Vedere Creare un cluster del servizio Azure Kubernetes privato per informazioni dettagliate sulla creazione di un cluster privato del servizio Azure Kubernetes. Usare i parametri aggiuntivi --enable-high-scale-mode e --ampls-resource-id per configurare la modalità a scalabilità elevata con l'ID risorsa ambito collegamento privato di Monitoraggio di Azure.

Migration

Se Container Insights è già abilitato per il cluster, è necessario disabilitarlo e riabilitarlo con la modalità a scalabilità elevata.

  • Poiché la modalità a scalabilità elevata usa una pipeline di dati diversa, è necessario assicurarsi che gli endpoint della pipeline non siano bloccati da un firewall o da altre connessioni di rete.
  • La modalità a scalabilità elevata richiede un endpoint di raccolta dati (DCE) per l'inserimento oltre al DCR standard per la raccolta dati. Se sono state creati DCR che usano Microsoft.ContainerLogV2, è necessario sostituirlo con Microsoft.ContainerLogV2-HighScale o i dati verranno duplicati. È anche necessario creare un DCE per l'inserimento e collegarlo al DCR se il DCR non ne usa già uno. Per informazioni di riferimento sulle dipendenze, vedere l’Onboarding di Informazioni dettagliate sui contenitori tramite Azure Resource Manager.

Monitorare le metriche QoS con Prometheus e Grafana

Quando il volume dei log generati è sostanziale, può causare il la limitazione delle richieste e la perdita dei log. Consulta l'articolo Configurare il throttling per Container Insights per indicazioni sulla configurazione dei parametri di throttling e per monitorare la perdita dei log.

Next steps