Condividi tramite


Monitorare il cluster Nexus Kubernetes

Ogni cluster Nexus Kubernetes è costituito da più livelli:

  • Macchine virtuali
  • Livello Kubernetes
  • Pod applicazione

Screenshot del cluster Nexus Kubernetes di esempio.

Figura: cluster Nexus Kubernetes di esempio

In un'istanza, i cluster Nexus Kubernetes vengono forniti con una soluzione di osservabilità facoltativa Container Insights. Container Insights acquisisce i log e le metriche da cluster e carichi di lavoro Nexus Kubernetes. È possibile abilitare questo strumento o distribuire il proprio stack di dati di telemetria, a seconda delle preferenze.

Il cluster Nexus Kubernetes con lo strumento di monitoraggio di Azure ha un aspetto simile al seguente:

Screenshot del cluster Nexus Kubernetes con strumenti di monitoraggio.

Figura: cluster Nexus Kubernetes con strumenti di monitoraggio

Onboarding delle estensioni con l'interfaccia della riga di comando tramite l'autenticazione dell'identità gestita

Documentazione per iniziare a usare l'interfaccia della riga di comando di Azure, installarla su più sistemi operativi e installare le estensioni dell'interfaccia della riga di comando.

Installare la versione più recente delle estensioni dell'interfaccia della riga di comando necessarie.

Monitorare il cluster Nexus Kubernetes

Questa guida pratica illustra i passaggi per abilitare gli agenti di monitoraggio per la raccolta di log di sistema da queste macchine virtuali tramite l'agente di monitoraggio di Azure. Le istruzioni spiegano più dettagliatamente come configurare la raccolta di dati di log in un'area di lavoro Log Analytics.

Prerequisiti

  • Accesso amministratore del cluster al cluster Nexus Kubernetes.

  • Per usare i server abilitati per Azure Arc, registrare i seguenti provider di risorse di Azure nella sottoscrizione:

    • Microsoft.HybridCompute
    • Microsoft.GuestConfiguration
    • Microsoft.HybridConnectivity

Registrare questi provider di risorse, se non è stato fatto in precedenza:

az account set --subscription "{the Subscription Name}"
az provider register --namespace 'Microsoft.HybridCompute'
az provider register --namespace 'Microsoft.GuestConfiguration'
az provider register --namespace 'Microsoft.HybridConnectivity'
  • Assegnare un'entità servizio di Azure ai seguenti ruoli predefiniti di Azure, in base alle esigenze. Assegnare l'entità servizio al gruppo di risorse di Azure che contiene i computer da connettere:
Ruolo Necessario per
Amministratore delle risorse di Azure Connected Machine o Collaboratore Connettere il server di macchine virtuali del cluster Nexus Kubernetes abilitato per Arc nel gruppo di risorse e installare l'agente di monitoraggio di Azure (AMA)
Collaboratore per il monitoraggio o Collaboratore Creare una regola di raccolta di dati (DCR) nel gruppo di risorse e associarvi i server abilitati per Arc
Amministratore dell'accesso utente e Collaboratore per i criteri delle risorse o Collaboratore Necessario se si vogliono usare le assegnazioni di criteri di Azure per assicurarsi che una DCR sia associata ai computer abilitati per Arc
Collaboratore per l'estensione Kubernetes Necessario per distribuire l'estensione K8s per Container Insights

Monitorare il cluster Nexus Kubernetes

Prerequisiti

Per configurare gli strumenti di monitoraggio nei cluster Nexus Kubernetes, l'operatore deve assicurarsi di soddisfare alcuni prerequisiti.

Container Insights archivia questi dati in un'area di lavoro Log Analytics. I dati di log passano all'area di lavoro di cui è stato specificato l'ID risorsa durante l'installazione dell'estensione Container Insights. In caso contrario, i dati vengono incanalati in un'area di lavoro predefinita nel gruppo di risorse associato alla sottoscrizione (in base alla località di Azure).

Un esempio per Gli Stati Uniti orientali può essere il seguente:

  • Nome dell'area di lavoro Log Analytics: DefaultWorkspace-<GUID>-EUS
  • Nome del gruppo di risorse: DefaultResourceGroup-EUS

Eseguire il comando seguente per ottenere un ID della risorsa dell'area di lavoro Log Analytics preesistente:

az login

az account set --subscription "<Subscription Name or ID the Log Analytics workspace is in>"

az monitor log-analytics workspace show --workspace-name "<Log Analytics workspace Name>" \
  --resource-group "<Log Analytics workspace Resource Group>" \
  -o tsv --query id

Per distribuire Container Insights e visualizzare i dati nell'area di lavoro Log Analytics applicabile, sono necessarie determinate assegnazioni di ruoli nell'account. Ad esempio, l'assegnazione di ruolo "Collaboratore". Vedere le istruzioni per l'assegnazione di ruoli obbligatori:

  • Ruolo Collaboratore di Log Analytics: autorizzazioni necessarie per abilitare il monitoraggio dei contenitori in un cluster CNF (con provisioning).
  • Ruolo Lettore di Log Analytics: gli utenti senza il ruolo Collaboratore di Log Analytics ricevono le autorizzazioni per visualizzare i dati nell'area di lavoro Log Analytics dopo aver abilitato il monitoraggio dei contenitori.

