PowerFlex: GET_INFO – Supportpakkeindsamlingsværktøj
Résumé: 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 interne fejlfindingsdumps
- Intern diagnosticering af PowerFlex-komponent
- Operativsystemkonfiguration, logge og driftstilstand
- Hardwarelager (storagecontrollere, netværksenheder, NVMe, NVDIMM osv.)
- Kernedumps (eksisterende og valgfrit genereret efter behov)
- Statistik for indsamler af diagnostiske data (diag_coll)
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 ad gangen. Hvis der ikke er nok ledig plads til dens output, nægter den at køre (medmindre pladskontrol udtrykkeligt springes over).
MULIGHEDER
Generelle indstillinger
-
-a, --alle
Indsaml alle data. Dette svarer til at angive --mdm-repository, --collect-cores, --max-cores=2, --valgrind-cores og --analyse-diag-coll.
-
-A, --analyse-diag-coll
Analysér diagnostiske dataindsamlerdata (diag coll).
-
-b[KOMPONENTER], --collect-cores[=KOMPONENTER]
Indsaml eksisterende kernedumps til den rumseparerede liste over brugerjordkomponenter. Standard (når COMPONENTS udelades): alle komponenter i brugerland.
Bemærk: Der må ikke være mellemrum mellem-bog KOMPONENTER. For den lange form, adskilt med=Eksempler:
-b'mdm sds'--collect-cores='mdm sds' -
-d OUT_DIR, --output-dir=OUT_DIR
Gem det resulterende bundt under mappe OUT_DIR. Standard:
<WORK_DIR>/scaleio-getinfo(se --work-dir). -
-f, --skip-mdm-login
Spring forespørgslen om loginoplysninger til PowerFlex MDM over. Nyttigt, når brugeren allerede har logget ind manuelt.
-
-h, --hjælp
Vis hjælpemeddelelsen, og afslut. Når det kombineres med --tech, vises også teknikermuligheder.
-
-J, --xz
Brug tar/xz-format til det indsamlede bundt i stedet for standardværdien tar/gz. Ignoreres, hvis systemets
tar(1)understøtter ikke--use-compress-programellerxz(1)ikke fundet. -
-k NUM, --max-cores=NUM
Indsaml op til NUM-kernefiler fra hver komponent. Standard: alle kernefiler. Indebærer --collect-cores.
-
-l, --lys
Generer et let bundt. Kun den nyeste generation af nummererede logfiler indsamles, og eksekverbare komponenter/biblioteker medtages ikke ved indsamling af kerner. Brug af denne mulighed reducerer understøttelsen, og derfor frarådes brugen heraf.
-
-m NUM, --max-traces=NUM
Indsaml op til NUM PowerFlex-sporingsfiler fra hver komponent. Standard: alle filer.
-
-N, --skip-space-check
Spring bekræftelse af ledig diskplads over før dataindsamling.
-
-P PATH, --collect-path=PATH
Indsaml 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, --stille, --tavs
Undertryk meddelelser på standardoutput.
-
-r, --mdm-lager
Indsaml MDM-arkivarkiver.
-
-s, --skip-sdbg
Spring indsamling af SDBG-output (diagnostisk debugger) over.
-
-S, --pause-core-generation
Sæ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_DIR
Brug biblioteks WORK_DIR til midlertidige filer. Standard:
/tmp. -
-x FIL,--output-fil = FIL
Gem det indsamlede bundt som fil med navnet FILE. Det relevante filnavnsuffiks (
.tgz,.ziposv.) tilføjes automatisk. Hvis FILEN er-(bindestreg), skriv bundtet til standardoutput (indebærer --stille). Når bundtet skrives til standardoutput, oprettes der ingen bundtfil på disken. Standard:getInfoDump. -
-z, --zip
Brug zip-format til det indsamlede bundt i stedet for standard tar/gz. Ignoreret, hvis
zip(1)findes ikke i systemet. -
--mdm-port=PORT
Opret forbindelse til MDM ved hjælp af portporten til SCLI-kommandoer. Standard: scli-standardadfærd.
-
--overskriv-output-fil
Overskriv outputfilen, hvis den allerede findes. Når en outputfil eller mappe udtrykkeligt er angivet (via -x eller -d), er standardadfærden at nægte at overskrive; Denne indstilling tilsidesætter dette.
-
--Tech
Medtag teknikerindstillinger i outputtet af hjælpemeddelelsen.
Indstillinger for MDM-login
Følgende valgmuligheder overføres til SCLI --login Kommando. Deres adfærd og standardværdier styres af SCLI.
-
-n, --brug-ikke-sikker-kommunikation
Opret forbindelse til MDM i usikker tilstand.
-
-p PASSWORD, --password=PASSWORD
Brug PASSWORD til PowerFlex MDM-login. Standard: SCLI-standardadfærd.
-
- u BRUGERNAVN, --brugernavn = BRUGERNAVN
Brug BRUGERNAVN til PowerFlex MDM-login. Standard: scli-standardadfærd.
-
--ldap-godkendelse
Log ind på PowerFlex MDM med LDAP-baseret godkendelse.
-
--management-system-ip=ADDRESS
Opret forbindelse til SSO/M&O på ADRESSE for PowerFlex-login. Standard: scli-standardadfærd.
-
--p12-password=ADGANGSKODE
Krypter PowerFlex login PKCS#12-filen ved hjælp af PASSWORD. Standard: scli-standardadfærd.
-
--p12-path=FIL
Gem PowerFlex login PKCS#12-filen som FIL. 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[KOMPONENTER], --generere-kerner[=KOMPONENTER]
Generer kernefiler (via gcore(1)) for de kørende processer i den rumseparerede liste over brugerjordkomponenter. Standard: alle brugerjordkomponenter. Indebærer --collect-eksekverbare filer. Kræver gdb og gcore.
-c og KOMPONENTER. For den lange form, adskilt med =.
Eksempler:
-c'mdm sds'
--generate-cores='mdm sds'
-
-CCORE_FILE, --reference-core-file=CORE_FILE
Indsaml produktlogfiler og -kerner i forhold til den seneste ændringstid (mtime) for CORE_FILE i stedet for udførelsens starttid. Indebærer --collect-cores.
-
-EREF_TIME, --event-time=REF_TIME
Indsaml produktlogfiler og -kerner i forhold til REF_TIME i stedet for udførelsens starttidspunkt. Accepterer ethvert format, der forstås af
date(1). Indebærer --collect-cores. - -g[KOMPONENTER], --valgrind-kerner[=KOMPONENTER]
Saml Valgrind-kernedumps for de specificerede brugerjordkomponenter. Standard: alle brugerjordkomponenter. Indebærer --collect-eksekverbare filer.
Bemærk: Der må ikke være mellemrum mellem -b og KOMPONENTER. For den lange form, adskilt med =
Eksempler:
-g'mdm sds'
--valgrind-cores='mdm sds'
-
-t MIN,--minutter-før-begivenhed=MIN
Indsaml produktlogfiler og -kerner, der er genereret op til MIN minutter før referencetidspunktet. Standard: 15.
-
-TMIN,--minutter-efter-begivenhed=MIN
Indsaml produktlogfiler og -kerner, der er genereret op til MIN minutter efter referencetidspunktet. Standard: 5.
-
-X[KOMPONENTER], --collect-eksekverbare filer[=KOMPONENTER]
Indsamle eksekverbare komponentfiler og deres delte biblioteker for de angivne KOMPONENTER i brugerland. Standard: alle brugerjordkomponenter.
Bemærk: Der må ikke være mellemrum mellem
-bog KOMPONENTER. For den lange form, adskilt med=Eksempler:
-X'mdm sds' --collect-executables='mdm sds' -
--keep-work-dir
Behold den genererede midlertidige arbejdsmappe efter oprettelse af pakken (normalt ryddes der automatisk op).
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_, fjernes ikke-alfanumeriske tegn.
Eksempel:server/ip_-s_addr.txt– output afip -s addr - Produktkommandooutput går ind i komponentens undermappe.
mdm/Forscli,sdc/Fordrv_cfgOsv.
Kommandonavn (scli,drv_cfgosv.) er strippet. Det første meningsfulde argument bliver filnavnet. Filer tildeles det relevante suffiks,.txtsom standard.
Eksempler:mdm/query_cluster.txt– output afscli --query_clustermdm/tgt_dump.txt– output afscli --debug_action --tgt_dumpsdc/query_mdms.txt– output afdrv_cfg --query_mdmssds/sdbg.txt– output fra SDBGdumpallscreenstil SDS
- Produktkomponentfiler (i modsætning til kommandooutput),
<component>/cfg,<component>/logsOsv.
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 muligheder, 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 den sidste 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 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 anvender først tidsvinduet og derefter tællegrænsen:
- Opret kandidater. Alle produktlogfiler og/eller kernedumpfiler for en komponent optælles.
- Udlede indholdsperiode. Produktlogfilernes indhold repræsenterer et punktum. Indholdsperioden anses for at starte ved forgængerens sidste ændringstid (mtime) eller UNIX-epoken, når der ikke findes nogen forgænger; Det slutter ved filens egen MTIME. Centrale dumpfiler repræsenterer et tidspunkt på filens mtime.
- 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
-mEller-kspecificeret). Blandt de resterende filer vælges højst NUM, og 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 3 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.
- Indstillingen --skip-mdm-login 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.
For at minimere diskpladsforbruget på PowerFlex-værten kan pakken streames fra en fjernvært med --output-file=-. Ved streaming skrives bundtfilen direkte til standardoutput (stdout); Den er ikke oprettet på disken.
Før der indsamles data, estimerer værktøjet den nødvendige diskplads til både den midlertidige arbejdsmappe og outputbundtet.
Hvis den anslåede nødvendige plads overstiger den tilgængelige plads på de(t) relevante filsystem(er), 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å inkluderet i pakken) |
<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, udføre diagnosticeringskommandoer og få adgang
/proc,/sysosv.). - 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 må køre ad gangen. Hjælpeprogrammet kontrollerer, om der er en eksisterende kørende forekomst via pidof(1) og afsluttes, hvis der findes en.
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 kernegenerering).
- 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