PowerFlex: GET_INFO - Utilità di raccolta dei pacchetti di supporto
Résumé: get_info.sh - raccogliere informazioni di diagnostica da un host PowerFlex e comprimerle in un pacchetto di supporto
Instructions
get_info.sh [OPZIONI]
DESCRIZIONE
get_info.sh tratta di un'utilità di diagnostica che raccoglie le informazioni di debug da un host PowerFlex (in precedenza ScaleIO) 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:
- Registri dei componenti PowerFlex, configurazione e file di traccia
- Output delle query MDM/SCLI e dump di debug interni
- Diagnostica interna dei componenti PowerFlex
- Configurazione, registri e stato di runtime del sistema operativo
- Inventario hardware (controller di storage, dispositivi di rete, NVMe, NVDIMM, ecc.)
- Core dump (esistenti e generati opzionalmente on-demand)
- Statistiche degli agenti di raccolta dei dati di diagnostica (diag_coll)
Il bundle risultante è un singolo archivio compresso (tar/gz per impostazione predefinita) che può essere trasferito al supporto PowerFlex per ulteriori analisi.
Solo un'istanza di get_info.sh può essere eseguita su un host in un determinato momento. 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, --tutti
Raccogliere tutti i dati. Ciò equivale a specificare --mdm-repository, --collect-cores, --max-cores=2, --valgrind-cores e --analyse-diag-coll.
-
-A, --analizzare-diag-coll
Analisi dei dati di raccolta dei dati diagnostici (diag coll).
-
-b[COMPONENTI], --collect-cores[=COMPONENTI]
Raccogliere i core dump esistenti per l'elenco separato dallo spazio dei COMPONENTI dell'area dell'utente. Impostazione predefinita (quando COMPONENTS è omesso): tutti i componenti dell'area utente.
Nota: non deve esserci spazio tra-be COMPONENTI. Per la forma estesa, separare con=Esempi:
-b'mdm sds'--collect-cores='mdm sds' -
-dOUT_DIR, --output-dir=OUT_DIR
Conservare il pacchetto risultante nella directory OUT_DIR. Default:
<WORK_DIR>/scaleio-getinfo(vedere --dir-lavoro). -
-f, --skip-mdm-login
Ignorare la query per le credenziali di accesso a PowerFlex MDM. Utile quando l'utente ha già effettuato l'accesso manualmente.
-
-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. -
-kNUM, --max-core=NUM
Raccogliere fino a NUM core file da ciascun componente. Impostazione predefinita: tutti i file principali. Implica --collect-cores.
-
-l, --leggero
Generare un fascio di luci. Viene raccolta solo l'ultima generazione di file di registro numerati e gli eseguibili/librerie dei componenti non vengono inclusi durante la raccolta dei core. L'utilizzo di questa opzione riduce la supportabilità e pertanto il suo utilizzo è sconsigliato.
-
-m NUM, --max-traces=NUM
Raccogliere fino a NUM file di traccia PowerFlex da ciascun componente. Impostazione predefinita: tutti i file.
-
-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.
-
-r, --mdm-repository
Raccogliere i file del repository MDM.
-
-s, --skip-sdbg
Ignorare la raccolta dell'output SDBG (debugger di diagnostica).
-
-S, --pausa-generazione-core
Sospensione della generazione core dei componenti PowerFlex durante la data collection. La configurazione originale viene ripristinata al termine della raccolta.
-
-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:getInfoDump. -
-z, --zip
Utilizzare il formato zip per il pacchetto raccolto anziché il tar/gz predefinito. Ignorato se
zip(1)non viene trovato nel sistema. -
--mdm-port=PORTA
Connettersi all MDM utilizzando la porta PORT per i comandi SCLI. Impostazione predefinita: comportamento predefinito scli.
-
--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 di accesso a MDM
Le seguenti opzioni vengono passate alla SCLI --login . Il loro comportamento e i valori predefiniti sono regolati da SCLI.
-
-n, --use-non-secure-communication
Connettersi a MDM in modalità non protetta.
-
-p PASSWORD,--password=PASSWORD
Utilizzare la PASSWORD per accedere a PowerFlex MDM. Default: Comportamento predefinito della SCLI.
-
-u NOME UTENTE, --username=NOME UTENTE
Utilizzare USERNAME per accedere a PowerFlex MDM. Impostazione predefinita: comportamento predefinito scli.
-
--ldap-autenticazione
Accedere a PowerFlex MDM utilizzando l'autenticazione basata su LDAP.
-
--ip-sistema-di-gestione=INDIRIZZO
Connettersi a SSO/M&O all'INDIRIZZO per accedere a PowerFlex. Impostazione predefinita: comportamento predefinito scli.
-
--p12-password=PASSWORD
Crittografare il file PKCS#12 di accesso a PowerFlex utilizzando la PASSWORD. Impostazione predefinita: comportamento predefinito scli.
-
--p12-path=FILE
Archiviare il file PKCS#12 di accesso a PowerFlex come FILE. Impostazione predefinita: comportamento predefinito scli.
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.
-c[COMPONENTI], --generate-cores[=COMPONENTI]
Generazione di file core (tramite gcore(1)) per i processi in esecuzione dell'elenco separato dallo spazio dei COMPONENTI dell'utente. Impostazione predefinita: tutti i componenti dell'area utente. Implica --collect-executables. Richiede gdb e gcore.
-c e COMPONENTI. Per la forma estesa, separare con =.
Esempi:
-c'mdm sds'
--generate-cores='mdm sds'
-
-CCORE_FILE, --file-core-di-riferimento=CORE_FILE
Raccogliere i registri e i core del prodotto relativi all'ora dell'ultima modifica (mtime) di CORE_FILE, anziché all'ora di inizio dell'esecuzione. Implica --collect-cores.
-
-E REF_TIME, --evento-tempo=REF_TIME
Raccogliere i registri e i core del prodotto in relazione al REF_TIME, anziché l'ora di inizio dell'esecuzione. Accetta qualsiasi formato compreso da
date(1). Implica --collect-cores. - -g[COMPONENTI], --valgrind-cores[=COMPONENTI]
Raccogliere i core dump di Valgrind per i COMPONENTI dell'area utente specificati. Impostazione predefinita: tutti i componenti dell'area utente. Implica --collect-executables.
Nota: non deve esserci spazio tra -b e COMPONENTI. Per la forma estesa, separare con =
Esempi:
-g'mdm sds'
--valgrind-cores='mdm sds'
-
-tMIN,--minuti-prima-dell-evento=MIN
Raccogliere i registri e i core del prodotto generati fino a MIN minuti prima dell'ora di riferimento. Default: 15.
-
-TMIN,--minuti-dopo-l'evento=MIN
Raccogliere i registri e i core del prodotto generati fino a MIN minuti dopo l'ora di riferimento. Default: 5.
-
-X[COMPONENTS], --collect-executables[=COMPONENTI]
Raccogliere gli eseguibili dei componenti e le relative librerie condivise per i COMPONENTS dell'ambiente utente specificati. Impostazione predefinita: tutti i componenti dell'area utente.
Nota: non deve esserci spazio tra
-be COMPONENTI. Per la forma estesa, separare con=Esempi:
-X'mdm sds' --collect-executables='mdm sds' -
--mantenere-dir-lavoro
Conservare la directory di lavoro temporanea generata dopo la creazione del pacchetto (normalmente pulita automaticamente).
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– produzione diip -s addr - Gli output dei comandi del prodotto vanno nella sottodirectory del componente.
mdm/Perscli,sdc/Perdrv_cfgand so on.
Nome del comando (scli,drv_cfg, ecc.) viene spogliato. Il primo argomento significativo diventa il nome del file. Ai file viene assegnato il suffisso pertinente,.txtper impostazione predefinita.
Esempi:mdm/query_cluster.txt– produzione discli --query_clustermdm/tgt_dump.txt– produzione discli --debug_action --tgt_dumpsdc/query_mdms.txt– produzione didrv_cfg --query_mdmssds/sdbg.txt– output di SDBGdumpallscreensper SDS
- File dei componenti del prodotto (in contrapposizione agli output dei comandi),
<component>/cfg,<component>/logsand so on.
Copiato dalla directory del componente con il prefisso rimosso.
Esempi:mdm/cfg/conf.txt– copia del/opt/emc/scaleio/mdm/cfg/conf.txtsds/logs/trc.0– copia del/opt/emc/scaleio/sds/logs/trc.0
- I file del file system host vengono posizionati nel percorso del file system relativo alla root del pacchetto.
Esempi:etc/os-release– copia del/etc/os-releasevar/log/messages– copia del/var/log/messagesproc/cpuinfo– copia del/proc/cpuinfo
- I file del raccoglitore di diagnostica (diag_coll) vengono copiati con
/optPrefisso spogliato, preservando la struttura interna.
Esempio:diag_coll/logs/sar.0– copia del/opt/diag_coll/logs/sar.0 - I file nascosti (con prefisso punto) vengono "nascosti" rimuovendo il punto iniziale.
- Registro di esecuzione dell'utilità,
get_info_run.log, posizionato direttamente sotto il <nome> host/root.
Struttura ad albero delle directory del pacchetto:
<hostname>/
|-- get_info_run.log Utility execution log
|-- server/ General command output directory
| |-- ip_-s_addr.txt
| |-- uptime.txt
| |-- uname_-a.txt
| |-- ps_-elF.txt
| |-- dmesg.txt
| +-- ... (one file per collected command)
|
|-- mdm/ PowerFlex component data (if installed)
| |-- cfg/ Configuration files (excl. PEM)
| |-- logs/ Trace and log files
| |-- rep/ Repository (if --mdm-repository)
| |-- query_all.txt SCLI query outputs
| |-- sdbg.txt SDBG screen dumps
| +-- ...
|-- sds/
|-- pds/
|-- dgwt/
|-- sdr/
|-- sdt/
|-- lia/
|-- sdc/
|-- gateway/
|
|-- diag_coll/ Diagnostic data collector (if installed)
| |-- logs/
| |-- cfg/
| +-- ...
|
|-- etc/ Host files
| |-- os-release
| |-- sysconfig/
| |-- network/
| +-- ...
|-- var/
| |-- log/
| | |-- messages
| | +-- ...
| +-- ...
|-- proc/
| |-- cpuinfo
| |-- meminfo
| +-- ...
|-- sys/
|-- ...
|
|-- scaleio-getinfo-extra/ Extra diagnostic data (if present)
+-- scaleio-getinfo-backup/ Backed-up configuration files (if any)
FILTRO DEI FILE CORE E DEI REGISTRI DI PRODOTTO
Le opzioni descritte in questa sezione controllano il modo in cui i file di log del prodotto (chiamati anche file di traccia, ad es. trc.0, trc.1, exp.0) e i core dump file vengono selezionati per l'inclusione nel pacchetto raccolto. Lo fanno definendo un tempo di riferimento, una finestra temporale intorno ad esso e i limiti di conteggio.
Quando non vengono specificate opzioni di filtro, vengono raccolti tutti i file di registro del prodotto e (se la raccolta core è abilitata) tutti i core dump file. Le opzioni di filtraggio restringono progressivamente questa selezione come descritto di seguito.
Ora di riferimento
È possibile impostare un'ora di riferimento utilizzando uno dei seguenti metodi: -E/--event-time oppure -C/--reference-core-file.
Se nessuno dei due --event-time Né --reference-core-file , non viene eseguito alcun filtro della finestra temporale: l'ora di riferimento predefinita è l'ora corrente e viene utilizzata solo per l'ordinamento basato sulla prossimità quando un limite di conteggio (-m oppure -k) (vedere Limiti di conteggio di seguito).
Se entrambi -E e -C viene visualizzato, l'ultimo sulla riga di comando ha effetto.
Finestra temporale
Quando è impostata un'ora di riferimento (utilizzando --event-time oppure --reference-core-file), viene stabilita una finestra temporale intorno ad esso. L'ambito della finestra temporale può essere impostato utilizzando -t/--minutes-before-event O -T/--minutes-after-event, che per impostazione predefinita sono rispettivamente 15 e 5 minuti. Solo i file il cui contenuto si sovrappone a questa finestra sono idonei per la raccolta.
Esempio: -E "2020-03-20 14:30" -t 10 -T 3 Raccoglie i file che coprono il periodo da 14:20:00 a 14:33:00.
--minutes-before-event e --minutes-after-event vengono ignorati quando nessuno dei due --event-time Né --reference-core-file è specificato.
Limiti di conteggio
È possibile impostare un limite di conteggio file utilizzando -m/--max-traces e -k/--max-cores, rispettivamente per i file di registro e i file core. Il limite viene misurato per componente.
Quando un numero maggiore di file NUM rientra nella finestra temporale (o è disponibile, se non è attiva alcuna finestra), vengono raccolti i file NUM più vicini all'ora di riferimento.
Quando un limite di conteggio viene utilizzato senza --event-time oppure --reference-core-file, tutti i file sono candidati (nessuna finestra temporale) e vengono selezionati i file NUM più recenti.
Logica di filtraggio
Il filtraggio dei file applica prima la finestra temporale, quindi il limite di conteggio:
- Stabilisci i candidati. Vengono enumerati tutti i file di log del prodotto e/o i core dump file per un componente.
- Ricavare il periodo del contenuto. Il contenuto dei file di registro del prodotto rappresenta un punto. Si considera che il periodo di contenuto inizi all'ora dell'ultima modifica del suo predecessore (mtime) o all'epoca UNIX, quando non esiste alcun predecessore; Termina all'mtime del file. I core dump file rappresentano un point-in-time nell mtime del file.
- Finestra temporale di applicazione (se
-Eoppure-Cspecificato). I file il cui contenuto si trova interamente al di fuori della finestra vengono eliminati dalla selezione. Per i file di registro del prodotto, se nessun file è presente nella finestra, viene conservato il singolo file più vicino alla finestra in modo che il pacchetto non sia mai vuoto per un componente. Per i core dump file, non si applica alcun fallback di questo tipo. - Applicare il limite di conteggio (se
-mO-kspecificato). Tra i file rimanenti vengono selezionati al massimo NUM, preferendo quelli più vicini all'ora di riferimento. I file precedenti e successivi all'ora di riferimento competono equamente per la selezione.
AUTENTICAZIONE
L'utilità tenta di accedere all MDM locale se viene rilevato un processo MDM primario in ascolto sulla porta prevista (impostazione predefinita: 6611).
Le opzioni di accesso MDM vengono passate alla SCLI --login comando e sono elaborati da esso.
Se l'accesso non riesce, l'utilità viene terminata con un errore.
Quando l'accesso viene ignorato, vengono comunque tentati i comandi SCLI (per supportare scenari in cui l'utente ha effettuato l'accesso manualmente in precedenza). Dopo 3 errori SCLI, viene visualizzato un avviso e tutti gli altri comandi SCLI vengono ignorati.
L'accesso viene ignorato quando:
- Nessun processo MDM primario trovato sull host locale.
- L'opzione --skip-mdm-login è specificata.
L'accesso ha esito negativo quando:
- Il proprietario del processo MDM non è nell'elenco degli utenti autorizzati (impostazione predefinita:
root) e l'accesso sicuro è abilitato. - La SCLI
--loginrestituisce un errore (ad esempio, credenziali errate).
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, il pacchetto può essere trasmesso in streaming 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à, get_info_run.log.
STATO DI USCITA
| 0 | Completamento |
| 1 | Errore (argomenti non validi, spazio insufficiente, errore di accesso, un'altra istanza già in esecuzione, errore di generazione del pacchetto, segnale catturato, ecc.) |
FILE
<WORK_DIR>/get_info_run.log |
Registro di esecuzione (anch'esso incluso nel pacchetto) |
<WORK_DIR>/scaleio-getinfo-tmp/ |
Directory di lavoro temporanea (pulita in caso di esito positivo) |
/tmp/scaleio-getinfo/getInfoDump.tgz |
Posizione predefinita del bundle di output |
<WORK_DIR>/scaleio-getinfo-extra/
/tmp/scaleio-getinfo-extra/ |
Directory aggiuntive opzionali dei dati di diagnostica |
/tmp/scaleio-getinfo-backup/ |
Backup temporanei dei file di configurazione modificati (creati automaticamente) |
/opt/emc/scaleio/ |
Directory di installazione di PowerFlex |
AMBIENTE
Prerequisiti
- L'utilità deve essere eseguita come utente root (o come utente con privilegi sufficienti per leggere i file dei componenti, eseguire comandi di diagnostica 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),gdb/gcore(ad esempio,--generate-cores).
Concorrenza
È possibile eseguire una sola istanza di get_info.sh 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 sottoposti a backup (ad esempio, le impostazioni di generazione dei core).
- 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:
get_info.sh
Trasmettere un pacchetto tramite una connessione SSH, senza creare un file bundle sull host PowerFlex remoto:
ssh <host> 'get_info.sh --output-file=-' > getInfoDump-<host>.tgz
Utilizzare una directory di lavoro diversa per evitare di riempire /tmp:
get_info.sh --work-dir=/var/tmp
Includere percorsi personalizzati nel pacchetto:
get_info.sh --collect-path=/opt/custom/app/logs --collect-path='/var/log/app*'
Raccogliere il core dump più recente solo per i componenti SDS e MDM:
get_info.sh --collect-cores='mdm sds' --max-cores=1
Raccogli i dati incentrati sull'ora di modifica di un file core, con una finestra temporale personalizzata:
get_info.sh --reference-core-file=/opt/emc/scaleio/sds/bin/core.1000 \
--minutes-before-event=10 \
--minutes-after-event=2