PowerFlex: GET_INFO – støtte for samlingsverktøy
Résumé: get_info.sh – samle inn diagnostikkinformasjon fra en PowerFlex-vert, og pakk den inn i en støttepakke.
Instructions
get_info.sh [ALTERNATIVER]
BESKRIVELSE
get_info.sh er et diagnoseverktøy som samler inn feilsøkingsinformasjon fra en PowerFlex-vert (tidligere ScaleIO) og arkiverer den i en komprimert pakke for analyse av støttepersonell.
Verktøyet samler inn data fra flere kilder, inkludert:
- Logger, konfigurasjon og sporingsfiler for PowerFlex-komponenter
- MDM/SCLI-spørringsutdata og intern feilsøkingsdump
- Intern diagnostikk av PowerFlex-komponent
- Operativsystemkonfigurasjon, logger og kjøretidstilstand
- Maskinvarebeholdning (lagringskontrollere, nettverksenheter, NVMe, NVDIMM og så videre.)
- Kjernedumper (eksisterende og eventuelt generert ved behov)
- Innsamling av diagnosedata (
diag_coll) statistikk
Den resulterende bunten er et enkelt komprimert arkiv (tar/gz som standard) som kan overføres til støtte for PowerFlex for videre analyse.
Bare ett tilfelle av get_info.sh kan kjøre på en vert på et gitt tidspunkt. Hvis det ikke er nok ledig plass til utdataene, nekter den å kjøre (med mindre plasskontroll eksplisitt hoppes over).
ALTERNATIVER
Generelle alternativer
-
-a, --allSamle inn alle data. Dette tilsvarer å spesifisere
--mdm-repository,--collect-cores,--max-cores=2,--valgrind-coresog--analyse-diag-coll. -
-A, --analyse-diag-collAnalysere innsamler av diagnosedata (
diag coll) data -
-b[COMPONENTS], --collect-cores[=COMPONENTS]Samle eksisterende kjernedumper for den plassseparerte listen over brukerland
COMPONENTS. Standard (nårCOMPONENTSer utelatt): Alle komponenter for brukerland
-b og KOMPONENTER. For den lange formen, skille med =
Eksempel
-b'mdm sds'
--collect-cores='mdm sds'
-
-d OUT_DIR, --output-dir=OUT_DIRLagre den resulterende bunten under katalogen
OUT_DIR. Default: <WORK_DIR>/scaleio-getinfo(se--work-dir). -
-f, --skip-mdm-loginHopp over spørringen om påloggingslegitimasjon for PowerFlex MDM. Nyttig når brukeren allerede har logget på manuelt.
-
-h, --helpVis hjelpemeldingen og avslutt. Når kombinert med
--tech, viser også alternativer for skjermtekniker. -
-J, --xzBruk
tar/xz-formatet for den innsamlede bunten i stedet for standardformatettar/gz.Ignorert hvis systemetstar(1)Støtter ikke--use-compress-programellerxz(1)er ikke funnet. -
-k NUM, --max-cores=NUMSamle inn opptil
NUMkjernefiler fra hver komponent. Standard: Alle kjernefiler, innebærer--collect-cores -
-l, --lightGenerer en lett bunt. Bare den nyeste generasjonen av nummererte loggfiler samles inn, og kjørbare komponenter eller biblioteker er ikke inkludert ved innsamling av kjerner. Bruk av dette alternativet reduserer støtten, og bruken frarådes.
-
-m NUM, --max-traces=NUMSamle inn opptil
NUMPowerFlex-sporingsfiler fra hver komponent. Standard: Alle filer -
-N, --skip-space-checkHopp over ledig diskplassverifisering før datainnsamling.
-
-P PATH, --collect-path=PATHSamle inn den ekstra banen
PATH.Bare absolutte baner aksepteres. Godtar jokertegn; Jokertegn skal oppgis. Dette alternativet kan angis flere ganger for å samle inn flere baner. -
-q, --quiet, --silentUndertrykk meldinger på standard utdata.
-
-r, --mdm-repositorySamle inn MDM-repositoriumfiler.
-
-s, --skip-sdbgHopp over samling av SDBG-utdata (diagnostikkfeilsøking).
-
-S, --pause-core-generationSett kjernegenerering av PowerFlex-komponenter på pause under datainnsamlingen. Den opprinnelige konfigurasjonen gjenopprettes når innsamlingen er fullført.
-
-w WORK_DIR, --work-dir=WORK_DIRBruk katalog
WORK_DIRfor midlertidige filer. Standard:/tmp. -
-x FILE, --output-file=FILELagre den innsamlede bunten som filnavngitt
FILE. Det riktige filnamnssuffikset (.tgz,.zip, og så videre) legges til automatisk. HvisFILEEr-(dash), skriv bunten til standard utgang (innebærer--quiet). Når en bunt skrives til standard utdata, opprettes det ingen pakkefil på disken. Standard:getInfoDump. -
-z, --zipBruk
zip-formatet for den innsamlede bunten i stedet for standardformatettar/gz. Ignorert hviszip(1)finnes ikke på systemet. -
--mdm-port=PORTKoble til MDM ved hjelp av port
PORTfor SCLI-kommandoer. Standard:scli default behavior. -
--overwrite-output-fileSkriv over utdatafilen hvis den allerede eksisterer. Når en utdatafil eller katalog er uttrykkelig angitt (ved hjelp av
-xeller-d), er standardvirkemåten å nekte å overskrive; Dette alternativet overstyrer dette. -
--techInkluder teknikeralternativer i utdataene for hjelpemeldinger.
Påloggingsalternativer for MDM
Følgende alternativer sendes til SCLI: --login Kommandoen. Atferden og standardverdiene styres av SCLI.
-
-n, --use-nonsecure-communicationKoble til MDM i usikker modus.
-
-p PASSWORD, --password=PASSWORDBruk
PASSWORDfor pålogging med PowerFlex MDM. Standard: Virkemåte for SCLI-standard -
-u USERNAME, --username=USERNAMEBruk
USERNAMEfor pålogging med PowerFlex MDM. Standard: Virkemåte for SCLI-standard -
--ldap-authenticationLogg på PowerFlex MDM med LDAP-basert godkjenning.
-
--management-system-ip=ADDRESSKoble til
SSO/M&OPåADDRESSfor pålogging for PowerFlex. Standard: Virkemåte for SCLI-standard -
--p12-password=PASSWORDKryptere PowerFlex-påloggingen
PKCS#12Fil ved hjelp avPASSWORD. Standard: Virkemåte for SCLI-standard -
--p12-path=FILELagre PowerFlex-påloggingen
PKCS#12Fil somFILE. Standard: Virkemåte for SCLI-standard
Teknikeralternativer
Følgende alternativer er ment for bruk av støtteteknikere og vises bare i hjelpemeldingen når --tech er angitt.
-c[COMPONENTS], --generate-cores[=COMPONENTS]
Generer kjernefiler (ved hjelp av gcore(1)) for de løpende prosessene i den plassseparerte listen over brukerland COMPONENTS. Standard: alle bruker-land komponenter, innebærer --collect-executables, og krever gdb og gcore.
-c og COMPONENTS. For den lange formen, skille med =.
Eksempler:
-c'mdm sds'
--generate-cores='mdm sds'
-
-C CORE_FILE, --reference-core-file=CORE_FILESamle inn produktlogger og kjerner i forhold til forrige endringstidspunkt (
mtime) avCORE_FILE, i stedet for starttidspunktet for kjøringen. Innebærer--collect-cores -
-E REF_TIME, --event-time=REF_TIMESamle inn produktlogger og kjerner i forhold til
REF_TIME, i stedet for starttidspunktet for kjøringen. Godtar alle formater som forstås avdate(1). Innebærer--collect-cores. -g[COMPONENTS], --valgrind-cores[=COMPONENTS]
Samle valgrind Kjernedumper for det angitte brukerlandet COMPONENTS. Standard: alle komponenter for brukerland. Innebærer --collect-executables.
-b og COMPONENTS. For den lange formen, skille med =
Eksempler:
-g'mdm sds'
--valgrind-cores='mdm sds'
-
-t MIN, --minutes-before-event=MINSamle inn produktlogger og kjerner generert opptil
MINminutter før referansetidspunktet. Standard: 15 -
-T MIN, --minutes-after-event=MINSamle inn produktlogger og kjerner generert opptil
MINminutter etter referansetidspunktet. Standard: 5 -
-X[COMPONENTS], --collect-executables[=COMPONENTS]Samle inn kjørbare komponentfiler og tilhørende delte biblioteker for det angitte brukerlandet
COMPONENTS. Standard: Alle komponenter for brukerland
-b og COMPONENTS. For den lange formen, skille med =
Eksempler:
-X'mdm sds'
--collect-executables='mdm sds'
-
--keep-work-dirBehold den genererte midlertidige arbeidskatalogen etter at pakken er opprettet (ryddes opp automatisk).
BUNT STRUKTUR
Utdatabunten er et enkelt komprimert arkiv.
- Katalogen på øverste nivå er vertsnavnet til det innsamlede systemet.
- Generelle vertskommandoutdata går inn i en
server/Underkatalog.
Filnavnet er<command>+<arguments>+ suffiks (.txtsom standard). Mellomrom erstattet med_, strippede
ikke-alfanumeriske tegn Eksempel:server/ip_-s_addr.txt – output of ip -s addr - Produktkommandoutdata går inn i komponentens underkatalog.
mdm/Forscli,sdc/Fordrv_cfg, og så videre.
Kommandonavn (scli,drv_cfg, og så videre) er strippet. Det første meningsfulle argumentet blir filnavnet. Filer er tildelt som det aktuelle suffikset,.txtsom standard.
Eksempler:
-
mdm/query_cluster.txt- utgang avscli --query_clustermdm/tgt_dump.txt- utgang avscli --debug_action --tgt_dumpsdc/query_mdms.txt- utgang avdrv_cfg --query_mdmssds/sdbg.txt- utgang av SDBGdumpallscreensfor SDS
- Produktkomponentfiler (i motsetning til kommandoutganger),
<component>/cfg,<component>/logs, og så videre
Kopiert fra komponentens katalog med prefikset fjernet.
Eksempler:
-
mdm/cfg/conf.txt- kopi av/opt/emc/scaleio/mdm/cfg/conf.txtsds/logs/trc.0- kopi av/opt/emc/scaleio/sds/logs/trc.0
- Vertsfilsystemfiler plasseres på filsystembanen i forhold til buntroten.
Eksempler:
-
etc/os-release- kopi av/etc/os-releasevar/log/messages- kopi av/var/log/messagesproc/cpuinfo- kopi av/proc/cpuinfo
- Diagnostiske samlerfiler (diag_coll) kopieres med
/optprefiks strippet, bevare intern struktur.
Eksempel:diag_coll/logs/sar.0- kopi av/opt/diag_coll/logs/sar.0 - Skjulte filer (punkt-prefikset) "vises" ved å fjerne den ledende prikken.
- Utility execution log,
get_info_run.log, plassert direkte under vertsnavnet>/roten <
Katalogtrestruktur for bunt:
<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)
PRODUKTLOGG OG KJERNEFILFILTRERING
Alternativene som er beskrevet i denne delen, styrer hvordan produktloggfiler (for eksempel også kalt sporingsfiler) trc.0, trc.1, exp.0) og kjernedumpfiler velges for inkludering i den innsamlede pakken. De gjør det ved å definere en referansetid, et tidsvindu rundt den og telle grenser.
Når ingen filtreringsalternativer er angitt, samles alle produktloggfiler og (hvis kjernesamling er aktivert) alle kjernedumpfiler inn. Filtreringsalternativene begrenser dette valget gradvis, som beskrevet nedenfor.
Referansetid
En referansetid kan angis ved hjelp av enten -E/--event-time eller -C/--reference-core-file.
Hvis ingen av dem --event-time Eller --reference-core-file er angitt, utføres ingen tidsvindusfiltrering: Referansetiden er gjeldende klokkeslett som standard og brukes bare til nærhetsbasert rekkefølge når en antallsgrense (-m eller -k) er i kraft (se Antall grenser nedenfor).
Hvis begge deler -E og -C vises, trer det siste elementet på kommandolinjen i kraft.
Tidsvindu
Når en referansetid er angitt (ved hjelp av --event-time eller --reference-core-file), etableres et tidsvindu rundt det. Tidsvinduets omfang kan stilles inn ved hjelp av -t/--minutes-before-event og eller -T/--minutes-after-event, som standard er henholdsvis 15 og 5 minutter. Bare filer med innhold som overlapper dette vinduet, er kvalifisert for samling.
For eksempel, -E "2020-03-20 14:30" -t 10 -T 3 Samler filer som dekker perioden 14:20:00 til 14:33:00.
--minutes-before-event og --minutes-after-event ignoreres når ingen av dem --event-time Eller --reference-core-file er angitt.
Antall grenser
Du kan angi en grense for filtelling ved hjelp av -m/--max-traces og -k/--max-cores, for henholdsvis loggfiler og kjernefiler. Grensen måles per komponent.
Når flere filer enn NUM faller innenfor tidsvinduet (eller er tilgjengelige hvis ingen vinduer er aktive), samles NUM-filene nærmest referansetidspunktet.
Når en tellegrense brukes uten --event-time eller --reference-core-file, er alle filer kandidater (ingen tidsvindu), og de nyeste NUM-filene velges.
Filtreringslogikk
Filfiltrering gjelder først for tidsvinduet, deretter antallsgrensen:
- Etabler kandidater. Alle produktloggfiler og/eller kjernedumpfiler for en komponent listes opp.
- Utled innholdsperiode. Innholdet i produktloggfilene representerer en periode. Innholdsperioden anses å starte ved forgjengerens siste endringstidspunkt (
mtime), eller UNIX-epoken, når ingen forgjenger eksisterer; Den ender på filens egenmtime. Kjernedumpfiler representerer et tidspunkt, ved filensmtime. - Bruk tidsvindu (hvis
-Eeller-Cspesifisert). Filer som har innhold som faller helt utenfor vinduet, forkastes fra det merkede området. Hvis ingen filer faller innenfor vinduet for produktloggfiler, beholdes enkeltfilen nærmest vinduet, slik at bunten aldri er tom for en komponent. For kjernedumpfiler gjelder ingen slik reserveløsning. - Bruk antallsgrense (hvis
-mog eller-kspesifisert). Blant de gjenværende filene, på det mesteNUMer valgt, foretrekker de som er nærmest referansetiden. Filer før og etter referansetiden konkurrerer likt om valg.
GODKJENNING
Verktøyet prøver å logge på den lokale MDM-en hvis det oppdages en primær MDM-prosess som lytter på den forventede porten (standard: 6611)
MDM-påloggingsalternativer sendes til SCLI --login kommando og behandles av den.
Hvis påloggingen mislykkes, avsluttes verktøyet med en feil.
Når pålogging hoppes over, forsøkes SCLI-kommandoer fortsatt (for å støtte scenarier der brukeren har logget på manuelt på forhånd). Etter tre SCLI-feil vises en advarsel, og alle ytterligere SCLI-kommandoer hoppes over.
Pålogging hoppes over når:
- Finner ingen primær MDM-prosess på den lokale verten.
- Informasjonen i
--skip-mdm-loginAlternativet er angitt.
Påloggingen mislykkes når:
- MDM-prosesseieren er ikke på listen over godkjente brukere (standard:
root) og sikker pålogging er aktivert. - The SCLI
--loginKommandoen returnerer en feil (for eksempel feil legitimasjon).
DISKPLASS
Krav til diskplass for midlertidige filer og den resulterende pakken kan variere betydelig.
Verktøyet forsøker å minimere midlertidig plassbruk; Det er begrenset til kommandoutganger og kopier av innsamlet virtuelt filsystem (/proc og /sys) filer.
Bunten kan streames fra en ekstern vert med --output-file=- for å minimere bruken av diskplass på PowerFlex-verten. Pakkefilen skrives direkte til standard utdata (stdout) ved strømming; Den er ikke opprettet på disken.
Verktøyet beregner den nødvendige diskplassen for både den midlertidige arbeidsmappen og utdatabunten før data samles inn.
Hvis den estimerte nødvendige plassen overskrider tilgjengelig plass på de relevante filsystemene, avsluttes verktøyet med en feil. Denne kontrollen kan omgås med --skip-space-check.
Arbeidskatalogen og utdatakatalogen kan ligge på forskjellige filsystemer; Hver kontrolleres uavhengig.
De estimerte plasskravene skrives til verktøyets loggfil, get_info_run.log.
AVSLUTT-STATUS
| 0 | Fullført |
| 1 | Feil (ugyldige argumenter, ikke nok plass, påloggingsfeil, en annen forekomst kjører allerede, feil ved pakkegenerering, fanget signal og så videre) |
FILER
<WORK_DIR>/get_info_run.log |
Utførelseslogg (også i pakken) |
<WORK_DIR>/scaleio-getinfo-tmp/ |
Midlertidig arbeidskatalog (ryddet opp i suksess) |
/tmp/scaleio-getinfo/getInfoDump.tgz |
Standard plassering av utdatabunt |
<WORK_DIR>/scaleio-getinfo-extra/
/tmp/scaleio-getinfo-extra/ |
Valgfrie ekstra diagnosedatakataloger |
/tmp/scaleio-getinfo-backup/ |
Midlertidige sikkerhetskopier av modifiserte konfigurasjonsfiler (automatisk opprettet) |
/opt/emc/scaleio/ |
Installasjonskatalog for PowerFlex |
MILJØ
Forhåndskrav
- Verktøyet må kjøres som
root(eller en bruker med tilstrekkelige rettigheter til å lese komponentfiler, kjøre diagnosekommandoer og få tilgang/proc,/sys, og så videre). - Standard verktøy:
tar,gzip,stat,find,awk,sed,getopt(1)(forbedret),nice. - Valgfritt:
zip(for--zip),xz(for--xz),gdb/gcore(for--generate-cores)
Samtidighet
Bare ett tilfelle av get_info.sh kan løpe om gangen. Verktøyet ser etter en eksisterende kjørende forekomst ved hjelp av: pidof(1) og avsluttes hvis en forekomst blir funnet.
Signalhåndtering
Verktøyfellene INT, EXITog TERM signaler under datainnsamling. Ved mottak av et signal, det:
- Gjenoppretter eventuelle sikkerhetskopierte konfigurasjonsfiler (for eksempel innstillinger for kjernegenerering).
- Rydder opp i midlertidige kataloger
- Utganger med status 1
Utførelsesloggen bevares, og banen skrives ut til standardfeil.
Eksempler
Samle en standard støttepakke:
get_info.sh
Strøm en bunt over en SSH-tilkobling, uten å opprette en buntfil på den eksterne PowerFlex-verten:
ssh <host> 'get_info.sh --output-file=-' > getInfoDump-<host>.tgz
Bruk en annen arbeidskatalog for å unngå å fylles opp /tmp:
get_info.sh --work-dir=/var/tmp
Inkluder egendefinerte baner i pakken:
get_info.sh --collect-path=/opt/custom/app/logs --collect-path='/var/log/app*'
Hente bare inn den nyeste kjernedumpen for SDS- og MDM-komponenter:
get_info.sh --collect-cores='mdm sds' --max-cores=1
Samle inn data sentrert rundt endringstiden til en kjernefil, med et egendefinert tidsvindu:
get_info.sh --reference-core-file=/opt/emc/scaleio/sds/bin/core.1000 \
--minutes-before-event=10 \
--minutes-after-event=2