Freigeben über


Ausführen des Protokollsammlerskripts auf dem Azure Operator Nexus Kubernetes-Clusterknoten

Der Microsoft-Support benötigt in bestimmten Szenarien möglicherweise mehr Transparenz innerhalb des Nexus Kubernetes-Clusters. Zu diesem Zweck steht Ihnen ein Protokollsammlungsskript zur Verfügung. Dieses Skript ruft alle erforderlichen Protokolle ab, sodass der Microsoft-Support das Problem besser nachvollziehen und effektiver behandeln kann.

Gesammelte Elemente

Das Protokollsammlerskript wurde entwickelt, um umfassende Daten für verschiedene Aspekte des Systems zu Problembehandlungs- und Analysezwecken zu sammeln. Nachfolgend finden Sie eine Übersicht über die Arten von Diagnosedaten, die gesammelt werden:

System- und Kerneldiagnose

  • Kernelinformationen: Protokolle, lesbare Meldungen, Version und Architektur für eine ausführliche Kerneldiagnose
  • Betriebssystemprotokolle: Grundlegende Protokolle mit Details zu Systemaktivitäten und Containerprotokolle für Systemdienste

Hardware- und Ressourcennutzung

  • Gedrosselte CPU- und E/A-Prozesse: Identifizieren von Drosselungsproblemen und Erkenntnisse zu Leistungsengpässen
  • Netzwerkschnittstellenstatistik: Detaillierte Statistiken für Netzwerkschnittstellen zum Diagnostizieren von Fehlern und Ausfällen

Software und Dienste

  • Installierte Pakete: Eine Liste aller installierten Pakete, die für das Verständnis der Softwareumgebung des Systems unerlässlich sind
  • Aktive Systemdienste: Informationen zu aktiven Diensten, Prozessmomentaufnahmen und detaillierte System- und Prozessstatistiken
  • Containerruntime- und Kubernetes-Komponentenprotokolle: Protokolle für Kubernetes-Komponenten und andere wichtige Dienste für die Clusterdiagnose

Netzwerk und Konnektivität

  • Informationen zur Netzwerkverbindungsnachverfolgung: Conntrack-Statistiken und Verbindungslisten für die Firewalldiagnose
  • Details zu Netzwerkkonfiguration und Schnittstellen: Schnittstellenkonfigurationen, IP-Routing, Adressen und Nachbarinformationen
  • Zusätzliche Schnittstellenkonfigurationen und Protokolle: Protokolle im Zusammenhang mit der Konfiguration aller Schnittstellen innerhalb des Knotens
  • Netzwerkkonnektivitätstests: Testen der externen Netzwerkkonnektivität und der Kubernetes-API-Serverkommunikation
  • Konfiguration der DNS-Auflösung: Konfiguration der DNS-Auflösung zum Diagnostizieren von Problemen bei der Auflösung von Domänennamen
  • Netzwerkkonfiguration und -protokolle: Umfassende Netzwerkdaten, einschließlich Verbindungsnachverfolgung und Schnittstellenkonfigurationen
  • Konfiguration der Containernetzwerkschnittstelle (Container Network Interface, CNI): CNI-Konfiguration für die Containernetzwerkdiagnose

Sicherheit und Compliance

  • SELinux-Status: Melden des SELinux-Modus, um Zugriffssteuerungs- und Sicherheitskontexte zu verstehen
  • IPtables-Regeln: Konfiguration von IPtables-Regelsätzen für Einblicke in Firewalleinstellungen

Speicher und Dateisysteme

  • Bereitstellungspunkte und Volumeinformationen: Detaillierte Informationen zu Bereitstellungspunkten, Volumes, Datenträgernutzung und Dateisystemen

Konfiguration und Verwaltung

  • Systemkonfiguration: Sysctl-Parameter für eine umfassende Ansicht der Kernellaufzeitkonfiguration
  • Kubernetes-Konfiguration und -Integrität: Kubernetes-Setupdetails, einschließlich Konfigurationen und Dienstauflistungen
  • Informationen zur Containerruntime: Konfiguration, Versionsinformationen und Details zu ausgeführten Containern
  • Informationen zur Containerruntimeschnittstelle (Container Runtime Interface, CRI): Betriebsdaten für die Containerruntimeschnittstelle, die bei der Diagnose der Containerorchestrierung hilfreich sind

