PowerFlex: GET_INFO – nástroj pro balíček podpory
Summary: Nástroj get_info.sh shromažďuje diagnostické informace z hostitele PowerFlex a vytváří komprimovaný balíček 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). Archivuje shromážděná data 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í)
- Statistika shromažďování diagnostických dat ("diag_coll")
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, --all
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
Analýza dat 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" území uživatele. Výchozí (když je "COMPONENTS" vynecháno): Všechny komponenty uživatelské půdyPoznámka: Mezi "-b" a "COMPONENTS" nesmí být mezera. Dlouhou formu oddělte znakem =Příklad
-b'mdm sds'
--collect-cores='mdm sds'
-
-d OUT_DIR,--output-dir=OUT_DIR
Uložte výsledný balíček 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 "--tech" zobrazí také možnosti technika. -
-J,--xz
Pro shromážděný balíček použijte formát "tar/xz" namísto výchozího formátu "tar/gz". Ignoruje se, pokud systémový "tar(1)" nepodporuje "--use-compress-program" nebo "xz(1)" není nalezen. -
-k NUM,--max-cores=NUM
Shromážděte až "NUM" soubory jádra z každé komponenty. Výchozí: Všechny soubory jádra, implikuje "--collect-cores" -
-l,--light
Vygenerujte 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=NUM
Shromážděte až "NUM" trasovacích souborů PowerFlex z každé komponenty. Výchozí: Všechny soubory -
-N,--skip-space-check
Přeskočí ověření volného místa na disku před sběrem dat. -
-P PATH,--collect-path=PATH
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 adresář "WORK_DIR". Výchozí hodnota: /tmp. -
-x FILE,--output-file=FILE
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 "FILE" "-" (pomlčka), zapište balíček 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,--zip
Pro shromážděný balíček použijte formát "zip" namísto výchozího formátu "tar/gz". Ignoruje se, pokud "zip(1)" není v systému nalezen. -
--mdm-port=PORT
Připojte se k 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
Příkazu SCLI "--login" jsou předány následující možnosti. Jejich chování a výchozí hodnoty se řídí SCLI.
-
-n,--use-nonsecure-communication
Připojte se ke službě MDM v nezabezpečeném režimu. -
-p PASSWORD,--password=PASSWORD
Pro přihlášení do PowerFlex MDM použijte "PASSWORD". Výchozí: Výchozí chování SCLI -
-u USERNAME,--username=USERNAME
Pro přihlášení do PowerFlex MDM použijte "USERNAME". Výchozí: Výchozí chování SCLI -
--ldap-authentication
Přihlaste se do PowerFlex MDM pomocí ověřování založeného na protokolu LDAP. -
--management-system-ip=ADDRESS
Pro přihlášení do systému PowerFlex se připojte k "SSO/M&O" na adrese "ADDRESS". Výchozí: Výchozí chování SCLI -
--p12-password=PASSWORD
Zašifrujte přihlašovací soubor "PKCS#12" systému PowerFlex pomocí "PASSWORD". Výchozí: Výchozí chování SCLI -
--p12-path=FILE
Uložte přihlašovací soubor "PKCS#12" do systému PowerFlex jako "FILE". Výchozí: Výchozí chování SCLI
Možnosti technika
Následující možnosti jsou určeny pro techniky podpory a jsou zobrazeny ve zprávě nápovědy pouze v případě, že je zadán "--tech".
-
-c[COMPONENTS],--generate-cores[=COMPONENTS]
Vygenerujte soubory jádra (pomocí "gcore(1)") pro běžící procesy seznamu "KOMPONENT" oddělených mezerami. Výchozí: všechny komponenty user-land, implikuje "--collect-executables" a vyžaduje "gdb" a "gcore".Poznámka: Mezi "-c" a "COMPONENTS" nesmí být mezera. Dlouhou formu oddělte znakem "=".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á libovolný formát srozumitelný pomocí "date(1)". Implikuje "--collect-cores". -g[COMPONENTS],--valgrind-cores[=COMPONENTS]
Shromážděte výpisy jádra "valgrind" pro zadané "COMPONENTS" území uživatele. Výchozí: všechny komponenty uživatelské krajiny. Implikuje "--collect-executables".Poznámka: Mezi "-b" a "COMPONENTS" nesmí být mezera. Dlouhou formu oddělte znakem "="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 "MIN" minut před referenčním časem. Výchozí hodnota: 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í hodnota: 5 -
-X[COMPONENTS],--collect-executables[=COMPONENTS]
Shromážděte spustitelné soubory komponent a jejich sdílené knihovny pro zadanou zemi uživatele "COMPONENTS". Výchozí: Všechny komponenty uživatelské krajinyPoznámka: Mezi "-b" a "COMPONENTS" nesmí být mezera. Dlouhou formu oddělte znakem "="Příklady:
-X'mdm sds' --collect-executables='mdm sds'
-
--keep-work-dir
Po 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ů směřují do podadresáře
"server/".Název souboru je "<příkaz> + <argumenty> + přípona (ve výchozím nastavení .txt). " Mezery nahrazeny znakem "_", nealfanumerické znaky jsou odstraněny
Příklad:server/ip_-s_addr.txt- výstup "ip -s addr" - Výstupy příkazů produktu přecházejí do podadresáře komponenty. "mdm/" pro "scli", "sdc/" pro "drv_cfg" atd.
Název příkazu ("scli", "drv_cfg" atd.) je odstraněn. Prvním smysluplným argumentem se stane název souboru. Soubory jsou ve výchozím nastavení přiřazeny jako příslušná přípona ".txt".
Příklady:mdm/query_cluster.txt- výstup příkazu "scli --query_cluster"mdm/tgt_dump.txt- výstup příkazu "scli --debug_action --tgt_dump"sdc/query_mdms.txt- výstup příkazu "drv_cfg --query_mdms"sds/sdbg.txt- výstup SDBG "dumpallscreens" pro SDS
- Soubory komponent produktu (na rozdíl od výstupů příkazů), "<component>/cfg", "<component>/logs" atd
. Zkopírováno z adresáře komponenty s odstraněnou předponou.
Příklady:mdm/cfg/conf.txt- Kopie příkazu "/opt/emc/scaleio/mdm/cfg/conf.txt"sds/logs/trc.0Kopie příkazu "/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 souboru "/etc/os-release"var/log/messages- kopie souboru "/var/log/messages"proc/cpuinfo- Kopie příkazu "/proc/cpuinfo"
- Soubory kolektoru diagnostiky (diag_coll) jsou zkopírovány s odstraněnou předponou "/opt", čímž se zachová vnitřní struktura.
Příklad:diag_coll/logs/sar.0- kopie příkazu "/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 jsou soubory protokolu produktu (označované také jako soubory trasování, například "trc.0", "trc.1", "exp.0") a soubory výpisu jádra vybrány pro zahrnutí do shromážděné sady. 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í "-E/--event-time" nebo "-C/--reference-core-file".
Pokud není zadáno ani "--event-time" ani "--reference-core-file", neprovede se žádné filtrování časového intervalu: referenční čas je ve výchozím nastavení aktuální čas a používá se pouze pro řazení na základě blízkosti, pokud platí limit počtu ("-m" nebo "-k") (viz Limity počtu níže).
Pokud se zobrazí "-E" i "-C", projeví se poslední položka v příkazovém řádku.
Časové okno
Když je nastaven referenční čas (pomocí "--event-time" nebo "--reference-core-file"), vytvoří se kolem něj č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" shromažďuje soubory pokrývající období 14:20:00 až 14:33:00.
Hodnoty "--minutes-before-event" a "--minutes-after-event" jsou ignorovány, pokud není zadán parametr "--event-time" ani "--reference-core-file".
Limity
počtuLimit počtu souborů lze nastavit pomocí "-m/--max-traces" a "-k/--max-cores" pro 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" jsou kandidáty všechny soubory (bez časového intervalu) 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á v čase poslední změny předchůdce ("mtime") nebo v epoše systému UNIX, kdy žádný předchůdce neexistuje; Končí na vlastním "mtime" souboru. Soubory výpisu jádra představují bod v čase "mtime" souboru.
- Použijte časový interval (pokud je zadáno "-E" nebo "-C"). 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žije limit počtu (pokud je zadáno "-m" nebo "-k"). Mezi zbývajícími soubory 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í do MDM jsou předány příkazu 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.
- Zadá se 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í.
- Příkaz SCLI "--login" vrátí chybu (například nesprávné přihlašovací údaje).
MÍSTO NA 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ých souborů systému souborů "/proc" a "/sys").
Balíček lze streamovat ze vzdáleného hostitele pomocí příkazu "--output-file=-", aby se minimalizovalo využití místa na disku v hostiteli PowerFlex. Soubor balíčku se při streamování zapisuje přímo do standardního výstupu ("stdout"); 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 příkazem "--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 zapíšou do souboru protokolu "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 je nutné spustit jako uživatel "root" (nebo uživatel s dostatečnými oprávněními ke čtení dílčích souborů, diagnostickým příkazům a přístupu k adresářům "/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 zkontroluje existující spuštěnou instanci pomocí "pidof(1)" a ukončí se, pokud je instance nalezena.
Manipulace se signálem
Nástroj během sběru dat zachytí signály "INT", "EXIT" a "TERM". 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