Installare l'estensione del cluster

Avviare una sessione in Azure Cloud Shell per accedere al cluster:

az login

az account set --subscription "<Subscription Name or ID the Provisioned Cluster is in>"

Distribuire quindi l'estensione di Container Insights in un cluster Nexus Kubernetes con provisioning usando uno dei due comandi seguenti:

Con l'area di lavoro Log Analytics creata in precedenza dal cliente

az k8s-extension create --name azuremonitor-containers \
  --cluster-name "<Nexus Kubernetes cluster Name>" \
  --resource-group "<Nexus Kubernetes cluster Resource Group>" \
  --cluster-type connectedClusters \
  --extension-type Microsoft.AzureMonitor.Containers \
  --release-train preview \
  --configuration-settings logAnalyticsWorkspaceResourceID="<Log Analytics workspace Resource ID>" \
  amalogsagent.useAADAuth=true

Usare l’area di lavoro Log Analytics predefinita

az k8s-extension create --name azuremonitor-containers \
  --cluster-name "<Nexus Kubernetes cluster Name>" \
  --resource-group "<Nexus Kubernetes cluster Resource Group>" \
  --cluster-type connectedClusters \
  --extension-type Microsoft.AzureMonitor.Containers \
  --release-train preview \
  --configuration-settings amalogsagent.useAADAuth=true

Convalidare l'estensione del cluster

Convalidare la corretta distribuzione dell'abilitazione degli agenti di monitoraggio nei cluster Nexus Kubernetes usando il comando seguente:

az k8s-extension show --name azuremonitor-containers \
  --cluster-name "<Nexus Kubernetes cluster Name>" \
  --resource-group "<Nexus Kubernetes cluster Resource Group>" \
  --cluster-type connectedClusters

Cercare lo stato provisioning "Completato" per l'estensione. Anche il comando "k8s-extension create" potrebbe aver restituito questo stato.

Personalizzare la raccolta di log e metriche

Container Insights offre agli utenti finali funzionalità per ottimizzare la raccolta di log e metriche dai cluster Nexus Kubernetes. Per altre informazioni, vedere le istruzioni per configurare la raccolta dei dati dell'agente di Informazioni dettagliate contenitore.

Nota

Container Insights non raccoglie i log dallo spazio dei kube-system nomi per impostazione predefinita. Per raccogliere i log dallo kube-system spazio dei nomi, è necessario configurare l'agente per raccogliere i log dallo spazio dei kube-system nomi . Questa operazione può essere eseguita rimuovendo lo kube-system spazio dei nomi dal excludedNamespaces campo in ConfigMap seguendo l'approccio configMap configuraiton .

[log_collection_settings]
  [log_collection_settings.stdout]
    # In the absense of this configmap, default value for enabled is true
    enabled = true
    # exclude_namespaces setting holds good only if enabled is set to true
    # kube-system,gatekeeper-system log collection are disabled by default in the absence of 'log_collection_settings.stdout' setting. If you want to enable kube-system,gatekeeper-system, remove them from the following setting.
    # If you want to continue to disable kube-system,gatekeeper-system log collection keep the namespaces in the following setting and add any other namespace you want to disable log collection to the array.
    # In the absense of this configmap, default value for exclude_namespaces = ["kube-system","gatekeeper-system"]
    exclude_namespaces = ["gatekeeper-system"]
    # If you want to collect logs from only selective pods inside system namespaces add them to the following setting. Provide namepace:controllerName of the system pod. NOTE: this setting is only for pods in system namespaces
    # Valid values for system namespaces are: kube-system, azure-arc, gatekeeper-system, kube-public, kube-node-lease, calico-system. The system namespace used should not be present in exclude_namespaces
    # collect_system_pod_logs = ["kube-system:coredns"]

  [log_collection_settings.stderr]
    # Default value for enabled is true
    enabled = true
    # exclude_namespaces setting holds good only if enabled is set to true
    # kube-system,gatekeeper-system log collection are disabled by default in the absence of 'log_collection_settings.stderr' setting. If you want to enable kube-system,gatekeeper-system, remove them from the following setting.
    # If you want to continue to disable kube-system,gatekeeper-system log collection keep the namespaces in the following setting and add any other namespace you want to disable log collection to the array.
    # In the absense of this configmap, default value for exclude_namespaces = ["kube-system","gatekeeper-system"]
    exclude_namespaces = ["gatekeeper-system"]
    # If you want to collect logs from only selective pods inside system namespaces add them to the following setting. Provide namepace:controllerName of the system pod. NOTE: this setting is only for pods in system namespaces
    # Valid values for system namespaces are: kube-system, azure-arc, gatekeeper-system, kube-public, kube-node-lease, calico-system. The system namespace used should not be present in exclude_namespaces
    # collect_system_pod_logs = ["kube-system:coredns"]

Risorse aggiuntive