PowerFlex:PFMP_SUPPORT - サポート バンドル コレクション ユーティリティー
Résumé: pfmp_support - PowerFlex Managerの診断データを収集し、サポート バンドルにパックする
Instructions
pfmp_support [オプション]
説明
pfmp_supportは、PowerFlex ManagerまたはPowerFlex Managerインストーラー ホストからデバッグ情報を収集し、サポート担当者が分析できるように圧縮バンドルにアーカイブする診断ユーティリティーです。
このユーティリティは、次のような複数のソースからデータを収集します。
- Kubernetes診断データ、構成、ログ
- Helmリリース情報
- Dockerとコンテナのランタイム データ
- PowerFlex Managerインストーラー ログ
- オペレーティング システムの構成、ログ、ランタイム状態
- ハードウェア インベントリー
複数のKubernetesクラスター ノードからデータを収集する場合は、少なくとも1つのノードから標準バンドル(--skip-kubernetes-sharedが指定されていない)を収集する必要があります。 kubectl と helm が利用可能であり、Kubernetes コントロール プレーンにアクセスできます。後続のノード上 --skip-kubernetes-shared 収集されたデータのサイズを小さくするために使用できます。
結果として得られるバンドルは、さらなる分析のためにPowerFlexサポートに転送できる単一の圧縮アーカイブ(デフォルトではtar/gz)です。
ホスト上で一度に実行できるpfmp_supportインスタンスは1つだけです。出力に十分な空き領域がない場合、(領域チェックが明示的にスキップされない限り)実行が拒否されます。
オプション
一般オプション
-
-A DIR, --installer-root-path=DIR
PowerFlex Managerインストーラーのベース ディレクトリーとしてDIRを使用します。PowerFlexインストーラー データとインストーラー コンテナー(
atlantic_installer)が実行されていません。デフォルト:自動検出、または/varの詳細を確認してください。 -
-d OUT_DIR, --output-dir=OUT_DIR
生成されたバンドルをディレクトリー OUT_DIRの下に保存します。[Default]:
<WORK_DIR>/powerflex-pfmpsupport(--work-dir を参照)。 -
-h, --help
ヘルプ メッセージを表示して終了します。--tech と組み合わせると、技術者のオプションも表示されます。
-
-J, --xz
収集されたバンドルには、デフォルトのtar/gzではなくtar/xz形式を使用します。システムが
tar(1)サポートなし--use-compress-programまたはxz(1)が見つかりません。 -
-n NAMESPACE,--namespace=名前空間
アプリケーション固有のKubernetesネームスペースNAMESPACEから追加データを収集します。[Default]:
powerflexの詳細を確認してください。 -
-N、--skip-space-check
データ コレクションの前に空きディスク容量の検証をスキップします。
-
-P PATH,--collect-path=PATH
追加のパスPATHを収集します。絶対パスのみが受け入れられます。ワイルドカードを受け入れます。ワイルドカードは引用符で囲む必要があります。このオプションを複数回指定すると、複数のパスを収集できます。
-
-q、--quiet、--silent
標準出力でメッセージを抑止します。
-
-s, --skip-kubernetes-shared
共有(クラスター全体)のKubernetesデータの収集をスキップします。ノードごとのKubernetesデータとホスト データは引き続き収集されます。マルチノードコレクションでサイズを縮小するのに役立ちます。クラスター データは、少なくとも1つのノードから収集する必要があります。
-
-w WORK_DIR, --work-dir=WORK_DIR
一時ファイル用にディレクトリWORK_DIRを使用します。[Default]:
/tmpの詳細を確認してください。 -
-x FILE,--output-file=FILE
収集したバンドルをFILEという名前のファイルとして保存します。適切なファイル名の接尾辞 (
.tgz、.zipなど)が自動的に追加されます。FILEが-(ダッシュ)で、バンドルを標準出力に書き込みます(--quietを意味します)。バンドルが標準出力に書き込まれると、ディスク上にバンドル ファイルは作成されません。[Default]:pfmpSupportの詳細を確認してください。 -
-z, --zip
収集されたバンドルには、デフォルトのtar/gzではなくzip形式を使用します。次の場合は無視されます
zip(1)がシステムで見つかりません。 -
--overwrite-出力ファイル
出力ファイルがすでに存在する場合は、上書きします。出力ファイルまたはディレクトリが (-x または -d によって) 明示的に指定されている場合、デフォルトの動作は上書きを拒否することです。このオプションはこれをオーバーライドします。
-
--技術
ヘルプ メッセージ出力に技術者オプションを含めます。
技術者のオプション
次のオプションはサポート技術者が使用することを目的としており、--techが指定されている場合にのみヘルプ メッセージに表示されます。
-
--keep-work-dir を実行します。
バンドル作成後に生成された一時作業ディレクトリーを保持します(通常は自動的にクリーンアップされます)。
-
--old-pod-logs
ローカルのrsyslogストレージから古いKubernetesポッド ログを収集します。省略すると、現在の (
kubectl logs)と前(kubectl logs --previous)コンテナ ログは引き続き収集されます。
バンドル構造
出力バンドルは、単一の圧縮アーカイブです。
- バンドルの最上位ディレクトリーは、収集されたシステムのホスト名です。
- 一般的なホスト コマンド出力は、
server/サブディレクトリ。ファイル名は<command>+<arguments>+ 接尾辞 (.txtデフォルト)。スペースの置換後の_、英数字以外の文字は取り除かれます。
例:server/ip_-s_addr.txt - output of ip -s addr - kubectl、helm、dockerコマンドの出力は、それぞれのサブディレクトリーに移動します。それらはさらにスコープ別に整理されています。
<namespace>/<pod>/<container>(該当する場合)
コマンド名、スコープ、出力形式に関連する引数は削除されます。ファイル名は<subcommand>+<arguments>+ 接尾辞 (.txtデフォルト)。スペースの置換後の_、英数字以外の文字は取り除かれます。
kubectl execコマンドの出力は、次の場所に保存されます。exec/ポッドのサブディレクトリにあります
例:kubectl/version.txt- 出力kubectl versionkubectl/all-namespaces/get_pods.yaml-- 出力kubectl -o=yaml get --all-namespaces podskubectl/powerflex/asmui-7d6944dcb8-zqqtk/asmui/logs_--previous.txt- 出力kubectl logs -n powerflex --container asmui --previous asmui-7d6944dcb8-zqqtkkubectl/powerflex/nats-server-box-6d685b4b7d-cf278/nats-box/exec/nats_stream_report.txt- 出力kubectl exec -n powerflex --container nats-box nats-server-box-6d685b4b7d-cf278 -- nats stream reporthelm/powerflex/get_all_asmmanager.txt- 出力helm get -n powerflex all asmmanagerdocker/ps_-a.txt- 出力docker ps -a
- ポッド コンテナから抽出されたファイルは、コンテナ内のファイルシステム パスにあるコンテナのディレクトリーの下に配置されます。
例:kubectl/powerflex/thin-deployer-5657659bc7-gzbq4/thin-deployer/opt/Dell/ASM/deployments/8aaa809298a9efe10198aa58c8874f35/deployment.log- のコピー/opt/Dell/ASM/deployments/8aaa809298a9efe10198aa58c8874f35/deployment.log内から抽出thin-deployerコンテナのthin-deployer-5657659bc7-gzbq4ポッド - ホスト ファイル システム ファイルは、バンドル ルートに対する相対ファイル システム パスに配置されます。
例: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
- 隠しファイル(ドット接頭辞付き)は、先頭のドットを削除することで「再表示」されます。
- ユーティリティ実行ログ、
pfmp_support.logは、 <hostname>/ root の直下に配置されます。
バンドル ディレクトリー ツリー構造:
<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)
ディスク領域
一時ファイルと結果として生成されるバンドルに必要なディスク領域は、大きく異なる場合があります。
このユーティリティーは、一時スペースの使用量を最小限に抑えようとします。これは、コマンド出力と収集された仮想ファイル システムのコピー(/proc と /sys)ファイルです。
PowerFlex Managerホストのディスク領域の使用量を最小限に抑えるために、--output-file=-を使用して、リモート ホストからバンドルをストリーミングできます。ストリーミング時、バンドルファイルは標準出力 (stdout) に直接書き込まれます。ディスク上には作成されません。
データを収集する前に、ユーティリティーは一時作業ディレクトリーと出力バンドルの両方に必要なディスク領域を見積もります。
推定される必要な領域が、関連するファイルシステム上の使用可能な領域を超えると、ユーティリティはエラーで終了します。このチェックは --skip-space-check でバイパスできます。
作業ディレクトリーと出力ディレクトリーは、異なるファイルシステム上にあってもかまいません。それぞれが個別にチェックされます。
推定される領域要件は、ユーティリティのログファイルに書き込まれます。 pfmp_support.logの詳細を確認してください。
終了状況
| 0 | 正常に完了 |
| 1 | エラー(無効な引数、十分なスペースがない、別のインスタンスがすでに実行されている、バンドル生成の失敗、シグナルのキャッチなど) |
ファイル
<WORK_DIR>/pfmp_support.log |
実行ログ(バンドルにも含まれる) |
<WORK_DIR>/powerflex-pfmpsupport-tmp/ |
一時作業ディレクトリー(成功するとクリーンアップされます) |
/tmp/powerflex-pfmpsupport/pfmpSupport.tgz |
デフォルトの出力バンドルの場所 |
<WORK_DIR>/powerflex-pfmpsupport-extra/
/tmp/powerflex-pfmpsupport-extra/ |
オプションの追加診断データ ディレクトリー |
/tmp/powerflex-pfmpsupport-backup/ |
変更された構成ファイルの一時バックアップ(自動作成) |
環境
必要条件
- このユーティリティーは、root(またはシステム ファイルの読み取り、診断コマンドの実行、Kubernetesクラスターの操作、アクセスを行うのに十分な権限を持つユーザー)として実行する必要があります。
/proc、/sysなど)。 - 標準ユーティリティー:
tar、gzip、stat、find、awk、sed、getopt(1)(拡張)、niceの詳細を確認してください。 - オプション:
zip(--zip),xz(--xz)を提供する必要があります。
並行 処理
一度に実行できるpfmp_supportのインスタンスは1つだけです。このユーティリティは、次の方法で既存の実行中のインスタンスをチェックします。 pidof(1) 見つかった場合は終了します。
信号処理
ユーティリティー トラップ INT、 EXITと TERM データ収集中の信号。信号を受信すると、次のようになります。
- バックアップされた構成ファイルをリストアします。
- 一時ディレクトリーをクリーンアップします。
- ステータス 1 で終了します。
実行ログは保存され、そのパスは標準エラー出力されます。
例
標準サポート バンドルを収集します。
pfmp_support
Kubernetesクラスター内の複数のノードからバンドルを収集します。
- 1つのノードで
kubectlとhelmアクセスし、すべてのKubernetesデータを収集します。pfmp_support - 後続のノードでは、共有Kubernetesデータをスキップします。
pfmp_support --skip-kubernetes-shared
リモートのPowerFlex Managerホストにバンドル ファイルを作成せずに、SSH接続を介してバンドルをストリーミングします。
ssh <host> 'pfmp_support --output-file=-' > pfmpSupport-<host>.tgz
別の作業ディレクトリーを使用して、いっぱいにならないようにします /tmpファイルに置き換えます。
pfmp_support --work-dir=/var/tmp
バンドルにカスタムパスを含めます。
pfmp_support --collect-path=/opt/custom/app/logs --collect-path='/var/log/app*'