PowerFlex: PFMP_SUPPORT – Utilitário de coleta do pacote de suporte

Résumé: pfmp_support - coletar dados de diagnóstico do PowerFlex Manager e empacotá-los em um pacote de suporte

Cet article concerne Cet article ne concerne pas Cet article n’est associé à aucun produit spécifique. Toutes les versions du produit ne sont pas identifiées dans cet article.

Instructions

pfmp_support [OPÇÕES]

 

DESCRIÇÃO

pfmp_support é um utilitário de diagnóstico que coleta informações de depuração de um host instalador do PowerFlex Manager ou do PowerFlex Manager e as arquiva em um pacote compactado para análise pela equipe de suporte.

O utilitário coleta dados de várias fontes, incluindo:

  • Dados de diagnóstico, configuração e logs do Kubernetes
  • Informações sobre a versão do Helm
  • Dados de tempo de execução do Docker e do contêiner
  • Registros do instalador do PowerFlex Manager
  • Configuração do sistema operacional, registros e estado de tempo de execução
  • Inventário de hardware

Ao coletar dados de vários nós de cluster do Kubernetes, um pacote padrão (--skip-kubernetes-shared não especificado) deve ser coletado de pelo menos um nó, em que kubectl e helm estão disponíveis e com acesso ao plano de controle do Kubernetes. Nos nós subsequentes --skip-kubernetes-shared pode ser usado para reduzir o tamanho dos dados coletados.

O pacote resultante é um único arquivamento compactado (tar/gz por padrão) que pode ser transferido para o suporte do PowerFlex para análise adicional.

Apenas uma instância do pfmp_support pode ser executada em um host por vez. Se não houver espaço livre suficiente para sua saída, ele se recusará a executar (a menos que a verificação de espaço seja explicitamente ignorada).

 

OPÇÕES

Opções gerais

  • -A DIR, --installer-root-path=DIR

    Use DIR como o diretório base do instalador do PowerFlex Manager. Útil ao coletar dados do instalador do PowerFlex e o contêiner do instalador (atlantic_installer) não está em execução. Padrão: detectado automaticamente ou /var.

  • -d OUT_DIR, --output-dir=OUT_DIR

    Armazene o pacote resultante no diretório OUT_DIR. Default: <WORK_DIR>/powerflex-pfmpsupport (consulte --work-dir).

  • -h, --help

    Exiba a mensagem de ajuda e saia. Quando combinado com --tech, exibe também opções de técnico.

  • -J, --xz

    Use o formato tar/xz para o pacote coletado em vez do tar/gz padrão. Ignorado se a tar(1) não suporta --use-compress-program ou xz(1) não foi encontrado.

  • -n NAMESPACE, --namespace=NAMESPACE

    Colete dados adicionais do namespace do Kubernetes específico do aplicativo NAMESPACE. Default: powerflex.

  • -N, --skip-space-check

    Ignore a verificação de espaço livre em disco antes da coleta de dados.

  • -P PATH,--collect-path=PATH

    Colete o caminho adicional PATH. Somente caminhos absolutos são aceitos. Aceita curingas; Os caracteres curinga devem ser cotados. Essa opção pode ser especificada várias vezes para coletar vários caminhos.

  • -q, --quiet, --silent

    Suprima mensagens na saída padrão.

  • -s, --skip-kubernetes-shared

    Ignorar a coleta de dados compartilhados (em todo o cluster) do Kubernetes. Os dados do host e os dados do Kubernetes por nó ainda são coletados. Útil para coleções de vários nós para reduzir o tamanho; Os dados do cluster devem ser coletados de pelo menos um nó.

  • -wWORK_DIR, --dir-work=WORK_DIR 

    Use o WORK_DIR de diretório para arquivos temporários. Default: /tmp.

  • -x FILE, --output-file=FILE

    Armazene o pacote coletado como um arquivo chamado FILE. O sufixo do nome de arquivo apropriado (.tgz.zip, etc.) é adicionado automaticamente. Se FILE for - (traço), grave o pacote na saída padrão (implica --quiet). Quando o pacote é gravado na saída padrão, nenhum arquivo de pacote é criado no disco. Default: pfmpSupport.

  • -z, --zip

    Use o formato zip para o pacote coletado em vez do tar/gz padrão. Ignorado se zip(1) não encontrado no sistema.

  • --overwrite-output-file

    Substitua o arquivo de saída, se ele já existir. Quando um arquivo ou diretório de saída é especificado explicitamente (via -x ou -d), o comportamento padrão é recusar a substituição; essa opção substitui isso.

  • --Tecnologia

    Inclua opções de técnico na saída da mensagem de ajuda.

