Uruchamianie skryptu modułu zbierającego dzienniki w węźle klastra Azure Operator Nexus Kubernetes
Pomoc techniczna firmy Microsoft może potrzebować dokładniejszej widoczności klastra Nexus Kubernetes w niektórych scenariuszach. Aby to ułatwić, można użyć skryptu zbierania dzienników. Ten skrypt pobiera wszystkie niezbędne dzienniki, dzięki czemu pomoc techniczna firmy Microsoft może lepiej zrozumieć problem i skutecznie go rozwiązać.
Co zbiera
Skrypt modułu zbierającego dzienniki jest przeznaczony do kompleksowego zbierania danych w różnych aspektach systemu na potrzeby rozwiązywania problemów i analizy. Poniżej przedstawiono omówienie typów zbieranych danych diagnostycznych:
Diagnostyka systemu i jądra
- Informacje o jądrze: dzienniki, komunikaty czytelne dla człowieka, wersja i architektura na potrzeby szczegółowej diagnostyki jądra.
- Dzienniki systemu operacyjnego: podstawowe dzienniki zawierające szczegółowe informacje o aktywności systemu i dziennikach kontenerów dla usług systemowych.
Użycie sprzętu i zasobów
- Procesy ograniczane przez procesor CPU i operacje we/wy: identyfikuje problemy z ograniczaniem przepustowości, zapewniając wgląd w wąskie gardła wydajności.
- Statystyki interfejsu sieciowego: szczegółowe statystyki interfejsów sieciowych w celu diagnozowania błędów i popadania.
Oprogramowanie i usługi
- Zainstalowane pakiety: lista wszystkich zainstalowanych pakietów, niezbędna do zrozumienia środowiska oprogramowania systemu.
- Aktywne usługi systemowe: informacje na temat aktywnych usług, migawek procesów oraz szczegółowych statystyk systemu i procesów.
- Dzienniki środowiska uruchomieniowego kontenera i składników platformy Kubernetes: dzienniki składników kubernetes i innych ważnych usług do diagnostyki klastra.
Sieć i łączność
- Informacje dotyczące śledzenia połączeń sieciowych: statystyki usługi Conntrack i listy połączeń na potrzeby diagnostyki zapory.
- Szczegóły konfiguracji i interfejsu sieciowego: konfiguracje interfejsu, routing IP, adresy i informacje o sąsiadach.
- Wszelkie dodatkowe konfiguracje interfejsu i dzienniki: dzienniki związane z konfiguracją wszystkich interfejsów wewnątrz węzła.
- Testy łączności sieciowej: testuje zewnętrzną łączność sieciową i komunikację serwera interfejsu API Kubernetes.
- Konfiguracja rozpoznawania nazw DNS: konfiguracja rozpoznawania nazw DNS na potrzeby diagnozowania problemów z rozpoznawaniem nazw domen.
- Konfiguracja i dzienniki sieci: kompleksowe dane sieciowe, w tym śledzenie połączeń i konfiguracje interfejsu.
- Konfiguracja interfejsu sieciowego kontenera (CNI): konfiguracja sieci CNI na potrzeby diagnostyki sieci kontenerów.
Zabezpieczenia i zgodność
- Stan SELinux: raportuje tryb SELinux, aby zrozumieć konteksty kontroli dostępu i zabezpieczeń.
- Reguły IPtables: konfiguracja zestawów reguł IPtables w celu uzyskania szczegółowych informacji o ustawieniach zapory.
Magazyn i systemy plików
- Informacje o punktach instalacji i woluminie: szczegółowe informacje o punktach instalacji, woluminach, użyciu dysku i specyficznych dla systemu plików.
Konfigurowanie i zarządzanie
- Konfiguracja systemu: Parametry sysctl dla kompleksowego widoku konfiguracji środowiska uruchomieniowego jądra.
- Konfiguracja i kondycja platformy Kubernetes: szczegóły konfiguracji i kondycji platformy Kubernetes, w tym konfiguracje i listy usług.
- Informacje o środowisku uruchomieniowym kontenera: konfiguracja, informacje o wersji i szczegóły dotyczące uruchamiania kontenerów.
- Informacje o interfejsie środowiska uruchomieniowego kontenera (CRI): dane operacji dla interfejsu środowiska uruchomieniowego kontenera, które ułatwiają diagnostykę orkiestracji kontenerów.
Warunek wstępny
- Upewnij się, że masz dostęp SSH do węzła klastra Nexus Kubernetes. Jeśli masz bezpośredni dostęp do adresu IP w węźle, ustanów bezpośrednie połączenie SSH. W przeciwnym razie użyj usługi Azure Arc dla serwerów za pomocą polecenia
az ssh arc
. Aby uzyskać więcej informacji na temat różnych metod łączności, zapoznaj się z artykułem Dotyczącym nawiązywania połączenia z klastrem .
Wykonanie
Po uzyskaniu dostępu SSH do węzła uruchom skrypt modułu zbierającego dzienniki, wykonując polecenie sudo /opt/log-collector/collect.sh
.
Podczas wykonywania obserwujesz dane wyjściowe podobne do następujących:
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
Jak pobrać plik dziennika
Po wygenerowaniu pliku dziennika można pobrać wygenerowany plik dziennika z węzła klastra na maszynę lokalną przy użyciu różnych metod, w tym SCP, SFTP lub interfejsu wiersza polecenia platformy Azure. Należy jednak pamiętać, że punkt połączenia usługi (SCP lub SFTP) jest możliwy tylko wtedy, gdy masz bezpośredni dostęp do adresu IP do węzła klastra. Jeśli nie masz bezpośredniego dostępu do adresu IP, możesz użyć interfejsu wiersza polecenia platformy Azure, aby pobrać plik dziennika.
To polecenie powinno wyglądać znajomo, ponieważ jest to to samo polecenie używane do SSH w węźle klastra Nexus Kubernetes. Aby pobrać wygenerowany plik dziennika z węzła do komputera lokalnego, użyj tego polecenia ponownie, z dodatkiem cat
polecenia na końcu, aby skopiować plik.
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)
Uwaga
Zastąp zmienne zastępcze rzeczywistymi wartościami istotnymi dla środowiska platformy Azure i klastra Nexus Kubernetes.
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
W poprzednim poleceniu zastąp node_name_date_time-UTC.tar.gz
ciąg nazwą pliku dziennika utworzonego w węźle klastra i <Local machine path>
lokalizacją na komputerze lokalnym, w którym chcesz zapisać plik.
Następne kroki
Po pobraniu pliku tar na komputer lokalny możesz przekazać go do biletu pomocy technicznej dla pomocy technicznej firmy Microsoft, aby przejrzeć dzienniki.