PowerFlex: GET_INFO – nástroj pro sběr balíčků podpory
Résumé: get_info.sh – shromáždění diagnostických informací z hostitele PowerFlex a jejich zabalení do balíčku podpory
Instructions
get_info.sh [MOŽNOSTI]
POPIS
get_info.sh je diagnostický nástroj, který shromažďuje informace o ladění z hostitele PowerFlex (dříve ScaleIO) a archivuje je do komprimovaného balíčku pro analýzu pracovníky podpory.
Nástroj shromažďuje data z více zdrojů, včetně:
- Protokoly, konfigurace a trasovací soubory komponent PowerFlex
- Výstupy dotazů MDM/SCLI a interní výpisy ladění
- Interní diagnostika komponent PowerFlex
- Konfigurace operačního systému, protokoly a stav modulu runtime
- Inventarizace hardwaru (řadiče úložiště, síťová zařízení, NVMe, NVDIMM atd.)
- Výpisy paměti jádra (existující a volitelně generované na vyžádání)
- Statistika diag_coll shromažďování diagnostických dat
Výsledný balíček je jeden komprimovaný archiv (ve výchozím nastavení tar/gz), který lze přenést do podpory PowerFlex k další analýze.
V daném okamžiku může být na hostiteli spuštěna pouze jedna instance get_info.sh. Pokud není dostatek volného místa pro jeho výstup, odmítne se spustit (pokud není kontrola místa explicitně přeskočena).
MOŽNOSTI
Obecné možnosti
-
-a, --vše
Shromážděte všechna data. To odpovídá zadání --mdm-repository, --collect-cores, --max-cores=2, --valgrind-cores a --analyse-diag-coll.
-
-A, --analyse-diag-coll
Analyzujte data kolektoru diagnostických dat (diag coll).
-
-b[COMPONENTS], --collect-cores[=COMPONENTS]
Shromážděte existující výpisy jádra pro prostorově oddělený seznam KOMPONENT uživatelské půdy. Výchozí (když je COMPONENTS vynechán): všechny komponenty uživatelské půdy.
Poznámka: mezi nimi nesmí být žádná mezera-ba KOMPONENTY. U dlouhé formy oddělte=Příklady:
-b'mdm sds'--collect-cores='mdm sds' -
-d OUT_DIR, --output-dir=OUT_DIR
Výsledný balíček uložte do adresáře OUT_DIR. Výchozí:
<WORK_DIR>/scaleio-getinfo(viz --work-dir). -
-f, --skip-mdm-login
Přeskočte dotaz na přihlašovací údaje PowerFlex MDM. Užitečné, pokud se uživatel již přihlásil ručně.
-
-h, --help
Zobrazte zprávu nápovědy a ukončete operaci. V kombinaci s volbou --tech zobrazí také možnosti technika.
-
-J, --xz
Pro shromážděný balíček použijte formát tar/xz místo výchozího tar/gz. Ignoruje se, pokud je systém
tar(1)Nepodporuje--use-compress-programneboxz(1)není nalezen. -
-k NUM,--max-cores=NUM
Shromážděte soubory jádra až NUM z každé komponenty. Výchozí hodnota: všechny základní soubory Implikuje --collect-cores.
-
-l, --světlo
Vygenerujte lehký svazek. Shromažďuje se pouze nejnovější generace očíslovaných souborů protokolu a spustitelné soubory/knihovny komponent nejsou součástí shromažďování jader. Použití této možnosti snižuje možnosti podpory, a proto se její použití nedoporučuje.
-
-m NUM,--max-traces=NUM
Shromážděte trasovací soubory až NUM PowerFlex z každé komponenty. Výchozí hodnota: všechny soubory
-
-N, --přeskočit-mezerník-check
Přeskočí ověření volného místa na disku před sběrem dat.
-
- P PATH,--collect-path=CESTA
Shromážděte další cestu PATH. Přípustné jsou pouze absolutní cesty. Přijímá zástupné znaky; Zástupné znaky by měly být v uvozovkách. Tuto možnost lze zadat vícekrát, chcete-li shromáždit více cest.
-
-q, --quiet, --silent
Potlačí zprávy na standardním výstupu.
-
-r, --mdm-repository
Shromážděte soubory úložiště MDM.
-
-s, --skip-sdbg
Přeskočit sběr výstupu SDBG (diagnostický debugger).
-
-S, --pause-core-generation
Pozastavení generování jádra komponent PowerFlex během sběru dat. Po dokončení shromažďování se obnoví původní konfigurace.
-
-w WORK_DIR, --work-dir=WORK_DIR
Pro dočasné soubory použijte WORK_DIR adresáře. Výchozí:
/tmp. -
-x SOUBOR, --output-file=SOUBOR
Uložte shromážděný balíček jako soubor s názvem FILE. Příslušná přípona názvu souboru (
.tgz,.zip, atd.) se přidá automaticky. Pokud je SOUBOR-(dash), zapíše svazek na standardní výstup (implikuje --quiet). Když balíček zapíšete na standardní výstup, na disku se nevytvoří žádný soubor balíčku. Výchozí:getInfoDump. -
-z, --zip
Pro shromážděný balíček použijte formát zip namísto výchozího souboru tar/gz. Ignoruje se, pokud
zip(1)není v systému nalezen. -
--mdm-port=PORT
Připojte se k uzlu MDM pomocí portu PORT pro příkazy SCLI. Výchozí hodnota: výchozí chování scli.
-
--overwrite-output-file
Přepište výstupní soubor, pokud již existuje. Pokud je výstupní soubor nebo adresář explicitně zadán (pomocí -x nebo -d), výchozím chováním je odmítnutí přepsání; Tato možnost to přepíše.
-
--Tech
Do výstupu zprávy nápovědy zahrňte možnosti technika.
Volby přihlášení do MDM
Do SCLI jsou předány následující možnosti --login . Jejich chování a výchozí hodnoty se řídí SCLI.
-
-n, --use-nezabezpečená-komunikace
Připojte se k MDM v nezabezpečeném režimu.
-
-p HESLO, --password=HESLO
Pro přihlášení do PowerFlex MDM použijte PASSWORD. Výchozí: Výchozí chování SCLI.
-
-u UŽIVATELSKÉ JMÉNO, --username=UŽIVATELSKÉ JMÉNO
Pro přihlášení do PowerFlex MDM použijte USERNAME. Výchozí hodnota: výchozí chování scli.
-
--ldap-ověřování
Přihlaste se do PowerFlex MDM pomocí ověřování založeného na protokolu LDAP.
-
--management-system-ip=ADRESA
Připojte se k SSO/M&O na adrese ADDRESS pro přihlášení do systému PowerFlex. Výchozí hodnota: výchozí chování scli.
-
--p12-password=HESLO
Zašifrujte přihlašovací soubor PKCS#12 do systému PowerFlex pomocí hesla. Výchozí hodnota: výchozí chování scli.
-
--p12-path=SOUBOR
Uložte přihlašovací soubor PKCS#12 do systému PowerFlex jako FILE. Výchozí hodnota: výchozí chování scli.
Možnosti technika
Následující možnosti jsou určeny pro použití techniky podpory a jsou zobrazeny ve zprávě nápovědy pouze v případě, že --tech je zadán.
-c[COMPONENTS], --generate-cores[=COMPONENTS]
Generování souborů jádra (prostřednictvím gcore(1)) pro běžící procesy prostorově odděleného seznamu uživatelských KOMPONENT. Výchozí: všechny komponenty uživatelské krajiny. Implikuje --collect-executables. Vyžaduje gdb a gcore.
-c a KOMPONENTY. U dlouhé formy oddělte =.
Příklady:
-c'mdm sds'
--generate-cores='mdm sds'
-
-C CORE_FILE, --reference-core-file=CORE_FILE
Shromažďujte protokoly a jádra produktů vzhledem k času poslední změny (mtime) CORE_FILE namísto času zahájení. Implikuje --collect-cores.
-
-E REF_TIME, --event-time=REF_TIME
Shromažďujte protokoly a jádra produktů vzhledem k REF_TIME namísto času spuštění. Přijímá jakýkoli formát, kterému rozumí
date(1). Implikuje --collect-cores. - -g[COMPONENTS], --valgrind-cores[=COMPONENTS]
Shromážděte výpisy jádra Valgrind pro zadané KOMPONENTY země uživatele. Výchozí: všechny komponenty uživatelské krajiny. Implikuje --collect-executables.
Poznámka: mezi nimi nesmí být žádná mezera -b a KOMPONENTY. U dlouhé formy oddělte =
Příklady:
-g'mdm sds'
--valgrind-cores='mdm sds'
-
-t MIN,--minutes-before-event=MIN
Shromažďujte protokoly produktů a jádra vygenerovaná až do minuty před referenčním časem. Výchozí: 15.
-
-T MIN,--minutes-after-event=MIN
Shromažďujte protokoly produktů a jádra vygenerovaná do min. minut po referenčním čase. Výchozí: 5.
-
-X[COMPONENTS],--collect-executables[=COMPONENTS]
Shromážděte spustitelné soubory komponent a jejich sdílené knihovny pro zadané komponenty uživatelské země. Výchozí: všechny komponenty uživatelské krajiny.
Poznámka: mezi nimi nesmí být žádná mezera
-ba KOMPONENTY. U dlouhé formy oddělte=Příklady:
-X'mdm sds' --collect-executables='mdm sds' -
--keep-work-dir
Po vytvoření balíčku zachovejte vygenerovaný dočasný pracovní adresář (obvykle se vyčistí automaticky).
STRUKTURA SVAZKU
Výstupní balíček je jeden komprimovaný archiv.
- Adresář nejvyšší úrovně balíčku je název hostitele shromážděného systému.
- Obecné výstupy hostitelských příkazů přecházejí do
server/Podadresář.
Název souboru je<command>+<arguments>+ přípona (.txtve výchozím nastavení). Mezery nahrazeny_, nealfanumerické znaky odstraněny.
Příklad:server/ip_-s_addr.txt– výstupip -s addr - Výstupy příkazů produktu přecházejí do podadresáře komponenty.
mdm/Proscli,sdc/Prodrv_cfgAtd.
Název příkazu (scli,drv_cfg, atd.) je odizolován. Prvním smysluplným argumentem se stane název souboru. Souborům je přiřazena příslušná přípona,.txtVe výchozím nastavení.
Příklady:mdm/query_cluster.txt– výstupscli --query_clustermdm/tgt_dump.txt– výstupscli --debug_action --tgt_dumpsdc/query_mdms.txt– výstupdrv_cfg --query_mdmssds/sdbg.txt– výstup SDBGdumpallscreenspro bezpečnostní list
- Soubory komponent produktu (na rozdíl od výstupů příkazů),
<component>/cfg,<component>/logsAtd.
Zkopírováno z adresáře komponenty s odstraněnou předponou.
Příklady:mdm/cfg/conf.txt– kopie/opt/emc/scaleio/mdm/cfg/conf.txtsds/logs/trc.0– kopie/opt/emc/scaleio/sds/logs/trc.0
- Hostitelské soubory systému souborů jsou umístěny v cestě systému souborů vzhledem ke kořenovému adresáři balíčku.
Příklady:etc/os-release– kopie/etc/os-releasevar/log/messages– kopie/var/log/messagesproc/cpuinfo– kopie/proc/cpuinfo
- Soubory kolektoru diagnostiky (diag_coll) jsou zkopírovány spolu s
/optpředpona odstraněna, se zachováním vnitřní struktury.
Příklad:diag_coll/logs/sar.0– kopie/opt/diag_coll/logs/sar.0 - Skryté soubory (s tečkovou předponou) jsou "neskryté" odstraněním úvodní tečky.
- Protokol spuštění nástroje,
get_info_run.log, umístěné přímo pod názvem> hostitele nebo kořenovým adresářem<.
Stromová struktura adresáře balíčku:
<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)
FILTROVÁNÍ PROTOKOLŮ PRODUKTŮ A ZÁKLADNÍCH SOUBORŮ
Možnosti popsané v této části určují, jakým způsobem budou soubory protokolu produktu (nazývané také trasovací soubory, např. trc.0, trc.1, exp.0) a soubory výpisu jádra jsou vybrány pro zahrnutí do shromážděného balíčku. Dělají to tak, že definují referenční čas, časové okno kolem něj a limity počtu.
Pokud nejsou zadány žádné možnosti filtrování, shromáždí se všechny soubory protokolu produktu a (pokud je shromažďování jádra povoleno) všechny soubory výpisu jádra. Možnosti filtrování tento výběr postupně zužují, jak je popsáno níže.
Referenční čas
Referenční čas lze nastavit pomocí buď -E/--event-time nebo -C/--reference-core-file.
Pokud ani jedno --event-time Ani --reference-core-file , neprovádí se žádné filtrování časového okna: referenční čas je ve výchozím nastavení aktuální čas a používá se pouze pro řazení na základě blízkosti, když je limit počtu (-m nebo -k) (viz Limity počtu níže).
Pokud oba -E a -C , projeví se poslední na příkazovém řádku.
Časové okno
Když je nastaven referenční čas (pomocí --event-time nebo --reference-core-file), je kolem něj vytvořeno časové okno. Rozsah časového intervalu je možné nastavit pomocí -t/--minutes-before-event Nebo -T/--minutes-after-event, což je výchozí hodnota 15 a 5 minut. Kolekce je možná pouze u souborů, jejichž obsah se překrývá s tímto oknem.
Například -E "2020-03-20 14:30" -t 10 -T 3 Shromáždí soubory za období 14:20:00 až 14:33:00.
--minutes-before-event a --minutes-after-event jsou ignorovány, pokud ani jeden z nich --event-time Ani --reference-core-file je specifikován.
Limity počtu
Limit počtu souborů lze nastavit pomocí -m/--max-traces a -k/--max-corespro soubory protokolu a soubory jádra. Mezní hodnota se měří na každou součást.
Pokud do časového intervalu spadá více souborů než NUM (nebo jsou k dispozici, pokud není aktivní žádné okno), shromáždí se soubory NUM, které jsou nejblíže referenčnímu času.
Při použití limitu počtu bez --event-time nebo --reference-core-file, všechny soubory jsou kandidáty (bez časového okna) a vyberou se nejnovější soubory NUM.
Logika filtrování
Filtrování souborů nejprve použije časový interval a pak limit počtu:
- Stanovte kandidáty. Jsou uvedeny všechny soubory protokolu produktu nebo soubory výpisu jádra pro komponentu.
- Odvodit období obsahu. Obsah souborů protokolu produktu představuje období. Má se za to, že období obsahu začíná v čase poslední změny předchůdce (mtime) nebo v epoše systému UNIX, kdy žádný předchůdce neexistuje; Končí ve vlastním čase souboru. Soubory výpisu jádra představují bod v čase v čase souboru.
- Použít časové okno (pokud
-Enebo-Cspecifikováno). Soubory, jejichž obsah spadá zcela mimo okno, jsou z výběru vypuštěny. U souborů protokolu produktu platí, že pokud do okna nespadá žádný soubor, zachová se jediný soubor, který je oknu nejblíže, takže sada není pro komponentu nikdy prázdná. U souborů výpisu jádra se žádná taková záloha nepoužije. - Použít limit počtu (pokud
-mNebo-kspecifikováno). Ze zbývajících souborů jsou vybrány maximálně NUM, přičemž se upřednostňují ty, které jsou nejblíže referenčnímu času. Soubory před a po referenčním čase soutěží o výběr rovnoměrně.
OVĚŘOVÁNÍ
Nástroj se pokusí přihlásit k místnímu uzlu MDM, pokud je zjištěn primární proces MDM naslouchající na očekávaném portu (výchozí: 6611).
Možnosti přihlášení přes MDM se předávají do SCLI. --login a jsou jím zpracovány.
Pokud se přihlášení nezdaří, nástroj se ukončí s chybou.
I když dojde k přeskočení přihlášení, stále se konají pokusy o příkazy SCLI (kvůli podpoře scénářů, kdy se uživatel předtím přihlásil ručně). Po 3 selháních SCLI se zobrazí varování a všechny další příkazy SCLI se přeskočí.
Přihlášení je přeskočeno, když:
- Na místním hostiteli nebyl nalezen žádný primární proces MDM.
- Je zadána možnost --skip-mdm-login.
Přihlášení se nezdaří v následujících případech:
- Vlastník procesu MDM není v seznamu autorizovaných uživatelů (výchozí:
root) a je povoleno zabezpečené přihlášení. - Rozhraní SCLI
--loginPříkaz vrátí chybu (např. nesprávné přihlašovací údaje).
DISKU
Požadavky na místo na disku pro dočasné soubory a výsledný balíček se mohou značně lišit.
Nástroj se pokouší minimalizovat dočasné využití místa; Je omezen na výstupy příkazů a kopie shromážděného virtuálního souborového systému (/proc a /sys) soubory.
Chcete-li minimalizovat využití místa na disku hostitele PowerFlex, lze balíček streamovat ze vzdáleného hostitele pomocí --output-file=-. Při streamování se soubor balíčku zapisuje přímo do standardního výstupu (stdout); Není vytvořen na disku.
Před shromážděním dat nástroj odhadne požadované místo na disku pro dočasný pracovní adresář i výstupní balíček.
Pokud odhadované požadované místo překročí dostupné místo v příslušných souborových systémech, nástroj se ukončí s chybou. Tuto kontrolu lze obejít pomocí --skip-space-check.
Pracovní adresář a výstupní adresář mohou být umístěny v různých souborových systémech; Každý z nich je kontrolován nezávisle.
Odhadované požadavky na místo se zapisují do souboru protokolu nástroje, get_info_run.log.
STAV UKONČENÍ
| 0 | Úspěšné dokončení |
| 1 | Chyba (neplatné argumenty, nedostatek místa, selhání přihlášení, již spuštěná jiná instance, selhání generování balíčku, zachycený signál atd.) |
SOUBORY
<WORK_DIR>/get_info_run.log |
Protokol spuštění (rovněž součást balíčku) |
<WORK_DIR>/scaleio-getinfo-tmp/ |
Dočasný pracovní adresář (vyčištěn při úspěchu) |
/tmp/scaleio-getinfo/getInfoDump.tgz |
Výchozí umístění výstupního balíčku |
<WORK_DIR>/scaleio-getinfo-extra/
/tmp/scaleio-getinfo-extra/ |
Volitelné dodatečné adresáře diagnostických dat |
/tmp/scaleio-getinfo-backup/ |
Dočasné zálohy upravených konfiguračních souborů (automaticky vytvořené) |
/opt/emc/scaleio/ |
Instalační adresář PowerFlex |
PROSTŘEDÍ
Požadavky
- Nástroj musí být spuštěn jako uživatel root (nebo uživatel s dostatečnými oprávněními ke čtení souborů součástí, provádění diagnostických příkazů a přístupu
/proc,/sys, atd.). - Standardní nástroje:
tar,gzip,stat,find,awk,sed,getopt(1)(vylepšeno),nice. - Volitelné:
zip(pro--zip),xz(pro--xz),gdb/gcore(pro--generate-cores).
Souběžnost
V jednom okamžiku může být spuštěna pouze jedna instance get_info.sh. Nástroj vyhledá existující spuštěnou instanci prostřednictvím pidof(1) a ukončí se, pokud je nalezen.
Manipulace se signálem
Pasti na inženýrské sítě INT, EXITa TERM signály během sběru dat. Po přijetí signálu:
- Obnoví všechny zálohované konfigurační soubory (např. nastavení generování jádra).
- Vyčistí dočasné adresáře.
- Ukončí se se stavem 1.
Protokol spuštění je zachován a jeho cesta je vytištěna na standardní chybu.
PŘÍKLADY
Shromážděte standardní balíček podpory:
get_info.sh
Streamování balíčku přes připojení SSH bez vytvoření souboru balíčku na vzdáleném hostiteli PowerFlex:
ssh <host> 'get_info.sh --output-file=-' > getInfoDump-<host>.tgz
Použijte jiný pracovní adresář, abyste se vyhnuli zaplnění /tmp:
get_info.sh --work-dir=/var/tmp
Zahrnutí vlastních cest do balíčku:
get_info.sh --collect-path=/opt/custom/app/logs --collect-path='/var/log/app*'
Shromážděte nejnovější výpis jádra pouze pro komponenty SDS a MDM:
get_info.sh --collect-cores='mdm sds' --max-cores=1
Shromažďujte data soustředěná kolem času úprav základního souboru s vlastním časovým intervalem:
get_info.sh --reference-core-file=/opt/emc/scaleio/sds/bin/core.1000 \
--minutes-before-event=10 \
--minutes-after-event=2