Opções de técnico

As opções a seguir são destinadas ao uso por técnicos de suporte e são mostradas na mensagem de ajuda somente quando --tech é especificado.

  • --manter-trabalhar-dir

    Mantenha o diretório de trabalho temporário gerado após a criação do pacote (normalmente limpo automaticamente).

  • --old-pod-logs

    Colete logs de pod mais antigos do Kubernetes do armazenamento rsyslog local. Quando omitida, a corrente (kubectl logs) e anterior (kubectl logs --previous) os logs do contêiner ainda são coletados.

 

ESTRUTURA DO PACOTE

O pacote de saída é um único arquivo compactado.

  • O diretório de nível superior do pacote é o nome do host do sistema coletado.
  • As saídas do comando geral do host vão para um server/ Subdiretório. O nome do arquivo é <command> + <arguments> + sufixo (.txt por padrão). Espaços substituídos por _, caracteres não alfanuméricos descartados.
    Exemplo: 
    server/ip_-s_addr.txt - output of ip -s addr
  • As saídas dos comandos kubectl, helm e docker vão para seus respectivos subdiretórios. Eles são organizados ainda por escopo, <namespace>/<pod>/<container>, quando aplicável.
    Os argumentos relacionados ao nome do comando, escopo e formato de saída são fracionados. O nome do arquivo é <subcommand> + <arguments> + sufixo (.txt por padrão). Espaços substituídos por _, caracteres não alfanuméricos descartados.
    As saídas do comando kubectl exec são armazenadas em exec/ do subdiretório do pod.
    Exemplos:
    • kubectl/version.txt - saída de kubectl version
    • kubectl/all-namespaces/get_pods.yaml -- saída de kubectl -o=yaml get --all-namespaces pods
    • kubectl/powerflex/asmui-7d6944dcb8-zqqtk/asmui/logs_--previous.txt - saída de kubectl logs -n powerflex --container asmui --previous asmui-7d6944dcb8-zqqtk
    • kubectl/powerflex/nats-server-box-6d685b4b7d-cf278/nats-box/exec/nats_stream_report.txt - saída de kubectl exec -n powerflex --container nats-box nats-server-box-6d685b4b7d-cf278 -- nats stream report
    • helm/powerflex/get_all_asmmanager.txt - saída de helm get -n powerflex all asmmanager
    • docker/ps_-a.txt - saída de docker ps -a
  • Os arquivos extraídos dos contêineres de pod são colocados no diretório do contêiner no caminho do sistema de arquivos no contêiner.
    Exemplo: kubectl/powerflex/thin-deployer-5657659bc7-gzbq4/thin-deployer/opt/Dell/ASM/deployments/8aaa809298a9efe10198aa58c8874f35/deployment.log - cópia de /opt/Dell/ASM/deployments/8aaa809298a9efe10198aa58c8874f35/deployment.log extraído de dentro do thin-deployer recipiente do thin-deployer-5657659bc7-gzbq4 Pod
  • Os arquivos do file system do host são colocados no caminho do file system em relação à raiz do pacote.
    Exemplos:
    • etc/os-release - copy of /etc/os-release
    • var/log/messages - copy of /var/log/messages
    • proc/cpuinfo - copy of /proc/cpuinfo
    • var/lib/rancher/rke2/agent/logs/kubelet.log - copy of /var/lib/rancher/rke2/agent/logs/kubelet.log
  • Os arquivos ocultos (prefixados por ponto) são "desocultos" removendo o ponto inicial.
  • Registro de execução do utilitário, pfmp_support.log, colocado diretamente sob o <hostname>/ root.

Estrutura de árvore de diretórios do pacote:

<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)

