PowerFlex:GET_INFO - サポート バンドル収集ユーティリティー
Résumé: get_info.sh - PowerFlexホストから診断情報を収集し、サポート バンドルにパックします。
Instructions
get_info.sh [オプション]
説明
get_info.sh は、PowerFlex(旧ScaleIO)ホストからデバッグ情報を収集し、サポート担当者が分析できるように圧縮バンドルにアーカイブする診断ユーティリティーです。
このユーティリティは、次のような複数のソースからデータを収集します。
- PowerFlexコンポーネントのログ、構成、トレース ファイル
- MDM/SCLIクエリー出力と内部デバッグ ダンプ
- PowerFlexコンポーネントの内部診断
- オペレーティング システムの構成、ログ、ランタイム状態
- ハードウェア インベントリー(ストレージ コントローラー、ネットワーク デバイス、NVMe、NVDIMMなど)。
- コア ダンプ(既存およびオプションでオンデマンドで生成)
- 診断データ コレクター (
diag_coll)統計
結果として得られるバンドルは、さらなる分析のためにPowerFlexサポートに転送できる単一の圧縮アーカイブ(デフォルトではtar/gz)です。
のインスタンスは1つだけです get_info.sh 任意の時点でホスト上で実行できます。出力に十分な空き領域がない場合、(領域チェックが明示的にスキップされない限り)実行を拒否します。
オプション
一般オプション
-
-a, --allすべてのデータを収集します。これは、
--mdm-repository、--collect-cores、--max-cores=2、--valgrind-coresと--analyse-diag-coll. -
-A, --analyse-diag-coll診断データ コレクターの分析 (
diag coll) データ -
-b[COMPONENTS], --collect-cores[=COMPONENTS]スペースで区切られたユーザーランドのリスト用に既存のコア ダンプを収集します
COMPONENTSの詳細を確認してください。デフォルト(COMPONENTSは省略): すべてのユーザーランド コンポーネント
-b と COMPONENTS.長い形式の場合は、 =
例
-b'mdm sds'
--collect-cores='mdm sds'
-
-d OUT_DIR, --output-dir=OUT_DIR生成されたバンドルをディレクトリーに格納します。
OUT_DIR. Default: <WORK_DIR>/scaleio-getinfo(--work-dir). -
-f, --skip-mdm-loginPowerFlex MDMログイン認証情報のクエリーをスキップします。ユーザーがすでに手動でログインしている場合に便利です。
-
-h, --helpヘルプ メッセージを表示して終了します。以下と組み合わせた場合
--techには、技術者オプションも表示されます。 -
-J, --xzリアルタイム イベントを監視するには、
tar/xzデフォルトではなく、収集されたバンドルの形式tar/gz.システムがtar(1)サポートなし--use-compress-programまたはxz(1)が見つかりません。 -
-k NUM, --max-cores=NUM最大収集
NUM各コンポーネントのコア ファイル。[Default]:すべてのコア ファイルは、以下を意味します--collect-cores -
-l, --lightライトバンドルを生成します。最新世代の番号付きログ ファイルのみが収集され、コアの収集時にコンポーネントの実行可能ファイルまたはライブラリは含まれません。このオプションを使用するとサポート性が低下するため、使用は推奨されません。
-
-m NUM, --max-traces=NUM最大収集
NUM各コンポーネントからのPowerFlexトレース ファイル。[Default]:すべてのファイル -
-N, --skip-space-checkデータ コレクションの前に空きディスク容量の検証をスキップします。
-
-P PATH, --collect-path=PATH追加のパスを収集します
PATH.絶対パスのみが受け入れられます。ワイルドカードを受け入れます。ワイルドカードは引用符で囲む必要があります。このオプションを複数回指定すると、複数のパスを収集できます。 -
-q, --quiet, --silent標準出力でメッセージを抑止します。
-
-r, --mdm-repositoryMDMリポジトリー ファイルを収集します。
-
-s, --skip-sdbgSDBG(診断デバッガ)出力の収集をスキップします。
-
-S, --pause-core-generationデータ収集中にPowerFlexコンポーネントのコア生成を一時停止します。収集が完了すると、元の構成がリストアされます。
-
-w WORK_DIR, --work-dir=WORK_DIRディレクトリを使用
WORK_DIR一時ファイル用。[Default]:/tmpの詳細を確認してください。 -
-x FILE, --output-file=FILE収集したバンドルを
FILEの詳細を確認してください。適切なファイル名の接尾辞 (.tgz、.zipなど)が自動的に追加されます。「Fusion」FILEは-(ダッシュ)の場合、バンドルを標準出力に書き込みます (--quiet)を提供する必要があります。バンドルが標準出力に書き込まれる場合、ディスク上にバンドル ファイルは作成されません。[Default]:getInfoDumpの詳細を確認してください。 -
-z, --zipリアルタイム イベントを監視するには、
zipデフォルトではなく、収集されたバンドルの形式tar/gzの詳細を確認してください。次の場合は無視されますzip(1)がシステムで見つかりません。 -
--mdm-port=PORTポートを使用したMDMへの接続
PORTSCLI コマンドの場合。[Default]:scli default behaviorの詳細を確認してください。 -
--overwrite-output-file出力ファイルがすでに存在する場合は、上書きします。出力ファイルまたはディレクトリが明示的に指定されている場合 (
-xまたは-d)、デフォルトの動作は上書きを拒否することです。このオプションはこれをオーバーライドします。 -
--techヘルプ メッセージ出力に技術者オプションを含めます。
MDMログイン オプション
SCLIには、次のオプションが渡されます --login に指定します。これらの動作とデフォルト値は、SCLIによって管理されます。
-
-n, --use-nonsecure-communication非セキュア モードでMDMに接続します。
-
-p PASSWORD, --password=PASSWORDリアルタイム イベントを監視するには、
PASSWORDPowerFlex MDMログインの場合。[Default]:SCLIのデフォルトの動作 -
-u USERNAME, --username=USERNAMEリアルタイム イベントを監視するには、
USERNAMEPowerFlex MDMログインの場合。[Default]:SCLIのデフォルトの動作 -
--ldap-authenticationLDAPベースの認証を使用してPowerFlex MDMにログインします。
-
--management-system-ip=ADDRESS接続先
SSO/M&O。ADDRESSPowerFlexログインの場合。[Default]:SCLIのデフォルトの動作 -
--p12-password=PASSWORDPowerFlexログインの暗号化
PKCS#12使用するファイルPASSWORDの詳細を確認してください。[Default]:SCLIのデフォルトの動作 -
--p12-path=FILEPowerFlexログインの保存
PKCS#12ファイルをFILEの詳細を確認してください。[Default]:SCLIのデフォルトの動作
技術者のオプション
次のオプションは、サポート技術者が使用することを目的としており、次の場合にのみヘルプ メッセージに表示されます。 --tech が指定されています。
-c[COMPONENTS], --generate-cores[=COMPONENTS]
コア ファイルを生成します ( gcore(1))は、スペースで区切られたユーザーランドのリストの実行中のプロセスに対して COMPONENTSの詳細を確認してください。デフォルト:すべてのユーザーランドコンポーネント、 --collect-executables、および要件 gdb と gcoreの詳細を確認してください。
-c と COMPONENTSの詳細を確認してください。長い形式の場合は、 =の詳細を確認してください。
例:
-c'mdm sds'
--generate-cores='mdm sds'
-
-C CORE_FILE, --reference-core-file=CORE_FILE最終変更時刻を基準にして製品ログとコアを収集します(
mtime)のCORE_FILE実行開始時刻ではなく、意味--collect-cores -
-E REF_TIME, --event-time=REF_TIME以下に関連する製品ログとコアを収集する
REF_TIME実行開始時刻ではなく、によって認識される任意の形式を受け入れますdate(1)の詳細を確認してください。意味--collect-coresの詳細を確認してください。 -g[COMPONENTS], --valgrind-cores[=COMPONENTS]
収集 valgrind 指定されたユーザーランドのコア ダンプ COMPONENTSの詳細を確認してください。デフォルト:すべてのユーザーランドコンポーネント。意味 --collect-executablesの詳細を確認してください。
-b と COMPONENTSの詳細を確認してください。長い形式の場合は、 =
例:
-g'mdm sds'
--valgrind-cores='mdm sds'
-
-t MIN, --minutes-before-event=MIN製品ログを収集し、最大生成のコアを生成
MIN参照時刻の数分前。[Default]:15 -
-T MIN, --minutes-after-event=MIN製品ログを収集し、最大生成のコアを生成
MIN参照時刻の数分後。[Default]:5 -
-X[COMPONENTS], --collect-executables[=COMPONENTS]指定されたユーザーランドのコンポーネント実行可能ファイルとその共有ライブラリを収集します
COMPONENTSの詳細を確認してください。[Default]:すべてのユーザーランド コンポーネント
-b と COMPONENTSの詳細を確認してください。長い形式の場合は、 =
例:
-X'mdm sds'
--collect-executables='mdm sds'
-
--keep-work-dirバンドル作成後に生成された一時作業ディレクトリーを保持します(自動的にクリーンアップされます)。
バンドル構造
出力バンドルは、単一の圧縮アーカイブです。
- バンドルの最上位ディレクトリーは、収集されたシステムのホスト名です。
- 一般的なホスト コマンド出力は、
server/サブディレクトリ。
ファイル名は<command>+<arguments>+ 接尾辞 (.txtデフォルト)。スペースの置換後の_、英数字以外の文字が削除されました
例:server/ip_-s_addr.txt – output of ip -s addr - 製品コマンドの出力は、コンポーネントのサブディレクトリーに置かれます。
mdm/例えば、scli、sdc/例えば、drv_cfgなど。
コマンド名(scli、drv_cfgなど) が取り除かれます。最初の意味のある引数がファイル名になります。ファイルは関連する接尾辞として割り当てられます。.txt」です。
例:
-
mdm/query_cluster.txt- 出力scli --query_clustermdm/tgt_dump.txt- 出力scli --debug_action --tgt_dumpsdc/query_mdms.txt- 出力drv_cfg --query_mdmssds/sdbg.txt- SDBGの出力dumpallscreensSDS用
- 製品コンポーネントファイル(コマンド出力とは対照的)
<component>/cfg、<component>/logsなど
コンポーネントのディレクトリからプレフィックスが削除された状態でコピーされます。
例:
-
mdm/cfg/conf.txt- のコピー/opt/emc/scaleio/mdm/cfg/conf.txtsds/logs/trc.0- のコピー/opt/emc/scaleio/sds/logs/trc.0
- ホスト ファイル システム ファイルは、バンドル ルートを基準とした相対ファイル システム パスに配置されます。
例:
-
etc/os-release- のコピー/etc/os-releasevar/log/messages- のコピー/var/log/messagesproc/cpuinfo- のコピー/proc/cpuinfo
- 診断コレクター(diag_coll)ファイルは、
/opt接頭辞は取り除かれ、内部構造は維持されます。
Example:diag_coll/logs/sar.0- のコピー/opt/diag_coll/logs/sar.0 - 隠しファイル(ドット接頭辞付き)は、先頭のドットを削除することで「再表示」されます。
- ユーティリティ実行ログ、
get_info_run.logは、 <hostname>/root の直下に配置されます。
バンドル ディレクトリー ツリー構造:
<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)
製品ログとコア ファイルのフィルタリング
このセクションで説明するオプションは、製品ログ ファイル (トレース ファイルとも呼ばれます) の方法を制御します。 trc.0、 trc.1、 exp.0)およびコア ダンプ ファイルは、収集されたバンドルに含めるために選択されます。そのためには、基準時間、その周りの時間枠、およびカウント制限を定義します。
フィルタリング オプションが指定されていない場合、すべての製品ログ ファイルと(コア収集が有効になっている場合は)すべてのコア ダンプ ファイルが収集されます。フィルタリング オプションでは、以下で説明するように、この選択肢を徐々に狭めていきます。
基準時間
基準時間は、次のいずれかを使用して設定できます -E/--event-time または -C/--reference-core-fileの詳細を確認してください。
どちらも該当しない場合 --event-time も --reference-core-file が指定されている場合、タイム ウィンドウ フィルタリングは実行されません: 参照時刻はデフォルトで現在時刻になり、カウント制限 (-m または -k)が有効な場合(以下の「カウント制限」を参照)。
両方の場合 -E と -C が表示されると、コマンドラインの最後の項目が有効になります。
タイム ウィンドウ
基準時間が設定されている場合( --event-time または --reference-core-file)、その周囲にタイム ウィンドウが設定されます。タイム ウィンドウの範囲は、次を使用して設定できます。 -t/--minutes-before-event および または -T/--minutes-after-event既定値はそれぞれ 15 分と 5 分です。コンテンツがこのウィンドウと重複するファイルのみが収集の対象となります。
例 -E "2020-03-20 14:30" -t 10 -T 3 14:20:00から14:33:00までの期間のファイルを収集します。
--minutes-before-event と --minutes-after-event どちらも当てはまらない場合は無視されます --event-time も --reference-core-file が指定されています。
カウント制限
ファイル数の制限は、次を使用して設定できます。 -m/--max-traces と -k/--max-cores(それぞれログ・ファイル用、コア・ファイル用)。上限値はコンポーネントごとに測定されます。
NUM を超えるファイルがタイム ウィンドウ内にある場合 (または、アクティブなウィンドウがない場合は使用可能な場合)、参照時間に最も近い NUM 個のファイルが収集されます。
カウント制限を --event-time または --reference-core-fileの場合、すべてのファイルが候補(タイム ウィンドウなし)であり、NUM個の最新のファイルが選択されます。
フィルタリングロジック
ファイル フィルタリングは、最初にタイム ウィンドウに適用され、次にカウント制限に適用されます。
- 候補者を確立します。コンポーネントのすべての製品ログ ファイルおよび/またはコア ダンプ ファイルが列挙されます。
- コンテンツ期間を導き出します。製品ログ ファイルのコンテンツは期間を表します。コンテンツ期間は、先行バージョンの最終変更時刻 (
mtime)、または先行機種が存在しない場合はUNIXエポック。ファイル自体で終了しますmtimeの詳細を確認してください。コア ダンプ ファイルは、ファイルのmtimeの詳細を確認してください。 - タイム ウィンドウの適用(
-Eまたは-C指定)。コンテンツが完全にウィンドウの外側にあるファイルは、選択から破棄されます。製品ログ ファイルの場合、ウィンドウ内にファイルがない場合は、ウィンドウに最も近い単一のファイルが保持されるため、コンポーネントのバンドルが空になることはありません。コア ダンプ ファイルの場合、このようなフォールバックは適用されません。 - カウント制限を適用 (
-mおよび または-k指定)。残りのファイルのうち、最大でNUMが選択され、基準時間に最も近いものが優先されます。参照時間の前後のファイルは、選択をめぐって均等に競合します。
認証
プライマリーMDMプロセスが予想されるポート(デフォルト: 6611)
MDMログイン オプションはSCLIに渡される --login コマンドで処理され、それによって処理されます。
ログインに失敗した場合、ユーティリティーはエラーで終了します。
ログインがスキップされても、SCLIコマンドは試行されます(ユーザーが事前に手動でログインしたシナリオをサポートするため)。 SCLIが3回失敗すると、警告が表示され、それ以降のSCLIコマンドはすべてスキップされます。
次の場合、ログインはスキップされます。
- プライマリーMDMプロセスがローカル ホストで見つかりません。
- 「
--skip-mdm-loginオプションが指定されている。
次の場合にログインに失敗します。
- MDMプロセス所有者が、許可されたユーザー リストに含まれていない(デフォルト:
root)で、セキュア ログインが有効になります。 - SCLIの
--loginコマンドがエラー (例: 不正な資格情報) を返します。
ディスク領域
一時ファイルと結果として生成されるバンドルに必要なディスク領域は、大きく異なる場合があります。
このユーティリティーは、一時スペースの使用量を最小限に抑えようとします。これは、コマンド出力と収集された仮想ファイル システムのコピー(/proc と /sys)ファイルです。
バンドルは、次のコマンドを使用してリモートホストからストリーミングできます。 --output-file=- PowerFlexホストでのディスク領域の使用量を最小限に抑えるためです。バンドルファイルは標準出力 (stdout)ストリーミング時。ディスク上には作成されません。
このユーティリティーは、データを収集する前に、一時作業ディレクトリーと出力バンドルの両方に必要なディスク領域を見積もります。
推定必要な領域が、関連するファイル システムで使用可能な領域を超えると、ユーティリティーはエラーで終了します。このチェックは、 --skip-space-checkの詳細を確認してください。
作業ディレクトリーと出力ディレクトリーは、異なるファイルシステム上にあってもかまいません。それぞれが個別にチェックされます。
推定される領域要件は、ユーティリティのログファイルに書き込まれます。 get_info_run.logの詳細を確認してください。
終了状況
| 0 | 正常に完了 |
| 1 | エラー(無効な引数、十分なスペースがない、ログインの失敗、すでに実行されている別のインスタンス、バンドル生成の失敗、シグナルのキャッチなど) |
ファイル
<WORK_DIR>/get_info_run.log |
実行ログ(バンドル内にも含む) |
<WORK_DIR>/scaleio-getinfo-tmp/ |
一時作業ディレクトリー(成功するとクリーンアップされます) |
/tmp/scaleio-getinfo/getInfoDump.tgz |
デフォルトの出力バンドルの場所 |
<WORK_DIR>/scaleio-getinfo-extra/
/tmp/scaleio-getinfo-extra/ |
オプションの追加診断データ ディレクトリー |
/tmp/scaleio-getinfo-backup/ |
変更された構成ファイルの一時バックアップ(自動作成) |
/opt/emc/scaleio/ |
PowerFlexインストール ディレクトリー |
環境
必要条件
- このユーティリティは、次のように実行する必要があります。
root(または、コンポーネント ファイルの読み取り、診断コマンドの実行、およびアクセスする十分な権限を持つユーザー)/proc、/sysなど)。 - 標準ユーティリティー:
tar、gzip、stat、find、awk、sed、getopt(1)(拡張)、niceの詳細を確認してください。 - オプション:
zip(--zip),xz(--xz),gdb/gcore(--generate-cores)を作成します。
並行 処理
のインスタンスは1つだけです get_info.sh 一度に実行できます。このユーティリティは、次のコマンドを使用して、既存の実行中のインスタンスをチェックします。 pidof(1) インスタンスが見つかった場合は終了します。
信号処理
ユーティリティー トラップ INT、 EXITと TERM データ収集中の信号。信号を受信すると、次のようになります。
- バックアップした構成ファイル(コア生成設定など)をリストアします。
- 一時ディレクトリーのクリーンアップ
- ステータス 1 の出口
実行ログは保存され、そのパスは標準エラー出力されます。
例
標準サポート バンドルを収集します。
get_info.sh
リモートPowerFlexホストにバンドル ファイルを作成せずに、SSH接続を介してバンドルをストリーミングします。
ssh <host> 'get_info.sh --output-file=-' > getInfoDump-<host>.tgz
別の作業ディレクトリーを使用して、いっぱいにならないようにします /tmpファイルに置き換えます。
get_info.sh --work-dir=/var/tmp
バンドルにカスタムパスを含めます。
get_info.sh --collect-path=/opt/custom/app/logs --collect-path='/var/log/app*'
SDSおよびMDMコンポーネントの最新のコア ダンプのみを収集します。
get_info.sh --collect-cores='mdm sds' --max-cores=1
コア ファイルの変更時刻を中心に、カスタムのタイム ウィンドウを使用してデータを収集します。
get_info.sh --reference-core-file=/opt/emc/scaleio/sds/bin/core.1000 \
--minutes-before-event=10 \
--minutes-after-event=2