PowerFlex: PFMP_SUPPORT - Utilità di raccolta dei pacchetti di supporto
Résumé: pfmp_support - raccogliere i dati di diagnostica di PowerFlex Manager e inserirli in un pacchetto di supporto
Instructions
pfmp_support [OPZIONI]
DESCRIZIONE
pfmp_support tratta di un'utilità di diagnostica che raccoglie le informazioni di debug da un host del programma di installazione di PowerFlex Manager o PowerFlex Manager e le archivia in un pacchetto compresso per l'analisi da parte del personale di supporto.
L'utilità raccoglie dati da più fonti, tra cui:
- Dati, configurazione e registri di diagnostica Kubernetes
- Informazioni sulla versione di Helm
- Dati di runtime di Docker e container
- Registri del programma di installazione di PowerFlex Manager
- Configurazione, registri e stato di runtime del sistema operativo
- Inventario hardware
Quando si raccolgono dati da più nodi del cluster Kubernetes, è necessario raccogliere un pacchetto standard (--skip-kubernetes-shared not specified) da almeno un nodo, dove kubectl e helm disponibili e con accesso al piano di controllo Kubernetes. Nei nodi successivi --skip-kubernetes-shared possono essere utilizzati per ridurre le dimensioni dei dati raccolti.
Il bundle risultante è un singolo archivio compresso (tar/gz per impostazione predefinita) che può essere trasferito al supporto PowerFlex per ulteriori analisi.
Su un host è possibile eseguire una sola istanza di pfmp_support alla volta. Se non c'è abbastanza spazio libero per il suo output, si rifiuterà di eseguirlo (a meno che il controllo dello spazio non venga esplicitamente ignorato).
OPZIONI
Opzioni generali
-
-A DIR, --percorso-radice-installatore=DIR
Utilizzare DIR come directory di base del programma di installazione di PowerFlex Manager. Utile quando si raccolgono i dati del programma di installazione di PowerFlex e il relativo contenitore (
atlantic_installer) non è in esecuzione. Impostazione predefinita: rilevato automaticamente o/var. -
-dOUT_DIR, --output-dir=OUT_DIR
Conservare il pacchetto risultante nella directory OUT_DIR. Default:
<WORK_DIR>/powerflex-pfmpsupport(vedere --dir-lavoro). -
-h, --aiuto
Mostrare il messaggio di aiuto ed uscire. In combinazione con --tech, visualizza anche le opzioni per i tecnici.
-
-J, --xz
Utilizzare il formato tar/xz per il pacchetto raccolto anziché il formato tar/gz predefinito. Ignorato se il sistema
tar(1)non supporta--use-compress-programoppurexz(1)non è stato trovato. -
-n NAMESPACE,--namespace=NAMESPACE
Raccogliere dati aggiuntivi dal namespace Kubernetes specifico dell'applicazione NAMESPACE. Default:
powerflex. -
-N, --salta il controllo dello spazio
Ignorare la verifica dello spazio libero su disco prima della data collection.
-
-P PERCORSO,--collect-path=PERCORSO
Raccogliere il percorso aggiuntivo PATH. Sono accettati solo percorsi assoluti. Accetta caratteri jolly; I caratteri jolly devono essere racchiusi tra virgolette. Questa opzione può essere specificata più volte per raccogliere più percorsi.
-
-q, --silenzioso, --silenzioso
Soppressione dei messaggi sull'output standard.
-
-s, --skip-kubernetes-condiviso
Ignorare la raccolta di dati Kubernetes condivisi (a livello di cluster). I dati Kubernetes per nodo e i dati dell host vengono ancora raccolti. Utile per le raccolte a più nodi per ridurre le dimensioni; I dati del cluster devono essere raccolti da almeno un nodo.
-
-wWORK_DIR, --dir-lavoro=WORK_DIR
Utilizzare WORK_DIR di directory per i file temporanei. Default:
/tmp. -
-x FILE, --output-file=FILE
Conservare il pacchetto raccolto come file denominato FILE. Il suffisso appropriato del nome file (
.tgz,.zip, ecc.) viene aggiunto automaticamente. Se FILE è-(trattino), scrive il pacchetto nell'output standard (implica --quiet). Quando il pacchetto viene scritto nell'output standard, non viene creato alcun file del pacchetto sul disco. Default:pfmpSupport. -
-z, --zip
Utilizzare il formato zip per il pacchetto raccolto anziché il tar/gz predefinito. Ignorato se
zip(1)non viene trovato nel sistema. -
--sovrascrivi-file-di-output
Sovrascrivere il file di output, se già esistente. Quando un file o una directory di output è specificato in modo esplicito (tramite -x o -d), il comportamento predefinito è quello di rifiutare la sovrascrittura; Questa opzione ha la precedenza su questo.
-
--Tech
Includere le opzioni del tecnico nell'output del messaggio della guida.
Opzioni per il tecnico
Le seguenti opzioni sono destinate all'utilizzo da parte dei tecnici del supporto e vengono visualizzate nel messaggio di aiuto solo quando è specificato --tech.
-
--mantenere-dir-lavoro
Conservare la directory di lavoro temporanea generata dopo la creazione del pacchetto (normalmente pulita automaticamente).
-
--vecchi-registri-pod-
Raccogliere i registri pod Kubernetes meno recenti dallo storage rsyslog locale. Se omesso, la corrente (
kubectl logs) e precedenti (kubectl logs --previous) i log del contenitore vengono ancora raccolti.
STRUTTURA DEL FASCIO
Il bundle di output è un singolo archivio compresso.
- La directory di primo livello del pacchetto è il nome host del sistema raccolto.
- Gli output generali dei comandi host vanno in un
server/Sottodirectory. Il nome del file è<command>+<arguments>+ suffisso (.txtper impostazione predefinita). Spazi sostituiti con_, caratteri non alfanumerici rimossi.
Esempio:server/ip_-s_addr.txt - output of ip -s addr - Gli output dei comandi kubectl, helm e docker vanno nelle rispettive sottodirectory. Sono ulteriormente organizzati per ambito,
<namespace>/<pod>/<container>, se del caso.
Gli argomenti correlati al nome del comando, all'ambito e al formato di output vengono rimossi. Il nome del file è<subcommand>+<arguments>+ suffisso (.txtper impostazione predefinita). Spazi sostituiti con_, caratteri non alfanumerici rimossi.
Gli output del comando Kubectl Exec vengono archiviati inexec/della sottodirectory del pod.
Esempi:kubectl/version.txt- Output dikubectl versionkubectl/all-namespaces/get_pods.yaml-- uscita dikubectl -o=yaml get --all-namespaces podskubectl/powerflex/asmui-7d6944dcb8-zqqtk/asmui/logs_--previous.txt- Output dikubectl logs -n powerflex --container asmui --previous asmui-7d6944dcb8-zqqtkkubectl/powerflex/nats-server-box-6d685b4b7d-cf278/nats-box/exec/nats_stream_report.txt- Output dikubectl exec -n powerflex --container nats-box nats-server-box-6d685b4b7d-cf278 -- nats stream reporthelm/powerflex/get_all_asmmanager.txt- Output dihelm get -n powerflex all asmmanagerdocker/ps_-a.txt- Output didocker ps -a
- I file estratti dai container pod vengono posizionati nella directory del container nel percorso del file system in-container.
Esempio:kubectl/powerflex/thin-deployer-5657659bc7-gzbq4/thin-deployer/opt/Dell/ASM/deployments/8aaa809298a9efe10198aa58c8874f35/deployment.log- copia di/opt/Dell/ASM/deployments/8aaa809298a9efe10198aa58c8874f35/deployment.logestratte dall'interno delthin-deployercontenitore delthin-deployer-5657659bc7-gzbq4Pod - I file del file system host vengono posizionati nel percorso del file system relativo alla root del pacchetto.
Esempi: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
- I file nascosti (con prefisso punto) vengono "nascosti" rimuovendo il punto iniziale.
- Registro di esecuzione dell'utilità,
pfmp_support.log, posizionato direttamente sotto il <nome> host/root.
Struttura ad albero delle directory del pacchetto:
<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)
SPAZIO SU DISCO
I requisiti di spazio su disco per i file temporanei e il pacchetto risultante possono variare notevolmente.
L'utilità tenta di ridurre al minimo l'utilizzo temporaneo dello spazio; È limitato agli output dei comandi e alle copie del file system virtuale raccolto (/proc e /sys) file.
Per ridurre al minimo l'utilizzo dello spazio su disco sull host PowerFlex Manager, il pacchetto può essere trasmesso da un host remoto con --output-file=-. Durante lo streaming, il file del bundle viene scritto direttamente nell'output standard (stdout); Non viene creato su disco.
Prima di raccogliere i dati, l'utilità stima lo spazio su disco richiesto sia per la directory di lavoro temporanea che per il pacchetto di output.
Se lo spazio richiesto stimato supera lo spazio disponibile sui file system pertinenti, l'utilità viene terminata con un errore. Questo controllo può essere ignorato con --skip-space-check.
La directory di lavoro e la directory di output possono risiedere su file system diversi; Ognuno di essi viene controllato in modo indipendente.
I requisiti di spazio stimati vengono scritti nel file di log dell'utilità, pfmp_support.log.
STATO DI USCITA
| 0 | Completamento |
| 1 | Errore (argomenti non validi, spazio insufficiente, un'altra istanza già in esecuzione, errore di generazione del pacchetto, segnale catturato, ecc.) |
FILE
<WORK_DIR>/pfmp_support.log |
Registro di esecuzione (anch'esso incluso nel pacchetto) |
<WORK_DIR>/powerflex-pfmpsupport-tmp/ |
Directory di lavoro temporanea (pulita in caso di esito positivo) |
/tmp/powerflex-pfmpsupport/pfmpSupport.tgz |
Posizione predefinita del bundle di output |
<WORK_DIR>/powerflex-pfmpsupport-extra/
/tmp/powerflex-pfmpsupport-extra/ |
Directory aggiuntive opzionali dei dati di diagnostica |
/tmp/powerflex-pfmpsupport-backup/ |
Backup temporanei dei file di configurazione modificati (creati automaticamente) |
AMBIENTE
Prerequisiti
- L'utilità deve essere eseguita come root (o come utente con privilegi sufficienti per leggere i file di sistema, eseguire comandi di diagnostica, interagire con il cluster Kubernetes e accedere a
/proc,/sys, ecc.). - Utenze standard:
tar,gzip,stat,find,awk,sed,getopt(1)(migliorato),nice. - Opzionale:
zip(ad esempio,--zip),xz(ad esempio,--xz).
Concorrenza
È possibile eseguire una sola istanza di pfmp_support alla volta. L'utilità verifica la presenza di un'istanza in esecuzione esistente tramite pidof(1) e termina se ne viene trovato uno.
Gestione del segnale
Le trap di utilità INT, EXITe TERM durante la raccolta dei dati. Alla ricezione di un segnale:
- Ripristina tutti i file di configurazione di cui è stato eseguito il backup.
- Pulisce le directory temporanee.
- Uscite con stato 1.
Il registro di esecuzione viene conservato e il relativo percorso viene stampato con l'errore standard.
ESEMPI
Raccolta di un pacchetto di supporto standard:
pfmp_support
Raccogliere bundle da più nodi in un cluster Kubernetes.
- Su un nodo con
kubectlehelmaccedere e raccogliere tutti i dati Kubernetes:pfmp_support - Nei nodi successivi, ignorare i dati Kubernetes condivisi:
pfmp_support --skip-kubernetes-shared
Eseguire lo streaming di un pacchetto tramite una connessione SSH, senza creare un file bundle sull host PowerFlex Manager remoto:
ssh <host> 'pfmp_support --output-file=-' > pfmpSupport-<host>.tgz
Utilizzare una directory di lavoro diversa per evitare di riempire /tmp:
pfmp_support --work-dir=/var/tmp
Includere percorsi personalizzati nel pacchetto:
pfmp_support --collect-path=/opt/custom/app/logs --collect-path='/var/log/app*'