PowerFlex: GET_INFO – Supportpakkeindsamlingsværktøj
Summary: get_info.sh – Indsaml diagnosticeringsoplysninger fra en PowerFlex-vært, og pak dem ind i en supportpakke.
Instructions
get_info.sh [VALGMULIGHEDER]
BESKRIVELSE
get_info.sh er et diagnosticeringsværktøj, der indsamler fejlfindingsoplysninger fra en PowerFlex-vært (tidligere ScaleIO) og arkiverer dem i en komprimeret pakke til analyse af supportpersonale.
Forsyningen indsamler data fra flere kilder, herunder:
- Logfiler, konfiguration og sporing af PowerFlex-komponenter
- MDM/SCLI-forespørgselsoutput og intern fejlfindingsdump
- Intern diagnosticering af PowerFlex-komponent
- Operativsystemkonfiguration, logge og driftstilstand
- Hardwarelager (storagecontrollere, netværksenheder, NVMe, NVDIMM osv.)
- Kernedumps (eksisterende og valgfrit genereret efter behov)
- Indsamler af diagnosticeringsdata (
diag_coll) Statistik
Den resulterende pakke er et enkelt komprimeret arkiv (tar/gz som standard), der kan overføres til PowerFlex-support med henblik på yderligere analyse.
Kun én forekomst af get_info.sh kan køre på en vært på et givet tidspunkt. Hvis der ikke er nok ledig plads til outputtet, nægter det at køre (medmindre pladskontrol udtrykkeligt springes over).
MULIGHEDER
Generelle indstillinger
-
-a, --allIndsaml alle data. Dette svarer til at specificere
--mdm-repository,--collect-cores,--max-cores=2,--valgrind-coresog--analyse-diag-coll. -
-A, --analyse-diag-collAnalysere indsamler af diagnosticeringsdata (
diag coll) oplysninger -
-b[COMPONENTS], --collect-cores[=COMPONENTS]Indsaml eksisterende kernedumper til den rumseparerede liste over brugerjord
COMPONENTS. Standard (nårCOMPONENTSer udeladt): Alle komponenter i brugerland
-b og KOMPONENTER. For den lange form, adskilt med =
Eksempel
-b'mdm sds'
--collect-cores='mdm sds'
-
-d OUT_DIR, --output-dir=OUT_DIRGem det resulterende bundt under mappe
OUT_DIR. Default: <WORK_DIR>/scaleio-getinfo(Se--work-dir). -
-f, --skip-mdm-loginSpring forespørgslen om loginoplysninger til PowerFlex MDM over. Nyttigt, når brugeren allerede har logget ind manuelt.
-
-h, --helpVis hjælpemeddelelsen, og afslut. Når det kombineres med
--tech, også vise teknikerindstillinger. -
-J, --xzBrug
tar/xzFormat for det indsamlede bundt i stedet for standardindstillingentar/gz.Ignoreres, hvis systemetstar(1)understøtter ikke--use-compress-programellerxz(1)ikke fundet. -
-k NUM, --max-cores=NUMSaml op til
NUMkernefiler fra hver komponent. Standard: Alle kernefiler, indebærer--collect-cores -
-l, --lightGenerer et let bundt. Kun den nyeste generation af nummererede logfiler indsamles, og eksekverbare komponentfiler eller biblioteker medtages ikke ved indsamling af kerner. Brug af denne mulighed reducerer understøttelsen, og dens brug frarådes.
-
-m NUM, --max-traces=NUMSaml op til
NUMPowerFlex-sporingsfiler fra hver komponent. Standard: Alle filer -
-N, --skip-space-checkSpring bekræftelse af ledig diskplads over før dataindsamling.
-
-P PATH, --collect-path=PATHIndsaml den ekstra sti
PATH.Kun absolutte stier accepteres. Accepterer jokertegn; Jokertegn skal angives. Denne indstilling kan angives flere gange for at indsamle flere stier. -
-q, --quiet, --silentUndertryk meddelelser på standardoutput.
-
-r, --mdm-repositoryIndsaml MDM-arkivarkiver.
-
-s, --skip-sdbgSpring indsamling af SDBG-output (diagnostisk debugger) over.
-
-S, --pause-core-generationSæt kernegenereringen af PowerFlex-komponenter på pause under dataindsamlingen. Den oprindelige konfiguration gendannes, når indsamlingen er fuldført.
-
-w WORK_DIR, --work-dir=WORK_DIRBrug vejviser
WORK_DIRtil midlertidige filer. Standard:/tmp. -
-x FILE, --output-file=FILEGem det indsamlede bundt som fil med navnet
FILE. Det relevante filnavnsuffiks (.tgz,.zip, og så videre) tilføjes automatisk. HvisFILEEr-(bindestreg), skriv bundtet til standardoutput (indebærer--quiet). Når et bundt skrives til standardoutput, oprettes der ingen bundtfil på disken. Standard:getInfoDump. -
-z, --zipBrug
zipFormat for det indsamlede bundt i stedet for standardindstillingentar/gz. Ignoreret, hviszip(1)findes ikke i systemet. -
--mdm-port=PORTOpret forbindelse til MDM vha. port
PORTtil SCLI-kommandoer. Standard:scli default behavior. -
--overwrite-output-fileOverskriv outputfilen, hvis den allerede findes. Når en outputfil eller mappe udtrykkeligt er angivet (ved hjælp af
-xeller-d), er standardadfærden at nægte at overskrive; Denne indstilling tilsidesætter dette. -
--techMedtag teknikerindstillinger i outputtet af hjælpemeddelelsen.
Indstillinger for MDM-login
Følgende valgmuligheder overføres til SCLI --login Kommando. Deres funktionsmåde og standardværdier styres af SCLI.
-
-n, --use-nonsecure-communicationOpret forbindelse til MDM i usikker tilstand.
-
-p PASSWORD, --password=PASSWORDBrug
PASSWORDtil PowerFlex MDM-login. Standard: SCLI-standardadfærd -
-u USERNAME, --username=USERNAMEBrug
USERNAMEtil PowerFlex MDM-login. Standard: SCLI-standardadfærd -
--ldap-authenticationLog ind på PowerFlex MDM med LDAP-baseret godkendelse.
-
--management-system-ip=ADDRESSOpret forbindelse til
SSO/M&OPåADDRESStil PowerFlex-login. Standard: SCLI-standardadfærd -
--p12-password=PASSWORDKrypter PowerFlex-login
PKCS#12fil ved hjælp afPASSWORD. Standard: SCLI-standardadfærd -
--p12-path=FILEGem PowerFlex-login
PKCS#12fil somFILE. Standard: SCLI-standardadfærd
Teknikermuligheder
Følgende indstillinger er beregnet til brug af supportteknikere og vises kun i hjælpemeddelelsen, når --tech er angivet.
-c[COMPONENTS], --generate-cores[=COMPONENTS]
Generer kernefiler (ved hjælp af gcore(1)) for de løbende processer i den rumseparerede liste over brugerarealer COMPONENTS. Standard: alle brugerjordkomponenter, indebærer --collect-executables, og kræver gdb og gcore.
-c og COMPONENTS. For den lange form, adskilt med =.
Eksempler:
-c'mdm sds'
--generate-cores='mdm sds'
-
-C CORE_FILE, --reference-core-file=CORE_FILEIndsaml produktlogfiler og -kerner i forhold til det seneste ændringstidspunkt (
mtime) afCORE_FILEi stedet for udførelsens starttidspunkt. Indebærer--collect-cores -
-E REF_TIME, --event-time=REF_TIMEIndsaml produktlogfiler og -kerner i forhold til
REF_TIMEi stedet for udførelsens starttidspunkt. Accepterer ethvert format, der forstås afdate(1). Indebærer--collect-cores. -g[COMPONENTS], --valgrind-cores[=COMPONENTS]
Indsamle valgrind kernedumps for det angivne brugerland COMPONENTS. Standard: alle brugerjordkomponenter. Indebærer --collect-executables.
-b og COMPONENTS. For den lange form, adskilt med =
Eksempler:
-g'mdm sds'
--valgrind-cores='mdm sds'
-
-t MIN, --minutes-before-event=MINIndsamle produktlogfiler og -kerner, der er genereret op til
MINminutter før referencetidspunktet. Standard: 15 -
-T MIN, --minutes-after-event=MINIndsamle produktlogfiler og -kerner, der er genereret op til
MINminutter efter referencetiden. Standard: 5 -
-X[COMPONENTS], --collect-executables[=COMPONENTS]Indsaml eksekverbare komponentfiler og deres delte biblioteker for det angivne brugerland
COMPONENTS. Standard: Alle komponenter i brugerland
-b og COMPONENTS. For den lange form, adskilt med =
Eksempler:
-X'mdm sds'
--collect-executables='mdm sds'
-
--keep-work-dirBehold den genererede midlertidige arbejdsmappe efter oprettelse af pakken (ryddes op automatisk).
BUNDTSTRUKTUR
Outputbundtet er et enkelt komprimeret arkiv.
- Bundtbiblioteket på øverste niveau er værtsnavnet for det indsamlede system.
- Generelle værtskommandooutput går ind i en
server/Undermappe.
Filnavnet er<command>+-<arguments>+ suffiks (.txtsom standard). Mellemrum erstattet med_, ikke-alfanumeriske tegn fjernet
Eksempel:server/ip_-s_addr.txt – output of ip -s addr - Produktkommandooutput går ind i komponentens undermappe.
mdm/Forscli,sdc/Fordrv_cfg, og så videre.
Kommandonavn (scli,drv_cfg, og så videre) er strippet. Det første meningsfulde argument bliver filnavnet. Filer tildeles som det relevante suffiks,.txtsom standard.
Eksempler:
-
mdm/query_cluster.txt- produktion afscli --query_clustermdm/tgt_dump.txt- produktion afscli --debug_action --tgt_dumpsdc/query_mdms.txt- produktion afdrv_cfg --query_mdmssds/sdbg.txt- output fra SDBGdumpallscreenstil SDS
- Produktkomponentfiler (i modsætning til kommandooutput),
<component>/cfg,<component>/logs, og så videre
Kopieret fra komponentens mappe med præfikset fjernet.
Eksempler:
-
mdm/cfg/conf.txt- kopi af/opt/emc/scaleio/mdm/cfg/conf.txtsds/logs/trc.0- kopi af/opt/emc/scaleio/sds/logs/trc.0
- Værtsfilsystemfiler placeres på deres filsystemsti i forhold til bundtroden.
Eksempler:
-
etc/os-release- kopi af/etc/os-releasevar/log/messages- kopi af/var/log/messagesproc/cpuinfo- kopi af/proc/cpuinfo
- Diagnostisk collector-filer (diag_coll) kopieres med
/optpræfiks strippet, bevare intern struktur.
Eksempel:diag_coll/logs/sar.0- kopi af/opt/diag_coll/logs/sar.0 - Skjulte filer (punktum-præfiks) "skjules" ved at fjerne den førende prik.
- Utility udførelse log,
get_info_run.log, placeret direkte under værtsnavnet>/roden <
Bundtmappetræstruktur:
<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)
FILTRERING AF PRODUKTLOG OG KERNEFILER
De indstillinger, der er beskrevet i dette afsnit, styrer, hvordan produktlogfiler (også kaldet sporingsfiler, f.eks. trc.0, trc.1, exp.0) og centrale dumpfiler vælges til medtagelse i det indsamlede bundt. De gør det ved at definere en referencetid, et tidsvindue omkring det og tællegrænser.
Når der ikke er angivet nogen filtreringsindstillinger, indsamles alle produktlogfiler og (hvis kerneindsamling er aktiveret) alle centrale dumpfiler. Filtreringsindstillingerne indsnævrer gradvist dette valg som beskrevet nedenfor.
Referencetidspunkt
En referencetid kan indstilles ved hjælp af enten -E/--event-time eller -C/--reference-core-file.
Hvis ingen af delene --event-time Eller --reference-core-file er angivet, udføres der ingen filtrering af tidsvinduet: referencetiden er som standard den aktuelle tid og bruges kun til nærhedsbaseret rækkefølge, når en optællingsgrænse (-m eller -k) er gældende (se Antalsgrænser nedenfor).
Hvis begge dele -E og -C vises, træder det sidste element på kommandolinjen i kraft.
Tidsvindue
Når der er indstillet en referencetid (ved hjælp af --event-time eller --reference-core-file), er der etableret et tidsvindue omkring det. Tidsvinduets omfang kan indstilles ved hjælp af -t/--minutes-before-event og/eller -T/--minutes-after-event, som som standard er henholdsvis 15 og 5 minutter. Kun filer, hvis indhold overlapper dette vindue, kan indsamles.
F.eks. -E "2020-03-20 14:30" -t 10 -T 3 Indsamler filer, der dækker perioden 14:20:00 til 14:33:00.
--minutes-before-event og --minutes-after-event ignoreres, når ingen af dem --event-time Eller --reference-core-file er angivet.
Grænser for antal
En filtællingsgrænse kan indstilles ved hjælp af -m/--max-traces og -k/--max-cores, for henholdsvis logfiler og kernefiler. Grænsen måles pr. komponent.
Når flere filer end NUM falder inden for tidsvinduet (eller er tilgængelige, hvis intet vindue er aktivt), indsamles de NUM-filer, der er tættest på referencetidspunktet.
Når en optællingsgrænse bruges uden --event-time eller --reference-core-file, er alle filer kandidater (uden tidsvindue), og de seneste NUM-filer er markeret.
Filtreringslogik
Filfiltrering gælder først for tidsvinduet og derefter for tællegrænsen:
- Opret kandidater. Alle produktlogfiler og/eller kernedumpfiler for en komponent tælles.
- Udlede indholdsperiode. Produktlogfilernes indhold repræsenterer et punktum. Indholdsperioden anses for at starte på forgængerens sidste ændringstidspunkt (
mtime) eller UNIX-epoken, når der ikke findes nogen forgænger; Det ender ved filens egenmtime. Centrale dumpfiler repræsenterer et tidspunkt på filensmtime. - Anvend tidsvindue (hvis
-Eeller-Cspecificeret). Filer, hvis indhold falder helt uden for vinduet, kasseres fra markeringen. For produktlogfiler, hvis der ikke er nogen fil i vinduet, bevares den enkelte fil, der er tættest på vinduet, så bundtet aldrig er tomt for en komponent. For centrale dumpfiler gælder ingen sådan fallback. - Anvend antalsgrænse (hvis
-mog/eller-kspecificeret). Blandt de resterende filer er der højstNUMer valgt, idet man foretrækker dem, der er tættest på referencetiden. Filer før og efter referencetidspunktet konkurrerer ligeligt om valg.
GODKENDELSE
Hjælpeprogrammet forsøger at logge ind på den lokale MDM, hvis der registreres en primær MDM-proces, der lytter på den forventede port (standard: 6611)
MDM-loginmuligheder overføres til SCLI --login kommando og behandles af den.
Hvis login mislykkes, afsluttes værktøjet med en fejl.
Når login springes over, forsøges SCLI-kommandoer stadig (for at understøtte scenarier, hvor brugeren har logget på manuelt på forhånd). Efter tre SCLI-fejl vises en advarsel, og alle yderligere SCLI-kommandoer springes over.
Login springes over, når:
- Der findes ingen primær MDM-proces på den lokale vært.
- Ikonet
--skip-mdm-loginIndstillingen er angivet.
Login mislykkes, når:
- MDM-procesejeren findes ikke på listen over autoriserede brugere (standard:
root), og sikkert login er aktiveret. - The SCLI
--loginKommandoen returnerer en fejl (f.eks. forkerte legitimationsoplysninger).
DISKPLADS
Krav til diskplads til midlertidige filer og den resulterende pakke kan variere betydeligt.
Værktøjet forsøger at minimere midlertidigt pladsforbrug; Det er begrænset til kommandoudgange og kopier af indsamlet virtuelt filsystem (/proc og /sys) filer.
Pakken kan streames fra en ekstern vært med --output-file=- for at minimere diskpladsforbruget på PowerFlex-værten. Bundtfilen skrives direkte til standardoutput (stdout), når du streamer; Den er ikke oprettet på disken.
Værktøjet estimerer den nødvendige diskplads til både den midlertidige arbejdsmappe og outputbundtet, før der indsamles data.
Hvis den estimerede krævede plads overstiger den ledige plads på de relevante filsystemer, afsluttes værktøjet med en fejl. Denne kontrol kan omgås med --skip-space-check.
Arbejdsmappen og outputmappen kan være placeret på forskellige filsystemer; Hver kontrolleres uafhængigt.
Det estimerede pladsbehov skrives til forsyningsselskabets logfil, get_info_run.log.
STATUS FOR AFSLUTNING
| 0 | Fuldført |
| 1 | Fejl (ugyldige argumenter, utilstrækkelig plads, loginfejl, en anden forekomst, der allerede kører, fejl ved generering af bundt, fanget signal osv.) |
FILER
<WORK_DIR>/get_info_run.log |
Udførelseslog (også i bundtet) |
<WORK_DIR>/scaleio-getinfo-tmp/ |
Midlertidig arbejdsmappe (ryddet op efter succes) |
/tmp/scaleio-getinfo/getInfoDump.tgz |
Standardplacering for outputpakke |
<WORK_DIR>/scaleio-getinfo-extra/
/tmp/scaleio-getinfo-extra/ |
Valgfri ekstra diagnostiske datamapper |
/tmp/scaleio-getinfo-backup/ |
Midlertidige sikkerhedskopier af ændrede konfigurationsfiler (automatisk oprettet) |
/opt/emc/scaleio/ |
PowerFlex – Installationsmappe |
MILJØ
Forudsætninger
- Hjælpeprogrammet skal køres som
root(eller en bruger med tilstrækkelige rettigheder til at læse komponentfiler, køre diagnosticeringskommandoer og få adgang/proc,/sysog så videre). - Standard hjælpeprogrammer:
tar,gzip,stat,find,awk,sed,getopt(1)(udvidet)nice. - Valgfri:
zip(til--zip),xz(til--xz),gdb/gcore(til--generate-cores)
Samtidighed
Kun én forekomst af get_info.sh kan køre ad gangen. Værktøjet søger efter en eksisterende kørende forekomst ved hjælp af pidof(1) og afsluttes, hvis der findes en forekomst.
Signalhåndtering
Hjælpeprogrammerne fælder: INT, EXITog TERM signaler under dataindsamling. Ved modtagelse af et signal:
- Gendanner alle sikkerhedskopierede konfigurationsfiler (f.eks. indstillinger for kernegeneration).
- Rydder op i midlertidige mapper
- Afslut med status 1
Udførelsesloggen bevares, og dens sti udskrives til standardfejl.
Eksempler
Saml en standardsupportpakke:
get_info.sh
Stream et bundt via en SSH-forbindelse uden at oprette en pakkefil på fjernværten for PowerFlex:
ssh <host> 'get_info.sh --output-file=-' > getInfoDump-<host>.tgz
Brug en anden arbejdsmappe for at undgå at fylde op /tmp:
get_info.sh --work-dir=/var/tmp
Medtag tilpassede stier i bundtet:
get_info.sh --collect-path=/opt/custom/app/logs --collect-path='/var/log/app*'
Indsaml kun den nyeste kernedump for SDS- og MDM-komponenterne:
get_info.sh --collect-cores='mdm sds' --max-cores=1
Indsaml data centreret omkring en kernefils ændringstid med et brugerdefineret tidsvindue:
get_info.sh --reference-core-file=/opt/emc/scaleio/sds/bin/core.1000 \
--minutes-before-event=10 \
--minutes-after-event=2