Überwachen eines Nexus Kubernetes-Clusters
Jeder Nexus Kubernetes-Cluster besteht aus mehreren Layern:
- Virtuelle Computer (Virtual Machines, VMs)
- Kubernetes-Layer
- Anwendungspods
Abbildung: Beispiel eines Nexus Kubernetes-Clusters
Auf einer Instanz werden Nexus Kubernetes-Cluster mit einer optionalen Container Insights Observability-Lösung geliefert. Container Insights erfasst die Protokolle und Metriken von Nexus Kubernetes-Clustern und Workloads. Es liegt allein in Ihrem Ermessen, ob Sie dieses Tool aktivieren oder Ihren eigenen Telemetrie-Stack bereitstellen.
So sieht der Nexus Kubernetes-Cluster mit dem Azure-Überwachungstool aus:
Abbildung: Nexus Kubernetes-Cluster mit Überwachungstools
Onboarding von Erweiterungen mit CLI unter Verwendung von Managed Identity Auth
Dokumentation für den Einstieg in die Azure CLI, wie man sie über mehrere Betriebssysteme hinweg installiert und wie man CLI-Erweiterungen installiert.
Installieren Sie die aktuelle Version der erforderlichen CLI-Erweiterungen.
Überwachen eines Nexus Kubernetes-Clusters
Diese Schrittanleitung erklärt, wie Sie mithilfe des Azure Monitor-Agents Überwachungs-Agents für die Sammlung von Systemprotokollen von diesen VMs aktivieren. In der Anleitung finden Sie weitere Einzelheiten zur Einrichtung der Protokolldatenerfassung in einem Log Analytics-Arbeitsbereich.
Voraussetzungen
Cluster-Administrator-Zugriff auf den Nexus Kubernetes-Cluster.
Um Azure Arc-fähige Server zu verwenden, registrieren Sie die folgenden Azure-Ressourcenanbieter in Ihrem Abonnement:
- Microsoft.HybridCompute
- Microsoft.GuestConfiguration
- Microsoft.HybridConnectivity
Registrieren Sie diese Ressourcenanbieter, falls dies noch nicht geschehen ist:
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'
- Weisen Sie ein Azure Dienstprinzipal je nach Bedarf den folgenden integrierten Azure-Rollen zu. Weisen Sie das Dienstprinzipal der Azure-Ressourcengruppe zu, zu der die zu verbindenden Computer gehören:
Role | Erforderlich für |
---|---|
Ressourcenadmin für Azure Connected Machine oder Mitwirkende | Verbinden Sie den Arc-fähigen Nexus Kubernetes-Cluster-VM-Server mit der Ressourcengruppe und installieren Sie den Azure Monitoring Agent (AMA) |
Überwachende Mitwirkende oder Mitwirkende | Erstellen Sie eine Datensammlungsregel (DCR) in der Ressourcengruppe und ordnen Sie ihr Arc-aktivierte Server zu. |
Benutzerzugriffsadmin und Ressourcenrichtlinien-Mitwirkende oder Mitwirkende | Erforderlich, wenn Sie Azure-Richtlinienzuweisung(en) verwenden möchten, um sicherzustellen, dass eine DCR mit Arc-fähigen Computern verbunden ist |
Mitwirkender für Kubernetes-Erweiterungen | Erforderlich für die Bereitstellung der K8s-Erweiterung für Container Insights |
Überwachen eines Nexus Kubernetes-Clusters
Voraussetzungen
Es gibt bestimmte Voraussetzungen, die der Operator sicherstellen sollte, um die Überwachungstools auf Nexus Kubernetes Clustern zu konfigurieren.
Container Insights speichert Daten in einem Log Analytics-Arbeitsbereich. Protokolldaten fließen in den Arbeitsbereich, dessen Ressourcen-ID Sie während der Installation der Container Insights-Erweiterung bereitgestellt haben. Andernfalls fließen die Daten in einen Standard-Arbeitsbereich in der Ressourcengruppe, die mit Ihrem Abonnement verbunden ist (je nach Azure-Standort).
Ein Beispiel für USA, Osten kann wie folgt aussehen:
- Name des Log Analytics-Arbeitsbereichs: DefaultWorkspace-<GUID>-EUS
- Name der Ressourcengruppe: DefaultResourceGroup-EUS
Verwenden Sie den folgenden Befehl, um die bereits existierende Ressourcen-ID Ihres Log Analytics-Arbeitsbereichs zu ermitteln:
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
Für die Bereitstellung von Container Insights und die Anzeige von Daten im entsprechenden Log Analytics-Arbeitsbereich sind bestimmte Rollenzuweisungen in Ihrem Konto erforderlich. Zum Beispiel die Rollenzuweisung „Mitwirkende“. Lesen Sie die Anweisungen zum Zuweisen der erforderlichen Rollen:
- Log Analytics-Mitwirkende-Rolle: erforderliche Berechtigungen zum Aktivieren der Containerüberwachung auf einem CNF-Cluster (bereitgestellt).
- Log Analytics-Lesen Rolle: Nichtmitglieder der Rolle „Log Analytics-Mitwirkende“, erhalten Berechtigungen zum Anzeigen von Daten im Log Analytics-Arbeitsbereich, sobald Sie die Containerüberwachung aktiviert haben.
Installieren der Clustererweiterung
Melden Sie sich bei der Azure Cloud Shell an, um auf den Cluster zuzugreifen:
az login
az account set --subscription "<Subscription Name or ID the Provisioned Cluster is in>"
Stellen Sie nun die Container Insights-Erweiterung auf einem bereitgestellten Nexus Kubernetes-Cluster mit einem der beiden folgenden Befehle bereit:
Mit einem kundenseitig erstellten Log Analytics-Arbeitsbereich
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
Verwenden eines Log Analytics-Standardarbeitsbereichs
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
Überprüfen von Clustererweiterungen
Überprüfen Sie die erfolgreiche Bereitstellung der Aktivierung von Überwachungsagenten auf Nexus Kubernetes Clustern mit dem folgenden Befehl:
az k8s-extension show --name azuremonitor-containers \
--cluster-name "<Nexus Kubernetes cluster Name>" \
--resource-group "<Nexus Kubernetes cluster Resource Group>" \
--cluster-type connectedClusters
Suchen Sie nach dem Bereitstellungsstatus „Erfolgreich“ für die Erweiterung. Der Befehl „k8s-extension create“ hat möglicherweise den Status auch zurückgegeben.
Anpassen von Protokoll- und Metriksammlung
Container Insights bietet Funktionen zur Optimierung der Sammlung von Protokollen und Metriken von Nexus Kubernetes-Clustern. Weitere Informationen finden Sie in den Anweisungen zur Konfiguration der Datensammlung des Container Insights-Agents.
Hinweis
Container Insights sammelt standardmäßig keine Protokolle aus dem Namespace kube-system
. Zum Sammeln von Protokollen aus dem Namespace kube-system
müssen Sie den Agent so konfigurieren, dass Protokolle aus dem Namespace kube-system
erfasst werden.
Dies kann durch Entfernen des kube-system
-Namespace aus dem Feld „excludedNamespaces
“ in der ConfigMap nach dem Ansatz der configMap
-Konfiguration erfolgen.
[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"]
Weitere Ressourcen
- Überprüfen Sie Arbeitsmappendokumentation und verwenden Sie dann die Operator Nexus Telemetrie-Beispielarbeitsmappen.
- Lesen Sie in Azure Monitor-Benachrichtigungen, wie Sie Azure Monitor-Benachrichtigungsregeln erstellen und Beispielvorlagen für Operator Nexus Alert verwenden.