ESPAÇO EM DISCO

Os requisitos de espaço em disco para arquivos temporários e o pacote resultante podem variar consideravelmente.

O utilitário tenta minimizar o uso temporário de espaço; Ele é limitado a saídas de comando e cópias do file system virtual coletado (/proc e /sys) arquivos.

Para minimizar o uso de espaço em disco no host do PowerFlex Manager, o pacote pode ser transmitido de um host remoto com --output-file=-. Durante o streaming, o arquivo de pacote é gravado diretamente na saída padrão (stdout); Ele não é criado no disco.

Antes de coletar dados, o utilitário estima o espaço em disco necessário para o diretório de trabalho temporário e o pacote de saída.

Se o espaço necessário estimado exceder o espaço disponível no(s) file system(s) relevante(s), o utilitário será encerrado com um erro. Essa verificação pode ser ignorada com --skip-space-check.

O diretório de trabalho e o diretório de saída podem residir em diferentes sistemas de arquivos; Cada um é verificado de forma independente.

Os requisitos de espaço estimados são gravados no arquivo de log do utilitário, pfmp_support.log.

STATUS DE SAÍDA

0 Conclusão bem-sucedida
1 Erro (argumentos inválidos, espaço insuficiente, outra instância já em execução, falha de geração do pacote, sinal detectado etc.)

ARQUIVOS

<WORK_DIR>/pfmp_support.log Log de execução (também incluído no pacote)
<WORK_DIR>/powerflex-pfmpsupport-tmp/ Diretório de trabalho temporário (limpo em caso de sucesso)
/tmp/powerflex-pfmpsupport/pfmpSupport.tgz Local padrão do pacote de saída
<WORK_DIR>/powerflex-pfmpsupport-extra/
/tmp/powerflex-pfmpsupport-extra/
Diretórios de dados de diagnóstico adicionais opcionais
/tmp/powerflex-pfmpsupport-backup/ Backups temporários de arquivos de configuração modificados (criados automaticamente)

AMBIENTE

Pré-requisitos

  • O utilitário deve ser executado como root (ou um usuário com privilégios suficientes para ler arquivos do sistema, executar comandos de diagnóstico, interagir com o cluster do Kubernetes e acessar /proc/sys, etc.).
  • Utilitários padrão: targzipstatfindawksedgetopt(1) (reforçado), nice.
  • Opcional: zip (para --zip), xz (para --xz).

Simultaneidade

Apenas uma instância do pfmp_support pode ser executada por vez. O utilitário verifica se há uma instância em execução existente por meio de pidof(1) e termina se um for encontrado.

Tratamento de sinais

As armadilhas do utilitário INTEXITTERM durante a coleta de dados. Ao receber um sinal, ele:

  1. Restaura todos os arquivos de configuração de backup.
  2. Limpeza de diretórios temporários.
  3. Saídas com status 1.

O log de execução é preservado e seu caminho é impresso com o erro padrão.

 

EXEMPLOS

Colete um pacote de suporte padrão:

pfmp_support

Colete pacotes de vários nós em um cluster do Kubernetes.

  • Em um nó com kubectl e helm acesse, colete todos os dados do Kubernetes:
    pfmp_support
    
    
  • Nos nós subsequentes, ignore os dados compartilhados do Kubernetes:
    pfmp_support --skip-kubernetes-shared
    
    

Faça streaming de um pacote por meio de uma conexão SSH, sem criar um arquivo de pacote no host remoto do PowerFlex Manager:

ssh <host> 'pfmp_support --output-file=-' > pfmpSupport-<host>.tgz

Use um diretório de trabalho diferente para evitar o enchimento /tmp:

pfmp_support --work-dir=/var/tmp

Inclua caminhos personalizados no pacote:

pfmp_support --collect-path=/opt/custom/app/logs --collect-path='/var/log/app*'

Produits concernés

PowerFlex rack, ScaleIO
Propriétés de l’article
Numéro d’article: 000455318
Type d’article: How To
Dernière modification: 21 avr. 2026
Version:  1
Trouvez des réponses à vos questions auprès d’autres utilisateurs Dell
Services de support
Vérifiez si votre appareil est couvert par les services de support.