PowerFlex: PFMP_SUPPORT — narzędzie do zbierania danych w pakiecie pomocy technicznej
Résumé: pfmp_support — zbierz dane diagnostyczne PowerFlex Manager i zapakuj je w pakiet pomocy technicznej
Instructions
pfmp_support [OPCJE]
OPIS
pfmp_support to narzędzie diagnostyczne, które zbiera informacje debugowania z hosta PowerFlex Manager lub hosta instalatora PowerFlex Manager i archiwizuje je w skompresowanym pakiecie do analizy przez personel pomocy technicznej.
Narzędzie zbiera dane z wielu źródeł, w tym:
- Dane diagnostyczne, konfiguracja i dzienniki Kubernetes
- Informacje o wersji rozwiązania Helm
- Dane środowiska uruchomieniowego Docker i kontenera
- Dzienniki instalatora aplikacji PowerFlex Manager
- Konfiguracja systemu operacyjnego, dzienniki i stan środowiska uruchomieniowego
- Inwentaryzacja sprzętu
Podczas zbierania danych z wielu węzłów klastra Kubernetes standardowy pakiet (--skip-kubernetes-shared nie określono) powinien być zbierany z co najmniej jednego węzła, gdzie kubectl i helm są dostępne i mają dostęp do płaszczyzny sterowania Kubernetes. Na kolejnych węzłach --skip-kubernetes-shared mogą być wykorzystane do zmniejszenia rozmiaru gromadzonych danych.
Wynikowy pakiet jest pojedynczym skompresowanym archiwum (domyślnie tar/gz), które można przenieść do działu pomocy technicznej PowerFlex w celu dalszej analizy.
W danym momencie na hoście można uruchomić tylko jedno wystąpienie pfmp_support. Jeśli nie ma wystarczającej ilości wolnego miejsca na jego wyjście, odmówi uruchomienia (chyba że sprawdzanie spacji zostanie jawnie pominięte).
OPCJE
Opcje ogólne
-
-A KATALOG, --installer-root-path=KATALOG
Użyj DIR jako katalogu podstawowego instalatora PowerFlex Manager. Przydaje się podczas gromadzenia danych instalatora PowerFlex i kontenera instalatora (
atlantic_installer) nie jest uruchomiony. Ustawienie domyślne: wykryte automatycznie lub/var. -
-dOUT_DIR, --katalog-wyjściowy=OUT_DIR
Zapisz wynikowy pakiet w katalogu OUT_DIR. Domyślnie:
<WORK_DIR>/powerflex-pfmpsupport(zobacz --work-dir). -
-h, --pomoc
Wyświetl komunikat pomocy i wyjdź. W połączeniu z --tech, wyświetla również opcje technika.
-
-J, --xz
Użyj formatu tar/xz dla zebranego pakietu zamiast domyślnego formatu tar/gz. Ignorowane, jeśli
tar(1)Nie obsługuje--use-compress-programlubxz(1)nie znaleziono. -
-n PRZESTRZEŃ NAZW,--namespace=PRZESTRZEŃ NAZW
Zbierz dodatkowe dane z przestrzeni nazw Kubernetes specyficznej dla aplikacji. Domyślnie:
powerflex. -
-N, --skip-spacja-check
Pomiń weryfikację wolnego miejsca na dysku przed zebraniem danych.
-
-P ŚCIEŻKA,--collect-path=ŚCIEŻKA
Zbierz dodatkową ścieżkę PATH. Akceptowane są tylko ścieżki bezwzględne. Akceptuje symbole wieloznaczne; Symbole wieloznaczne powinny być podane w cudzysłowie. Tę opcję można określić wiele razy, aby zebrać wiele ścieżek.
-
-q, --cichy, --cichy
Pomija komunikaty na standardowym wyjściu.
-
-s, --skip-kubernetes-shared
Pomiń zbieranie udostępnionych (w całym klastrze) danych Kubernetes. Dane Kubernetes dla poszczególnych węzłów i danych hosta są nadal zbierane. Przydatne w przypadku kolekcji wielowęzłowych w celu zmniejszenia rozmiaru; Dane klastra powinny być zbierane z co najmniej jednego węzła.
-
-wWORK_DIR, --katalog-pracy=WORK_DIR
Użyj katalogu WORK_DIR dla plików tymczasowych. Domyślnie:
/tmp. -
-xPLIK,--plik-wyjściowy=PLIK
Przechowuj zebrany pakiet jako plik o nazwie FILE. Odpowiedni sufiks nazwy pliku (
.tgz,.zipitp.) jest dodawany automatycznie. Jeśli parametr FILE to-(myślnik), zapisuje pakiet na standardowe wyjście (implikuje --quiet). Gdy pakiet jest zapisywany na standardowe wyjście, na dysku nie jest tworzony żaden plik pakietu. Domyślnie:pfmpSupport. -
-z, --zip
Użyj formatu zip dla zebranego pakietu zamiast domyślnego tar/gz. Ignorowane, jeśli
zip(1)nie został znaleziony w systemie. -
--nadpisz-plik-wyjściowy
Zastąp plik wyjściowy, jeśli już istnieje. Gdy plik wyjściowy lub katalog jest jawnie określony (poprzez -x lub -d), domyślnym zachowaniem jest odmowa nadpisania; Ta opcja zastępuje tę opcję.
-
--Tech
Uwzględnij opcje technika w danych wyjściowych komunikatu pomocy.
Opcje dla techników
Poniższe opcje są przeznaczone do użytku przez pracowników pomocy technicznej i są wyświetlane w komunikacie pomocy tylko wtedy, gdy określono opcję --tech.
-
--przechowywanie-katalog-pracy
Zachowaj wygenerowany tymczasowy katalog roboczy po utworzeniu pakietu (zwykle czyszczony automatycznie).
-
--stare-pod-logi
Zbieraj starsze dzienniki zasobników platformy Kubernetes z lokalnego magazynu rsyslog. W przypadku pominięcia bieżąca (
kubectl logs) i poprzednie (kubectl logs --previous) dzienniki kontenerów są nadal zbierane.
STRUKTURA PAKIETU
Pakiet wyjściowy jest pojedynczym skompresowanym archiwum.
- Katalog najwyższego poziomu pakietu jest nazwą hosta systemu objętego zbieraniem danych.
- Ogólne dane wyjściowe poleceń hosta przechodzą do
server/Podkatalogu. Nazwa pliku to<command>+<arguments>+ przyrostek (.txtdomyślnie). Spacje zamienione na_, znaki niealfanumeryczne usunięte.
Przykład:server/ip_-s_addr.txt - output of ip -s addr - Dane wyjściowe poleceń kubectl, helm i docker przechodzą do odpowiednich podkatalogów. Są one dalej uporządkowane według zakresu,
<namespace>/<pod>/<container>Stosownych.
Argumenty związane z nazwą polecenia, zakresem i formatem wyjściowym są usuwane. Nazwa pliku to<subcommand>+<arguments>+ przyrostek (.txtdomyślnie). Spacje zamienione na_, znaki niealfanumeryczne usunięte.
Dane wyjściowe poleceń kubectl exec są przechowywane w obszarzeexec/podkatalogu zasobnika.
Przykłady:kubectl/version.txt- wyjściekubectl versionkubectl/all-namespaces/get_pods.yaml-- wyjściekubectl -o=yaml get --all-namespaces podskubectl/powerflex/asmui-7d6944dcb8-zqqtk/asmui/logs_--previous.txt- wyjściekubectl logs -n powerflex --container asmui --previous asmui-7d6944dcb8-zqqtkkubectl/powerflex/nats-server-box-6d685b4b7d-cf278/nats-box/exec/nats_stream_report.txt- wyjściekubectl exec -n powerflex --container nats-box nats-server-box-6d685b4b7d-cf278 -- nats stream reporthelm/powerflex/get_all_asmmanager.txt- wyjściehelm get -n powerflex all asmmanagerdocker/ps_-a.txt- wyjściedocker ps -a
- Pliki wyodrębnione z kontenerów zasobników są umieszczane w katalogu kontenera w ścieżce systemu plików w kontenerze.
Przykład:kubectl/powerflex/thin-deployer-5657659bc7-gzbq4/thin-deployer/opt/Dell/ASM/deployments/8aaa809298a9efe10198aa58c8874f35/deployment.log- kopia/opt/Dell/ASM/deployments/8aaa809298a9efe10198aa58c8874f35/deployment.logwyodrębnione z wnętrzathin-deployerpojemnikthin-deployer-5657659bc7-gzbq4Pod - Pliki systemu plików hosta są umieszczane w ścieżce systemu plików względem katalogu głównego pakietu.
Przykłady:etc/os-release - copy of /etc/os-releasevar/log/messages - copy of /var/log/messagesproc/cpuinfo - copy of /proc/cpuinfovar/lib/rancher/rke2/agent/logs/kubelet.log - copy of /var/lib/rancher/rke2/agent/logs/kubelet.log
- Ukryte pliki (z prefiksem kropki) są "odkrywane" poprzez usunięcie kropki wiodącej.
- Dziennik wykonywania narzędzia,
pfmp_support.log, umieszczony bezpośrednio pod nazwą> hosta/katalogiem <głównym.
Struktura drzewa katalogów pakietów:
<hostname>/
|-- pfmp_support.log Utility execution log
|-- server/ General command output directory
| |-- ip_-s_addr.txt
| |-- uptime.txt
| |-- uname_-a.txt
| |-- ps_-elF.txt
| |-- dmesg_-T.txt
| +-- ... (one file per collected command)
|
|-- kubectl/ kubectl command output directory
| |-- version.txt Non-namespace-specific commands
| |-- ...
| |-- all-namespaces/ Cross-namespace commands
| | |-- get_pods.txt
| | |-- get_pods.yaml
| | +-- ...
| +-- <namespace>/ Per-namespace Kubernetes data
| +-- <pod>/ Per-pod data
| +-- <container>/ Per-container data
| |-- logs.txt Current container logs
| |-- exec/ Commands executed within container (if any)
| | +-- ...
| |-- <dir>/ Files extracted from container (if any)
| +-- ...
|-- helm/ helm command output directory
|-- docker/ docker command output directory
|
|-- etc/ Host files
| |-- os-release
| |-- sysconfig/
| |-- network/
| +-- ...
|-- var/
| |-- log/
| | |-- messages
| | +-- ...
| |-- lib/rancher/rke2/
| +-- ...
|-- proc/
| |-- cpuinfo
| |-- meminfo
| +-- ...
|-- sys/
|-- ...
|
|-- powerflex-pfmpsupport-extra/ Extra diagnostic data (if present)
+-- powerflex-pfmpsupport-backup/ Backed-up configuration files (if any)
MIEJSCE NA DYSKU
Wymagania dotyczące miejsca na dysku dla plików tymczasowych i wynikowego pakietu mogą się znacznie różnić.
Narzędzie stara się zminimalizować tymczasowe wykorzystanie przestrzeni; Ogranicza się do danych wyjściowych poleceń i kopii zebranego wirtualnego systemu plików (/proc i /sys) plików.
Aby zminimalizować wykorzystanie miejsca na dysku hosta PowerFlex Manager, pakiet można przesyłać strumieniowo ze zdalnego hosta za pomocą polecenia --output-file=-. Podczas przesyłania strumieniowego plik pakietu jest zapisywany bezpośrednio na standardowym wyjściu (stdout); Nie jest tworzony na dysku.
Przed zebraniem danych narzędzie szacuje wymagane miejsce na dysku zarówno dla tymczasowego katalogu roboczego, jak i pakietu wyjściowego.
Jeśli szacowana wymagana ilość miejsca przekracza ilość miejsca dostępnego w odpowiednim systemie (systemach plików), narzędzie zakończy działanie z błędem. To sprawdzenie można pominąć za pomocą polecenia --skip-space-check.
Katalog roboczy i katalog wyjściowy mogą znajdować się w różnych systemach plików; Każdy z nich jest sprawdzany niezależnie.
Szacowane wymagania przestrzenne są zapisywane w pliku dziennika narzędzia, pfmp_support.log.
KOD ZAKOŃCZENIA
| 0 | Pomyślnie ukończono |
| 1 | Błąd (nieprawidłowe argumenty, niewystarczająca ilość miejsca, inna uruchomiona instancja, niepowodzenie generowania pakietu, przechwycenie sygnału itp.) |
PLIKI
<WORK_DIR>/pfmp_support.log |
Dziennik wykonania (również zawarty w pakiecie) |
<WORK_DIR>/powerflex-pfmpsupport-tmp/ |
Tymczasowy katalog pracy (wyczyszczony po pomyślnym zakończeniu) |
/tmp/powerflex-pfmpsupport/pfmpSupport.tgz |
Domyślna lokalizacja pakietu wyjściowego |
<WORK_DIR>/powerflex-pfmpsupport-extra/
/tmp/powerflex-pfmpsupport-extra/ |
Opcjonalne dodatkowe katalogi danych diagnostycznych |
/tmp/powerflex-pfmpsupport-backup/ |
Tymczasowe kopie zapasowe zmodyfikowanych plików konfiguracyjnych (tworzone automatycznie) |
ŚRODOWISKO
Wymagania wstępne
- Narzędzie musi być uruchamiane jako użytkownik root (lub użytkownik z wystarczającymi uprawnieniami do odczytywania plików systemowych, wykonywania poleceń diagnostycznych, interakcji z klastrem Kubernetes i uzyskiwania dostępu)
/proc,/sysitp.). - Standardowe media:
tar,gzip,stat,find,awk,sed,getopt(1)(wzmocniony),nice. - Opcjonalnie:
zip(dla--zip),xz(dla--xz).
Współbieżności
W danej chwili może być uruchomiona tylko jedna instancja pfmp_support. Narzędzie sprawdza istniejącą uruchomioną instancję za pomocą polecenia: pidof(1) i kończy się, jeśli zostanie znaleziony.
Obsługa sygnałów
Pułapki użytkowe INT, EXITi TERM sygnały podczas gromadzenia danych. Po odebraniu sygnału:
- Przywraca wszystkie pliki konfiguracyjne z kopii zapasowej.
- Czyści katalogi tymczasowe.
- Wyjście ze stanem 1.
Dziennik wykonywania jest zachowywany, a jego ścieżka jest wypisywana jako błąd standardowy.
PRZYKŁADY
Odbierz standardowy pakiet pomocy technicznej:
pfmp_support
Zbieraj pakiety z wielu węzłów w klastrze Kubernetes.
- Na jednym węźle z
kubectlihelmuzyskać dostęp, zebrać wszystkie dane Kubernetes:pfmp_support - W kolejnych węzłach pomiń udostępnione dane Kubernetes:
pfmp_support --skip-kubernetes-shared
Przesyłaj strumieniowo pakiet za pośrednictwem połączenia SSH bez tworzenia pliku pakietu na zdalnym hoście PowerFlex Manager:
ssh <host> 'pfmp_support --output-file=-' > pfmpSupport-<host>.tgz
Użyj innego katalogu służbowego, aby uniknąć zapełnienia /tmp:
pfmp_support --work-dir=/var/tmp
Uwzględnij ścieżki niestandardowe w pakiecie:
pfmp_support --collect-path=/opt/custom/app/logs --collect-path='/var/log/app*'