Freigeben über


Überwachen eines Nexus Kubernetes-Clusters

Jeder Nexus Kubernetes-Cluster besteht aus mehreren Layern:

  • Virtuelle Computer (Virtual Machines, VMs)
  • Kubernetes-Layer
  • Anwendungspods

Screenshot: Beispiel eines Nexus Kubernetes-Clusters

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:

Screenshot: Nexus Kubernetes-Cluster mit Überwachungstools

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