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
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-programouxz(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 (.txtpor 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 (.txtpor padrão). Espaços substituídos por_, caracteres não alfanuméricos descartados.
As saídas do comando kubectl exec são armazenadas emexec/do subdiretório do pod.
Exemplos:kubectl/version.txt- saída dekubectl versionkubectl/all-namespaces/get_pods.yaml-- saída dekubectl -o=yaml get --all-namespaces podskubectl/powerflex/asmui-7d6944dcb8-zqqtk/asmui/logs_--previous.txt- saída dekubectl logs -n powerflex --container asmui --previous asmui-7d6944dcb8-zqqtkkubectl/powerflex/nats-server-box-6d685b4b7d-cf278/nats-box/exec/nats_stream_report.txt- saída dekubectl exec -n powerflex --container nats-box nats-server-box-6d685b4b7d-cf278 -- nats stream reporthelm/powerflex/get_all_asmmanager.txt- saída dehelm get -n powerflex all asmmanagerdocker/ps_-a.txt- saída dedocker 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.logextraído de dentro dothin-deployerrecipiente dothin-deployer-5657659bc7-gzbq4Pod - 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-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
- 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:
tar,gzip,stat,find,awk,sed,getopt(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 INT, EXITe TERM durante a coleta de dados. Ao receber um sinal, ele:
- Restaura todos os arquivos de configuração de backup.
- Limpeza de diretórios temporários.
- 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
kubectlehelmacesse, 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*'