PowerFlex: GET_INFO – nástroj pro sběr balíčků podpory
Summary: get_info.sh – shromáždění diagnostických informací z hostitele PowerFlex a jejich zabalení do balíčku podpory.
Instructions
get_info.sh [VOLBY]
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ýpis výpisu 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í)
- Sběrač diagnostických dat (
diag_coll) statistika
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.
Pouze jedna instance get_info.sh může běžet na hostiteli v daném čase. 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, --allShromážděte všechna data. To odpovídá zadání
--mdm-repository,--collect-cores,--max-cores=2,--valgrind-coresa--analyse-diag-coll. -
-A, --analyse-diag-collAnalýza kolektoru diagnostických dat (
diag coll) údaje -
-b[COMPONENTS], --collect-cores[=COMPONENTS]Shromážděte existující výpisy jádra pro prostorově oddělený seznam území uživatelů
COMPONENTS. Výchozí (kdyžCOMPONENTSse vynechává): Všechny komponenty uživatelské půdy
-b a KOMPONENTY. U dlouhé formy oddělte =
Příklad
-b'mdm sds'
--collect-cores='mdm sds'
-
-d OUT_DIR, --output-dir=OUT_DIRUložte výsledný balíček do adresáře
OUT_DIR. Default: <WORK_DIR>/scaleio-getinfo(viz--work-dir). -
-f, --skip-mdm-loginPřeskočte dotaz na přihlašovací údaje PowerFlex MDM. Užitečné, pokud se uživatel již přihlásil ručně.
-
-h, --helpZobrazte zprávu nápovědy a ukončete operaci. V kombinaci s
--techa zobrazte také možnosti technika. -
-J, --xzPomocí
tar/xzFormát shromážděného balíčku namísto výchozíhotar/gz.Ignoruje se, pokud je systémtar(1)Nepodporuje--use-compress-programneboxz(1)není nalezen. -
-k NUM, --max-cores=NUMNasbírejte až
NUMzákladních souborů z každé komponenty. Výchozí: Všechny základní soubory, implikuje--collect-cores -
-l, --lightVygenerujte lehký svazek. Shromažďuje se pouze nejnovější generace očíslovaných souborů protokolu a spustitelné soubory nebo knihovny komponent nejsou součástí shromažďování jader. Použití této možnosti snižuje možnosti podpory a její použití se nedoporučuje.
-
-m NUM, --max-traces=NUMNasbírejte až
NUMSoubory trasování PowerFlex z každé komponenty. Výchozí: Všechny soubory -
-N, --skip-space-checkPřeskočí ověření volného místa na disku před sběrem dat.
-
-P PATH, --collect-path=PATHSbírejte 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, --silentPotlačí zprávy na standardním výstupu.
-
-r, --mdm-repositoryShromážděte soubory úložiště MDM.
-
-s, --skip-sdbgPřeskočit sběr výstupu SDBG (diagnostický debugger).
-
-S, --pause-core-generationPozastavení 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_DIRPoužít adresář
WORK_DIRpro dočasné soubory. Výchozí:/tmp. -
-x FILE, --output-file=FILEUložte shromážděný balíček jako soubor s názvem
FILE. Příslušná přípona názvu souboru (.tgz,.zipa tak dále) se přidají automaticky. Pokud není nastavenoFILEJe-(dash), zapsat svazek na standardní výstup (implikuje--quiet). Když balíček zapíšete na standardní výstup, nevytvoří se na disku žádný soubor balíčku. Výchozí:getInfoDump. -
-z, --zipPomocí
zipFormát shromážděného balíčku namísto výchozíhotar/gz. Ignoruje se, pokudzip(1)není v systému nalezen. -
--mdm-port=PORTPřipojení k MDM přes port
PORTpro příkazy SCLI. Výchozí:scli default behavior. -
--overwrite-output-filePřepište výstupní soubor, pokud již existuje. Pokud je výstupní soubor nebo adresář explicitně zadán (pomocí
-xnebo-d), výchozím chováním je odmítnutí přepsání; Tato možnost to přepíše. -
--techDo 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-nonsecure-communicationPřipojte se ke službě MDM v nezabezpečeném režimu.
-
-p PASSWORD, --password=PASSWORDPomocí
PASSWORDpro přihlášení PowerFlex MDM. Výchozí: Výchozí chování SCLI -
-u USERNAME, --username=USERNAMEPomocí
USERNAMEpro přihlášení PowerFlex MDM. Výchozí: Výchozí chování SCLI -
--ldap-authenticationPřihlaste se do PowerFlex MDM pomocí ověřování založeného na protokolu LDAP.
-
--management-system-ip=ADDRESSPřipojte se k
SSO/M&OatADDRESSpro přihlášení do řešení PowerFlex. Výchozí: Výchozí chování SCLI -
--p12-password=PASSWORDŠifrování přihlašovacích údajů PowerFlex
PKCS#12Soubor pomocíPASSWORD. Výchozí: Výchozí chování SCLI -
--p12-path=FILEUložení přihlašovacích údajů PowerFlex
PKCS#12Zařadit jakoFILE. Výchozí: Výchozí chování SCLI
Možnosti technika
Následující možnosti jsou určeny pro použití techniky podpory a ve zprávě nápovědy se zobrazí pouze v případě, že --tech je specifikován.
-c[COMPONENTS], --generate-cores[=COMPONENTS]
Vygenerujte soubory jádra (pomocí gcore(1)) pro běžící procesy seznamu území uživatele odděleného mezerami COMPONENTS. Výchozí: všechny uživatelské komponenty, implikuje --collect-executablesa vyžaduje gdb a gcore.
-c a COMPONENTS. U dlouhé formy oddělte =.
Příklady:
-c'mdm sds'
--generate-cores='mdm sds'
-
-C CORE_FILE, --reference-core-file=CORE_FILEShromažďujte protokoly a jádra produktů vzhledem k času poslední změny (
mtime) ze dneCORE_FILEmísto času zahájení provádění. Znamená--collect-cores -
-E REF_TIME, --event-time=REF_TIMEShromažďujte protokoly produktů a jádra vzhledem k
REF_TIMEmísto času zahájení provádění. Přijímá jakýkoli formát, kterému rozumídate(1). Znamená--collect-cores. -g[COMPONENTS], --valgrind-cores[=COMPONENTS]
Shromažďovat valgrind výpisy jádra pro zadané území uživatele COMPONENTS. Výchozí: všechny komponenty uživatelské krajiny. Znamená --collect-executables.
-b a COMPONENTS. U dlouhé formy oddělte =
Příklady:
-g'mdm sds'
--valgrind-cores='mdm sds'
-
-t MIN, --minutes-before-event=MINShromažďujte protokoly produktů a jádra vygenerovaná až do
MINminut před referenčním časem. Výchozí: 15 -
-T MIN, --minutes-after-event=MINShromažďujte protokoly produktů a jádra vygenerovaná až do
MINminut 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 určené uživatelské prostředí
COMPONENTS. Výchozí: Všechny komponenty uživatelské půdy
-b a COMPONENTS. U dlouhé formy oddělte =
Příklady:
-X'mdm sds'
--collect-executables='mdm sds'
-
--keep-work-dirPo vytvoření sady se zachová vygenerovaný dočasný pracovní adresář (automaticky se vyčistí).
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 – output of ip -s addr - Výstupy příkazů produktu přecházejí do podadresáře komponenty.
mdm/Proscli,sdc/Prodrv_cfga tak dále.
Název příkazu (scli,drv_cfg, a tak dále) je odstraněna. Prvním smysluplným argumentem se stane název souboru. Soubory jsou přiřazeny jako příslušná přípona,.txt“.
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>/logsa tak dále
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 soubory protokolu produktu (nazývané také trasovací soubory, například) 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í položka 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 a 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ů se nejprve vztahuje na časové období a pak na 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á okamžikem poslední změny jeho předchůdce (
mtime) nebo epocha systému UNIX, pokud neexistuje žádný předchůdce; Končí ve vlastním souborumtime. Soubory výpisu jádra představují bod v čase v souborumtime. - 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
-ma nebo-kspecifikováno). Ze zbývajících souborů maximálněNUMjsou vybrány 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 třech 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.
- Skript
--skip-mdm-loginje zadána možnost.
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říklad 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.
Balíček lze streamovat ze vzdáleného hostitele pomocí --output-file=- a minimalizace využití místa na disku v hostiteli PowerFlex. Soubor balíčku je zapsán přímo na standardní výstup (stdout) při streamování; Není vytvořen na disku.
Nástroj před shromážděním dat 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 systémech souborů, 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í (také v 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
root(nebo uživatel s dostatečnými oprávněními ke čtení dílčích souborů, spouštění diagnostických příkazů a přístupu/proc,/sysa tak dále). - 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
Pouze jedna instance get_info.sh může běžet najednou. Nástroj vyhledá existující spuštěnou instanci pomocí pidof(1) a ukončí, pokud je nalezena instance.
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říklad nastavení generování jádra).
- Vyčistí dočasné adresáře.
- Ukončení 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