PowerFlex: PFMP_SUPPORT - Hulpprogramma voor het verzamelen van ondersteuningsbundels
Résumé: pfmp_support: verzamel diagnostische data van PowerFlex Manager en verpak deze in een supportbundel
Instructions
pfmp_support [OPTIES]
OMSCHRIJVING
pfmp_support is een diagnostisch hulpprogramma dat foutopsporingsinformatie verzamelt van een PowerFlex Manager- of een PowerFlex Manager Installer-host en deze archiveert in een gecomprimeerde bundel voor analyse door supportpersoneel.
Het hulpprogramma verzamelt gegevens uit meerdere bronnen, waaronder:
- Diagnostische data, configuratie en logboeken van Kubernetes
- Helm-release-informatie
- Docker- en containerruntimedata
- PowerFlex Manager installatielogboeken
- Besturingssysteemconfiguratie, logboeken en runtimestatus
- Hardware-inventaris
Bij het verzamelen van data van meerdere Kubernetes-clusterknooppunten, moet een standaardbundel (--skip-kubernetes-shared not specion) worden verzameld van ten minste één knooppunt, waarbij kubectl als helm beschikbaar zijn en toegang hebben tot het Kubernetes-controleniveau. Op volgende knooppunten --skip-kubernetes-shared kunnen worden gebruikt om de omvang van de verzamelde gegevens te verkleinen.
De resulterende bundel is één gecomprimeerd archief (standaard tar/gz) dat voor verdere analyse kan worden overgebracht naar PowerFlex-ondersteuning.
Er kan slechts één instantie van pfmp_support tegelijkertijd op een host worden uitgevoerd. Als er niet genoeg vrije ruimte is voor de uitvoer, wordt deze niet uitgevoerd (tenzij de ruimtecontrole expliciet wordt overgeslagen).
OPTIES
Algemene opties
-
-A DIR, --installer-root-path=DIR
Gebruik DIR als de basisdirectory van het PowerFlex Manager-installatieprogramma. Handig bij het verzamelen van PowerFlex installatiegegevens en de installatiecontainer (
atlantic_installer) wordt niet uitgevoerd. Standaard: automatisch gedetecteerd, of/var. -
-d OUT_DIR, --output-dir=OUT_DIR
Sla de resulterende bundel op in directory OUT_DIR. Standaard:
<WORK_DIR>/powerflex-pfmpsupport(zie --work-dir). -
-h, --help
Toon het Help-bericht en sluit af. In combinatie met --tech kunt u ook technische opties weergeven.
-
-J, --xz
Gebruik tar/xz-indeling voor de verzamelde bundel in plaats van de standaard tar/gz. Wordt genegeerd als
tar(1)biedt geen ondersteuning voor--use-compress-programofxz(1)is niet gevonden. -
-n NAMESPACE,--namespace=NAMESPACE
Verzamel aanvullende data van de applicatiespecifieke Kubernetes-namespace NAMESPACE. Standaard:
powerflex. -
-N, --skip-space-check
Sla verificatie van gratis schijfruimte over voordat u data verzamelt.
-
-P PATH, --collect-path=PATH
Verzamel het extra pad PATH. Alleen absolute paden worden geaccepteerd. Accepteert wildcards; Wildcards moeten worden geciteerd. Deze optie kan meerdere keren worden opgegeven om meerdere paden te verzamelen.
-
-q, --stil, --stil
Berichten onderdrukken op standaarduitvoer.
-
-s, --skip-kubernetes-shared
Sla het verzamelen van gedeelde (clusterbrede) Kubernetes-data over. Kubernetes-data per knooppunt en hostdata worden nog steeds verzameld. Handig voor verzamelingen met meerdere knooppunten om de grootte te verkleinen; Clusterdata moeten worden verzameld van ten minste één knooppunt.
-
-w WORK_DIR, --work-dir=WORK_DIR
Gebruik directory-WORK_DIR voor tijdelijke bestanden. Standaard:
/tmp. -
-x BESTAND,--output-bestand=BESTAND
Sla de verzamelde bundel op als bestand met de naam FILE. Het juiste achtervoegsel van de bestandsnaam (
.tgz,.zip, enz.) wordt automatisch toegevoegd. Als FILE-(streepje), schrijf de bundel naar standaarduitvoer (impliceert --stil). Wanneer de bundel naar de standaarduitvoer wordt geschreven, wordt er geen bundelbestand op de schijf gemaakt. Standaard:pfmpSupport. -
-z, --zip
Gebruik de zip-indeling voor de verzamelde bundel in plaats van de standaard tar/gz. Genegeerd als
zip(1)Wordt niet aangetroffen op het systeem. -
--overschrijven-uitvoer-bestand
Overschrijf het uitvoerbestand als het al bestaat. Wanneer een uitvoerbestand of -directory expliciet is gespecificeerd (via -x of -d), is het standaardgedrag om te weigeren te overschrijven; Deze optie heft dat op.
-
--Tech
Voeg technicusopties toe aan de uitvoer van het helpbericht.
Opties voor technici
De volgende opties zijn bedoeld voor gebruik door supporttechnici en worden alleen in het Help-bericht weergegeven wanneer --tech is opgegeven.
-
--keep-work-dir
Behoud de gegenereerde tijdelijke werkmap na het maken van de bundel (normaal gesproken automatisch opgeschoond).
-
--oude-pod-logboeken
Verzamel oudere Kubernetes-podlogboeken van lokale rsyslog-storage. Bij weglating wordt de huidige (
kubectl logs) en eerdere (kubectl logs --previous) worden er nog steeds containerlogboeken verzameld.
BUNDELSTRUCTUUR
De uitvoerbundel is één gecomprimeerd archief.
- De map op het hoogste niveau van de bundel is de hostnaam van het opgehaalde systeem.
- Algemene host-opdrachtuitvoer gaat naar een
server/Submap. Bestandsnaam is<command>+<arguments>+ achtervoegsel (.txtstandaard). Spaties vervangen door_, niet-alfanumerieke tekens verwijderd.
Voorbeeld:server/ip_-s_addr.txt - output of ip -s addr - Kubectl-, helm- en docker-opdrachtuitvoer gaat naar hun respectievelijke submappen. Ze zijn verder georganiseerd op reikwijdte,
<namespace>/<pod>/<container>, indien van toepassing.
Argumenten met betrekking tot de opdrachtnaam, het bereik en de uitvoerindeling worden verwijderd. Bestandsnaam is<subcommand>+<arguments>+ achtervoegsel (.txtstandaard). Spaties vervangen door_, niet-alfanumerieke tekens verwijderd.
De uitvoer van KUBECTL EXEC opdrachten wordt opgeslagen onderexec/van de submap van de pod.
Voorbeelden:kubectl/version.txt- output vankubectl versionkubectl/all-namespaces/get_pods.yaml-- Uitvoer vankubectl -o=yaml get --all-namespaces podskubectl/powerflex/asmui-7d6944dcb8-zqqtk/asmui/logs_--previous.txt- output vankubectl logs -n powerflex --container asmui --previous asmui-7d6944dcb8-zqqtkkubectl/powerflex/nats-server-box-6d685b4b7d-cf278/nats-box/exec/nats_stream_report.txt- output vankubectl exec -n powerflex --container nats-box nats-server-box-6d685b4b7d-cf278 -- nats stream reporthelm/powerflex/get_all_asmmanager.txt- output vanhelm get -n powerflex all asmmanagerdocker/ps_-a.txt- output vandocker ps -a
- Bestanden die uit pod-containers worden uitgepakt, worden in de map van de container geplaatst op het pad van het bestandssysteem in de container.
Voorbeeld:kubectl/powerflex/thin-deployer-5657659bc7-gzbq4/thin-deployer/opt/Dell/ASM/deployments/8aaa809298a9efe10198aa58c8874f35/deployment.log- kopie van/opt/Dell/ASM/deployments/8aaa809298a9efe10198aa58c8874f35/deployment.loggeëxtraheerd vanuit dethin-deployerrecipiënt van dethin-deployer-5657659bc7-gzbq4Pod - Hostbestandssystemen worden op hun bestandssysteempad geplaatst ten opzichte van de bundelroot.
Voorbeelden:etc/os-release - copy of /etc/os-releasevar/log/messages - copy of /var/log/messagesproc/cpuinfo - copy of /proc/cpuinfovar/lib/rancher/rke2/agent/logs/kubelet.log - copy of /var/lib/rancher/rke2/agent/logs/kubelet.log
- Verborgen bestanden (met voorvoegsel punt) worden "verborgen" door de voorlooppunt te verwijderen.
- Logboek voor uitvoering van hulpprogramma's,
pfmp_support.log, direct onder de <hostnaam>/root geplaatst.
Structuur van de bundelmapstructuur:
<hostname>/
|-- pfmp_support.log Utility execution log
|-- server/ General command output directory
| |-- ip_-s_addr.txt
| |-- uptime.txt
| |-- uname_-a.txt
| |-- ps_-elF.txt
| |-- dmesg_-T.txt
| +-- ... (one file per collected command)
|
|-- kubectl/ kubectl command output directory
| |-- version.txt Non-namespace-specific commands
| |-- ...
| |-- all-namespaces/ Cross-namespace commands
| | |-- get_pods.txt
| | |-- get_pods.yaml
| | +-- ...
| +-- <namespace>/ Per-namespace Kubernetes data
| +-- <pod>/ Per-pod data
| +-- <container>/ Per-container data
| |-- logs.txt Current container logs
| |-- exec/ Commands executed within container (if any)
| | +-- ...
| |-- <dir>/ Files extracted from container (if any)
| +-- ...
|-- helm/ helm command output directory
|-- docker/ docker command output directory
|
|-- etc/ Host files
| |-- os-release
| |-- sysconfig/
| |-- network/
| +-- ...
|-- var/
| |-- log/
| | |-- messages
| | +-- ...
| |-- lib/rancher/rke2/
| +-- ...
|-- proc/
| |-- cpuinfo
| |-- meminfo
| +-- ...
|-- sys/
|-- ...
|
|-- powerflex-pfmpsupport-extra/ Extra diagnostic data (if present)
+-- powerflex-pfmpsupport-backup/ Backed-up configuration files (if any)
SCHIJFRUIMTE
De benodigde schijfruimte voor tijdelijke bestanden en de resulterende bundel kan sterk variëren.
Het hulpprogramma probeert het tijdelijke ruimtegebruik tot een minimum te beperken; Het is beperkt tot opdrachtuitvoer en kopieën van het verzamelde virtuele bestandssysteem (/proc als /sys) bestanden.
Om het gebruik van schijfruimte op de PowerFlex Manager-host te minimaliseren, kan de bundel worden gestreamd vanaf een externe host met --output-file=-. Bij het streamen wordt het bundelbestand rechtstreeks naar de standaarduitvoer (stdout) geschreven; Het is niet gemaakt op schijf.
Voordat gegevens worden verzameld, schat het hulpprogramma de benodigde schijfruimte voor zowel de tijdelijke werkmap als de uitvoerbundel.
Als de geschatte benodigde ruimte groter is dan de beschikbare ruimte op het (de) relevante bestandssysteem(en), wordt het hulpprogramma beëindigd met een fout. Deze controle kan worden omzeild met --skip-space-check.
De werkmap en de uitvoermap kunnen zich op verschillende bestandssystemen bevinden; Elk wordt onafhankelijk gecontroleerd.
De geschatte benodigde ruimte wordt naar het logboekbestand van het hulpprogramma geschreven. pfmp_support.log.
AFSLUITSTATUS
| 0 | Met succes voltooid |
| 1 | Fout (ongeldige argumenten, onvoldoende ruimte, een andere instantie die al wordt uitgevoerd, fout bij het genereren van bundels, signaal betrapt, enz.) |
BESTANDEN
<WORK_DIR>/pfmp_support.log |
Uitvoeringslogboek (ook inbegrepen in de bundel) |
<WORK_DIR>/powerflex-pfmpsupport-tmp/ |
Tijdelijke werkmap (opgeschoond bij succes) |
/tmp/powerflex-pfmpsupport/pfmpSupport.tgz |
Standaardlocatie van de uitvoerbundel |
<WORK_DIR>/powerflex-pfmpsupport-extra/
/tmp/powerflex-pfmpsupport-extra/ |
Optionele extra diagnostische datadirectory's |
/tmp/powerflex-pfmpsupport-backup/ |
Tijdelijke back-ups van gewijzigde configuratiebestanden (automatisch gemaakt) |
MILIEU
Vereisten
- Het hulpprogramma moet worden uitgevoerd als root (of als een gebruiker met voldoende rechten om systeembestanden te lezen, diagnostische opdrachten uit te voeren, te communiceren met het Kubernetes-cluster en toegang te krijgen
/proc,/sys, enz.). - Standaard nutsvoorzieningen:
tar,gzip,stat,find,awk,sed,getopt(1)(verbeterd),nice. - Optionele:
zip(voor--zip),xz(voor--xz).
Concurrency
Er mag slechts één instantie van pfmp_support tegelijk worden uitgevoerd. Het hulpprogramma controleert op een bestaande actieve instantie via pidof(1) en eindigt als er een wordt gevonden.
Signaal afhandeling
De nutsvoorzieningen vallen INT, EXITen TERM signalen tijdens het verzamelen van gegevens. Na ontvangst van een signaal:
- Herstelt alle back-ups van de configuratiebestanden.
- Ruimt tijdelijke mappen op.
- Afsluiten met status 1.
Het uitvoeringslogboek blijft behouden en het pad wordt afgedrukt naar standaardfout.
VOORBEELDEN
Verzamel een standaard supportbundel:
pfmp_support
Verzamel bundels van meerdere knooppunten in een Kubernetes-cluster.
- Op één knooppunt met
kubectlalshelmtoegang tot en verzameling van alle Kubernetes-data:pfmp_support - Sla op volgende knooppunten gedeelde Kubernetes-data over:
pfmp_support --skip-kubernetes-shared
Een bundel streamen via een SSH-verbinding, zonder een bundelbestand te maken op de externe PowerFlex Manager-host:
ssh <host> 'pfmp_support --output-file=-' > pfmpSupport-<host>.tgz
Gebruik een andere werkmap om te voorkomen dat u vol raakt /tmp:
pfmp_support --work-dir=/var/tmp
Voeg aangepaste paden toe aan de bundel:
pfmp_support --collect-path=/opt/custom/app/logs --collect-path='/var/log/app*'