Voraussetzungen

  • Stellen Sie sicher, dass Sie SSH-Zugriff auf den Nexus Kubernetes-Clusterknoten haben. Wenn der Knoten direkt per IP erreichbar ist, richten Sie direkt eine SSH-Verbindung ein. Verwenden Sie andernfalls Azure Arc für Server mit dem Befehl az ssh arc. Weitere Informationen zu verschiedenen Konnektivitätsmethoden finden Sie im Artikel Herstellen einer Verbindung mit dem Cluster.

Ausführung

Sobald Sie SSH-Zugriff auf den Knoten haben, führen Sie das Protokollsammlerskript aus, indem Sie den Befehl sudo /opt/log-collector/collect.sh ausführen.

Bei der Ausführung wird etwa folgende Ausgabe angezeigt:

Trying to check for root... 
Trying to check for required utilities... 
Trying to create required directories... 
Trying to check for disk space... 
Trying to start collecting logs... Trying to collect common operating system logs... 
Trying to collect mount points and volume information... 
Trying to collect SELinux status... 
.
.
Trying to archive gathered information... 
Finishing up...

        Done... your bundled logs are located in /var/log/<node_name_date_time-UTC>.tar.gz

Herunterladen der Protokolldatei

Nachdem die Protokolldatei generiert wurde, können Sie die generierte Protokolldatei von Ihrem Clusterknoten mithilfe verschiedener Methoden, einschließlich SCP, SFTP oder Azure CLI, auf Ihren lokalen Computer herunterladen. Es ist jedoch wichtig zu beachten, dass SCP oder SFTP nur verwendet werden können, wenn der Clusterknoten direkt per IP erreichbar ist. Ist dies nicht der Fall, können Sie die Azure CLI verwenden, um die Protokolldatei herunterzuladen.

Dieser Befehl sollte Ihnen vertraut sein, da derselbe Befehl für den SSH-Zugriff auf den Nexus Kubernetes-Clusterknoten verwendet wird. Verwenden Sie zum Herunterladen der generierten Protokolldatei vom Knoten auf Ihren lokalen Computer diesen Befehl erneut. Fügen Sie dabei am Ende den Befehl cat zum Kopieren der Datei hinzu.

RESOURCE_GROUP="myResourceGroup"
CLUSTER_NAME="myNexusK8sCluster"
SUBSCRIPTION_ID="<Subscription ID>"
USER_NAME="azureuser"
SSH_PRIVATE_KEY_FILE="<vm_ssh_id_rsa>"
MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --output tsv --query managedResourceGroupConfiguration.name)

Hinweis

Ersetzen Sie die Platzhaltervariablen durch die tatsächlichen Werte, die für Ihre Azure-Umgebung und den Nexus Kubernetes-Cluster relevant sind.

az ssh arc --subscription $SUBSCRIPTION_ID \
    --resource-group $MANAGED_RESOURCE_GROUP \
    --name <VM Name> \
    --local-user $USER_NAME \
    --private-key-file $SSH_PRIVATE_KEY_FILE
    'sudo cat /var/log/node_name_date_time-UTC.tar.gz' > <Local machine path>/node_name_date_time-UTC.tar.gz

Ersetzen Sie im vorherigen Befehl node_name_date_time-UTC.tar.gz durch den Namen der Protokolldatei, die in Ihrem Clusterknoten erstellt wurde, und <Local machine path> durch den Speicherort auf Ihrem lokalen Computer, an dem Sie die Datei speichern möchten.

Nächste Schritte

Nachdem Sie die TAR-Datei auf Ihren lokalen Computer heruntergeladen haben, können Sie sie in das Supportticket hochladen, damit der Microsoft-Support die Protokolle überprüfen kann.