PowerFlex: GET_INFO – verktyg för insamling av supportpaket
Summary: get_info.sh – samla in diagnostikinformation från en PowerFlex-värd och packa den i ett supportpaket.
Instructions
get_info.sh [ALTERNATIV]
BESKRIVNING
get_info.sh är ett diagnostikverktyg som samlar in felsökningsinformation från en PowerFlex-värd (tidigare ScaleIO) och arkiverar den i ett komprimerat paket för analys av supportpersonal.
Verktyget samlar in data från flera källor, inklusive:
- Loggar, konfiguration och spårningsfiler för PowerFlex-komponenter
- MDM/SCLI-frågeutdata och intern felsökningsdump
- Intern diagnostik för PowerFlex-komponenter
- Operativsystemets konfiguration, loggar och körningsstatus
- Maskinvaruinventering (lagringsstyrenheter, nätverksenheter, NVMe, NVDIMM osv.)
- Kärndumpar (befintliga och eventuellt genererade på begäran)
- Insamlare av diagnostikdata (
diag_coll) statistik
Det resulterande paketet är ett enda komprimerat arkiv (tar/gz som standard) som kan överföras till PowerFlex-support för vidare analys.
Endast en förekomst av get_info.sh kan köras på en värd vid en viss tidpunkt. Om det inte finns tillräckligt med ledigt utrymme för dess utdata vägrar den att köras (såvida inte utrymmeskontroll uttryckligen hoppas över).
ALTERNATIV
Allmänna alternativ
-
-a, --allSamla in alla data. Detta är likvärdigt med att ange
--mdm-repository,--collect-cores,--max-cores=2,--valgrind-coresoch--analyse-diag-coll. -
-A, --analyse-diag-collAnalysera diagnostikdatainsamlare (
diag coll) uppgifter -
-b[COMPONENTS], --collect-cores[=COMPONENTS]Samla in befintliga kärndumpar för den blankstegsavgränsade listan över användarland
COMPONENTS. Standard (närCOMPONENTSutelämnas): Alla komponenter på användarland
-b och KOMPONENTER. För den långa formen, separera med =
Exempel
-b'mdm sds'
--collect-cores='mdm sds'
-
-d OUT_DIR, --output-dir=OUT_DIRLagra det resulterande paketet under katalog
OUT_DIR. Default: <WORK_DIR>/scaleio-getinfo(mer information finns i--work-dir). -
-f, --skip-mdm-loginHoppa över frågan om inloggningsuppgifter för PowerFlex MDM. Användbart när användaren redan har loggat in manuellt.
-
-h, --helpVisa hjälpmeddelandet och avsluta. I kombination med
--tech, visa även teknikeralternativ. -
-J, --xzAnvänd
tar/xzformat för det insamlade paketet i stället för standardformatettar/gz.Ignoreras om systemetstar(1)Stöder inte--use-compress-programellerxz(1)hittades inte. -
-k NUM, --max-cores=NUMSamla in upp till
NUMKärnfiler från varje komponent. Default: Alla kärnfiler, innebär--collect-cores -
-l, --lightSkapa ett lätt knippe. Endast den senaste generationen numrerade loggfiler samlas in, och körbara komponentfiler eller bibliotek ingår inte vid insamling av kärnor. Användning av det här alternativet minskar supportmöjligheten och vi rekommenderar inte att det används.
-
-m NUM, --max-traces=NUMSamla in upp till
NUMPowerFlex-spårningsfiler från varje komponent. Default: Alla filer -
-N, --skip-space-checkHoppa över verifiering av ledigt diskutrymme före datainsamling.
-
-P PATH, --collect-path=PATHSamla in ytterligare sökväg
PATH.Endast absoluta sökvägar accepteras. Jokertecken accepteras. Jokertecken ska anges. Det här alternativet kan anges flera gånger för att samla in flera sökvägar. -
-q, --quiet, --silentIgnorera meddelanden vid standardutmatning.
-
-r, --mdm-repositorySamla in MDM-lagringsfiler.
-
-s, --skip-sdbgHoppa över insamling av SDBG-utdata (diagnostisk felsökare).
-
-S, --pause-core-generationPausa kärngenereringen av PowerFlex-komponenter under datainsamling. Den ursprungliga konfigurationen återställs när insamlingen har slutförts.
-
-w WORK_DIR, --work-dir=WORK_DIRAnvänd katalog
WORK_DIRför temporära filer. Default:/tmp. -
-x FILE, --output-file=FILELagra det insamlade paketet som en fil med namnet
FILE. Lämpligt filnamnssuffix (.tgz,.zipoch så vidare) läggs till automatiskt. OmFILEÄr-(bindestreck), skriv paketet till standardutmatning (implicerar--quiet). När ett paket skrivs till standardutdata skapas ingen paketfil på disken. Default:getInfoDump. -
-z, --zipAnvänd
zipformat för det insamlade paketet i stället för standardformatettar/gz. Ignoreras omzip(1)finns inte i systemet. -
--mdm-port=PORTAnsluta till MDM med port
PORTför SCLI-kommandon. Default:scli default behavior. -
--overwrite-output-fileSkriv över utdatafilen om den redan finns. När en utdatafil eller katalog uttryckligen anges (med hjälp av
-xeller-d) är standardbeteendet att vägra att skriva över. Det här alternativet åsidosätter det. -
--techInkludera teknikeralternativ i hjälpmeddelandets utdata.
MDM-inloggningsalternativ
Följande alternativ skickas till SCLI: --login Kommandot. Deras beteende och standardvärden styrs av SCLI.
-
-n, --use-nonsecure-communicationAnslut till MDM i osäkert läge.
-
-p PASSWORD, --password=PASSWORDAnvänd
PASSWORDför PowerFlex MDM-inloggning. Default: SCLI-standardbeteende -
-u USERNAME, --username=USERNAMEAnvänd
USERNAMEför PowerFlex MDM-inloggning. Default: SCLI-standardbeteende -
--ldap-authenticationLogga in på PowerFlex MDM med LDAP-baserad autentisering.
-
--management-system-ip=ADDRESSAnslut till
SSO/M&OPåADDRESSför PowerFlex-inloggning. Default: SCLI-standardbeteende -
--p12-password=PASSWORDKryptera PowerFlex-inloggningen
PKCS#12fil med hjälp avPASSWORD. Default: SCLI-standardbeteende -
--p12-path=FILELagra PowerFlex-inloggningen
PKCS#12fil somFILE. Default: SCLI-standardbeteende
Teknikeralternativ
Följande alternativ är avsedda att användas av supporttekniker och visas endast i hjälpmeddelandet när --tech anges.
-c[COMPONENTS], --generate-cores[=COMPONENTS]
Generera kärnfiler (med gcore(1)) för de pågående processerna för den utrymmesseparerade förteckningen över COMPONENTS. Standard: alla komponenter i användarland, implicerar --collect-executables, och kräver gdb och gcore.
-c och COMPONENTS. För den långa formen, separera med =.
Exempel:
-c'mdm sds'
--generate-cores='mdm sds'
-
-C CORE_FILE, --reference-core-file=CORE_FILESamla in produktloggar och kärnor i förhållande till den senaste ändringstiden (
mtime) av denCORE_FILEi stället för starttiden för körningen. Innebär--collect-cores -
-E REF_TIME, --event-time=REF_TIMESamla in produktloggar och kärnor i förhållande till
REF_TIMEi stället för starttiden för körningen. Accepterar alla format som tolkas avdate(1). Innebär--collect-cores. -g[COMPONENTS], --valgrind-cores[=COMPONENTS]
Samla valgrind Kärndumpar för det angivna användarlandet COMPONENTS. Standard: alla komponenter i användarland. Innebär --collect-executables.
-b och COMPONENTS. För den långa formen, separera med =
Exempel:
-g'mdm sds'
--valgrind-cores='mdm sds'
-
-t MIN, --minutes-before-event=MINSamla in produktloggar och kärnor som genererats upp till
MINminuter före referenstidpunkten. Default: 15 -
-T MIN, --minutes-after-event=MINSamla in produktloggar och kärnor som genererats upp till
MINminuter efter referenstidpunkten. Default: 5 -
-X[COMPONENTS], --collect-executables[=COMPONENTS]Samla in körbara komponentfiler och deras delade bibliotek för det angivna användarlandet
COMPONENTS. Default: Alla komponenter på användarland
-b och COMPONENTS. För den långa formen, separera med =
Exempel:
-X'mdm sds'
--collect-executables='mdm sds'
-
--keep-work-dirBehåll den genererade tillfälliga arbetskatalogen när paketet har skapats (rensas automatiskt).
PAKETSTRUKTUR
Utdatapaketet är ett enda komprimerat arkiv.
- Katalogen på den översta paketnivån är värdnamnet för det insamlade systemet.
- Allmänna kommandoutdata för värd hamnar i en
server/underkatalog.
Filnamnet är<command>+<arguments>+ suffix (.txtsom standard). Blanksteg ersatta med_, icke-alfanumeriska tecken borttagna
Exempel:server/ip_-s_addr.txt – output of ip -s addr - Utdata för produktkommandon hamnar i komponentens underkatalog.
mdm/Förscli,sdc/Fördrv_cfgoch så vidare.
Kommandonamn (scli,drv_cfg, och så vidare) är avskalad. Det första meningsfulla argumentet blir filnamnet. Filer tilldelas som relevant suffix,.txtsom standard.
Exempel:
-
mdm/query_cluster.txt- Utmatning avscli --query_clustermdm/tgt_dump.txt- Utmatning avscli --debug_action --tgt_dumpsdc/query_mdms.txt- Utmatning avdrv_cfg --query_mdmssds/sdbg.txt- utdata från SDBGdumpallscreensför SDS
- Produktkomponentfiler (i motsats till kommandoutdata),
<component>/cfg,<component>/logsoch så vidare
Kopieras från komponentens katalog med prefixet borttaget.
Exempel:
-
mdm/cfg/conf.txt- kopia av/opt/emc/scaleio/mdm/cfg/conf.txtsds/logs/trc.0- kopia av/opt/emc/scaleio/sds/logs/trc.0
- Värdfilsystemfiler placeras på sin filsystemsökväg i förhållande till paketroten.
Exempel:
-
etc/os-release- kopia av/etc/os-releasevar/log/messages- kopia av/var/log/messagesproc/cpuinfo- kopia av/proc/cpuinfo
- Diagnostikinsamlarfiler (diag_coll) kopieras med
/optprefixet avskalas, vilket bevarar den inre strukturen.
Exempel:diag_coll/logs/sar.0- kopia av/opt/diag_coll/logs/sar.0 - Dolda filer (med punktprefix) döljs genom att den inledande punkten tas bort.
- Körningslogg för verktyg,
get_info_run.log, placerad direkt under värdnamnet>/roten <
Trädstruktur för buntkatalog:
<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 AV PRODUKTLOGG OCH KÄRNFIL
Alternativen som beskrivs i det här avsnittet styr hur produktloggfiler (kallas även spårningsfiler, t.ex. trc.0, trc.1, exp.0) och kärndumpfiler väljs för inkludering i det insamlade paketet. De gör det genom att definiera en referenstid, ett tidsfönster runt den och räkna gränser.
När inga filtreringsalternativ anges samlas alla produktloggfiler och (om kärninsamling är aktiverat) alla kärndumpfiler in. Filtreringsalternativen begränsar successivt det här urvalet enligt beskrivningen nedan.
Referenstid
En referenstid kan ställas in med hjälp av antingen -E/--event-time eller -C/--reference-core-file.
Om ingetdera --event-time Eller --reference-core-file anges, utförs ingen tidsfönsterfiltrering: referenstiden är som standard den aktuella tiden och används endast för närhetsbaserad ordning när en antalsgräns (-m eller -k) är i kraft (se Antalsgränser nedan).
Om båda -E och -C visas träder det sista objektet på kommandoraden i kraft.
Tidsfönster
När en referenstid ställs in (med hjälp av --event-time eller --reference-core-file) upprättas ett tidsfönster runt den. Tidsfönstrets omfattning kan ställas in med hjälp av -t/--minutes-before-event och/eller -T/--minutes-after-event, som standard är 15 respektive 5 minuter. Endast filer vars innehåll överlappar det här fönstret kan hämtas.
Till exempel -E "2020-03-20 14:30" -t 10 -T 3 Samlar in filer som täcker perioden 14:20:00 till 14:33:00.
--minutes-before-event och --minutes-after-event ignoreras när varken --event-time Eller --reference-core-file anges.
Antalsgränser
En filantalsgräns kan ställas in med hjälp av -m/--max-traces och -k/--max-cores, för loggfiler respektive kärnfiler. Gränsen mäts per komponent.
När fler filer än NUM faller inom tidsperioden (eller är tillgängliga, om inget fönster är aktivt) samlas de NUM-filer som är närmast referenstiden in.
När en antalsgräns används utan --event-time eller --reference-core-file, alla filer är kandidater (inget tidsfönster) och NUM:s senaste filer är markerade.
Filtreringslogik
Filfiltrering tillämpas först på tidsperioden och sedan på antalsgränsen:
- Etablera kandidater. Alla produktloggfiler och/eller kärndumpfiler för en komponent räknas upp.
- Härled innehåll, punkt slut. Innehållet i produktloggfiler representerar en period. Innehållsperioden anses börja vid den föregående ändringens senaste ändringstidpunkt (
mtime), eller UNIX-epoken, när det inte finns någon föregångare. den slutar vid filens egenmtime. Kärndumpfiler representerar en tidpunkt vid filensmtime. - Tillämpa tidsfönster (om
-Eeller-Cspecificeras). Filer vars innehåll ligger helt utanför fönstret tas bort från markeringen. För produktloggfiler, om ingen fil faller inom fönstret, behålls den enda filen närmast fönstret så att paketet aldrig är tomt för en komponent. För kärndumpfiler gäller ingen sådan återställning. - Tillämpa antalsgräns (om
-moch/eller-kspecificeras). Bland de återstående filerna, som mestNUMväljs och de som ligger närmast referenstiden föredras. Filer före och efter referenstiden konkurrerar lika om urvalet.
AUTENTISERING
Verktyget försöker logga in på den lokala MDM-enheten om en primär MDM-process detekteras genom att lyssna på den förväntade porten (standard: 6611)
MDM-inloggningsalternativ skickas till SCLI --login kommando och bearbetas av den.
Om inloggningen misslyckas avslutas verktyget med ett fel.
När inloggningen hoppas över görs fortfarande försök med SCLI-kommandon (för att stödja scenarier där användaren har loggat in manuellt i förväg). Efter tre SCLI-fel visas en varning och alla ytterligare SCLI-kommandon hoppas över.
Inloggningen hoppas över när:
- Det finns ingen primär MDM-process på den lokala värden.
- Informationen
--skip-mdm-loginalternativet har angetts.
Inloggningen misslyckas när:
- MDM-processägaren finns inte i listan över behöriga användare (standard:
root) och säker inloggning är aktiverad. - The SCLI
--loginreturnerar ett fel (till exempel felaktiga autentiseringsuppgifter).
DISKUTRYMME
Diskutrymmeskraven för temporära filer och det resulterande paketet kan variera avsevärt.
Verktyget försöker minimera tillfällig utrymmesanvändning; Den är begränsad till kommandoutdata och kopior av insamlade virtuella filsystem (/proc och /sys) filer.
Paketet kan streamas från en fjärrvärd med --output-file=- för att minimera diskutrymmet på PowerFlex-värden. Paketfilen skrivs direkt till standardutmatning (stdout) vid strömning. Den skapas inte på disken.
Verktyget uppskattar det diskutrymme som krävs för både den tillfälliga arbetskatalogen och utdatapaketet innan data samlas in.
Om det uppskattade utrymmet som krävs överskrider det tillgängliga utrymmet i relevanta filsystem avslutas verktyget med ett fel. Den här kontrollen kan kringgås med --skip-space-check.
Arbetskatalogen och utdatakatalogen kan finnas på olika filsystem. Var och en kontrolleras oberoende av varandra.
De uppskattade utrymmeskraven skrivs till verktygets loggfil, get_info_run.log.
AVSLUTNINGSSTATUS
| 0 | Framgångsrikt slutförande |
| 1 | Fel (ogiltiga argument, otillräckligt utrymme, inloggningsfel, en annan instans som redan körs, fel på paketgenerering, signal fångad och så vidare) |
FILER
<WORK_DIR>/get_info_run.log |
Körningslogg (ingår också i paketet) |
<WORK_DIR>/scaleio-getinfo-tmp/ |
Tillfällig arbetskatalog (rensad när det lyckades) |
/tmp/scaleio-getinfo/getInfoDump.tgz |
Standardplats för utdatapaket |
<WORK_DIR>/scaleio-getinfo-extra/
/tmp/scaleio-getinfo-extra/ |
Extra kataloger med diagnostikdata som tillval |
/tmp/scaleio-getinfo-backup/ |
Temporära säkerhetskopior av ändrade konfigurationsfiler (skapas automatiskt) |
/opt/emc/scaleio/ |
PowerFlex installationskatalog |
MILJÖ
Förutsättningar
- Verktyget måste köras som
root(eller en användare med tillräcklig behörighet för att läsa komponentfiler, köra diagnostikkommandon och komma åt/proc,/sysoch så vidare). - Standardverktyg:
tar,gzip,stat,find,awk,sed,getopt(1)(förbättrad),nice. - Valfri:
zip(för--zip),xz(för--xz),gdb/gcore(för--generate-cores)
Samtidighet
Endast en förekomst av get_info.sh kan köras åt gången. Verktyget söker efter en befintlig instans som körs med hjälp av pidof(1) och avslutas om en instans hittas.
Signalhantering
Verktygsfällorna INT, EXIToch TERM signaler under datainsamlingen. När den tar emot en signal
- Återställer alla säkerhetskopierade konfigurationsfiler (t.ex. inställningar för kärngenerering).
- Rensar tillfälliga kataloger
- Avslutar med status 1
Körningsloggen bevaras och sökvägen skrivs ut till standardfelet.
Exempel
Skaffa ett standardsupportpaket:
get_info.sh
Strömma ett paket via en SSH-anslutning utan att skapa en paketfil på PowerFlex-fjärrvärden:
ssh <host> 'get_info.sh --output-file=-' > getInfoDump-<host>.tgz
Använd en annan arbetskatalog för att undvika att fylla upp /tmp:
get_info.sh --work-dir=/var/tmp
Inkludera anpassade sökvägar i paketet:
get_info.sh --collect-path=/opt/custom/app/logs --collect-path='/var/log/app*'
Samla endast in den senaste kärndumpen för SDS- och MDM-komponenterna:
get_info.sh --collect-cores='mdm sds' --max-cores=1
Samla in data centrerade kring en kärnfils ändringstid, med ett anpassat tidsfönster:
get_info.sh --reference-core-file=/opt/emc/scaleio/sds/bin/core.1000 \
--minutes-before-event=10 \
--minutes-after-event=2