Monitorare il cluster Nexus Kubernetes
Ogni cluster Nexus Kubernetes è costituito da più livelli:
- Macchine virtuali
- Livello Kubernetes
- Pod applicazione
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:
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 di configMap
configurazione .
[log_collection_settings]
[log_collection_settings.stdout]
# In the absence 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 absence 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 namespace: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 absence 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 namespace: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
- Esaminare la documentazione delle cartelle di lavoro e quindi usare cartelle di lavoro Operatore Nexus con dati di telemetria di esempio.
- Rivedere gli avvisi di Monitoraggio di Azure, come creare regole di avviso di Monitoraggio di Azure e usare modelli di avviso Operatore Nexus di esempio.