az networkcloud baremetalmachine run-data-extract
コマンドを使用したベアメタル マシンの問題のトラブルシューティング
ユーザーがオンプレミスのベア メタル マシンに関する問題を調査して解決する必要がある場合があります。 Azure Operator Nexus では、az networkcloud baremetalmachine run-data-extract
を介して所定のデータ抽出コマンドのセットが提供されます。 これらのコマンドを使用すると、ユーザーはベア メタル マシンから診断データを取得できます。
このコマンドは、データ抽出の結果を格納する出力ファイルを生成します。 既定では、データはクラスター マネージャー ストレージ アカウントに送信されます。 また、ユーザーが、そのストレージ アカウントにアクセスできるストレージ アカウントと ID を使用してクラスター リソースを構成し、その出力を受信できるプレビューの方法もあります。
前提条件
- この記事では、Azure コマンド ライン インターフェイスと
networkcloud
コマンド ライン インターフェイス拡張機能がインストールされていることを前提としています。 詳細については、「CLI 拡張機能をインストールする方法」を参照してください。 - ターゲットのベア メタル マシンはオンであり、準備できている必要があります。
- これらのコマンドの構文は、
az networkcloud
CLI の 0.3.0 以降のバージョンに基づいています。 - クラスター リソース用に作成したクラスター管理対象リソース グループ名 (cluster_MRG) を取得します。
クラスター マネージャー ストレージ アカウントへのアクセスを確認する
Note
今後、信頼されたサービスへのクラスターのオンボードが完了し、ユーザー マネージド ストレージ オプションが完全にサポートされると、クラスター マネージャー ストレージ アカウントの出力方法は非推奨となる予定です。
クラスター マネージャーのストレージ方法を使用している場合は、クラスター マネージャーのストレージ アカウントにアクセスできることを確認します。
- Azure portal から、クラスター マネージャーのストレージ アカウントに移動します。
- ストレージ アカウントの詳細で、左側のナビゲーション メニューから [ストレージ ブラウザー] を選択します。
- ストレージ ブラウザーの詳細で、[BLOB コンテナー] を選択します。
- ストレージ アカウントへのアクセス中に
403 This request is not authorized to perform this operation.
が表示された場合、ストレージ アカウントのファイアウォール設定を更新して、パブリック IP アドレスが含まれるようにする必要があります。 - クラスター マネージャー リソースでポータルを介してサポート チケットを作成して、アクセスを要求します。 アクセスを必要とするパブリック IP アドレスを指定します。
プレビュー: ユーザー指定のストレージ アカウントにコマンド出力を送信する
重要
コマンド出力用にユーザー ストレージ アカウントを指定するこの方法は、プレビュー段階であることに注意してください。 この方法は、ファイアウォールが有効になっていないユーザー ストレージ アカウントでのみ使用する必要があります。 お使いの環境でストレージ アカウントのファイアウォールを有効にする必要がある場合は、既存のクラスター マネージャーの出力方法を使用してください。
ストレージ リソースを作成して構成する
- ストレージ アカウントを作成する、または使用する既存のストレージ アカウントを特定します。 「Azure Storage アカウントを作成する」を参照してください。
- ストレージ アカウント内に Blob Storage コンテナーを作成します。 「コンテナーを作成する」を参照してください。
- "ストレージ BLOB データ共同作成者" ロールを、run-data-extract の出力へのアクセスが必要なユーザーとマネージド ID に割り当てます。
- 「BLOB データにアクセスするための Azure ロールを割り当てる」を参照してください。 また、このロールは、ユーザー割り当てマネージド ID またはクラスター独自のシステム割り当てマネージド ID のいずれかにも割り当てる必要があります。
- マネージド ID の詳細については、Azure リソースのマネージド ID に関するページを参照してください。
- クラスターのシステム割り当て ID を使用する場合は、アクセスを付与する前に、そのシステム割り当て ID をクラスターに追加する必要があります。
- クラスターのシステム割り当て ID にロールを割り当てる場合は、必ず "クラスター (Operator Nexus)" という種類のリソースを選択してください。
ストレージ アクセスにユーザー割り当てマネージド ID を使用するようにクラスターを構成する
ユーザー マネージド ストレージ アカウントとユーザー割り当て ID を持つクラスターを作成するには、このコマンドを使用します。 この例は、ユーザー マネージド ストレージの追加に関係するフィールドを強調するだけの、省略されたコマンドであることに注意してください。 これは、完全な cluster create コマンドではありません。
az networkcloud cluster create --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
...
--mi-user-assigned "<user-assigned-identity-resource-id>" \
--command-output-settings identity-type="UserAssignedIdentity" \
identity-resource-id="<user-assigned-identity-resource-id>" \
container-url="<container-url>" \
...
--subscription "<subscription>"
ユーザーが指定したストレージ アカウントとユーザー割り当て ID 用に既存のクラスターを構成するには、このコマンドを使用します。 update コマンドを使用し、必要に応じてストレージ アカウントの場所と ID を変更することもできます。
az networkcloud cluster update --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
--mi-user-assigned "<user-assigned-identity-resource-id>" \
--command-output-settings identity-type="UserAssignedIdentity" \
identity-resource-id="<user-assigned-identity-resource-id>" \
container-url="<container-url>" \
--subscription "<subscription>"
ストレージ アクセスにシステム割り当てマネージド ID を使用するようにクラスターを構成する
ユーザー マネージド ストレージ アカウントとシステム割り当て ID を持つクラスターを作成するには、このコマンドを使用します。 この例は、ユーザー マネージド ストレージの追加に関係するフィールドを強調するだけの、省略されたコマンドであることに注意してください。 これは、完全な cluster create コマンドではありません。
az networkcloud cluster create --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
...
--mi-system-assigned true \
--command-output-settings identity-type="SystemAssignedIdentity" \
container-url="<container-url>" \
...
--subscription "<subscription>"
ユーザーが指定したストレージ アカウント用に既存のクラスターを構成し、独自のシステム割り当て ID を使用するには、このコマンドを使用します。 update コマンドを使用して、ストレージ アカウントの場所を変更することもできます。
az networkcloud cluster update --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
--mi-system-assigned true \
--command-output-settings identity-type="SystemAssignedIdentity" \
container-url="<container-url>" \
--subscription "<subscription>"
クラスターをユーザー割り当て ID からシステム割り当て ID に変更するには、まず次のセクションの中のコマンドを使用して CommandOutputSettings をクリアしてから、このコマンドを使用して設定する必要があります。
クラスターの CommandOutputSettings をクリアする
CommandOutputSettings をクリアし、run-data-extract の出力をクラスター マネージャーのストレージに戻すことができます。 ただし、これは安全性が低く、このオプションは今後のリリースで削除されるため、お勧めしません。
しかしながら、ユーザー割り当て ID からシステム割り当て ID に切り替える場合は、CommandOutputSettings をクリアする必要があります。
CommandOutputSettings をクリアするには、このコマンドを使用します。
az rest --method patch \
--url "https://management.azure.com/subscriptions/<subscription>/resourceGroups/<cluster-resource-group>/providers/Microsoft.NetworkCloud/clusters/<cluster-name>?api-version=2024-08-01-preview" \
--body '{"properties": {"commandOutputSettings":null}}'
マネージド ID のプリンシパル ID を表示する
ID リソースの ID は、その ID リソース上で "JSON ビュー" を選択すると参照できます。この ID は、表示されるパネルの上部にあります。 コンテナーの URL は、コンテナー リソースの [設定] -> [プロパティ] タブ上で参照できます。
CLI を使用して、クラスター内の ID と、関連付けられたプリンシパル ID データを表示することもできます。
例:
az networkcloud cluster show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Cluster Name>
システム割り当て ID の例:
"identity": {
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"type": "SystemAssigned"
},
ユーザー割り当て ID の例:
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>": {
"clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
"principalId": "bbbbbbbb-cccc-dddd-2222-333333333333"
}
}
},
run-data-extract コマンドを実行する
データ抽出の実行コマンドは、1 つ以上の定義済みスクリプトを実行して、ベア メタル マシンからデータを抽出します。
警告
Microsoft では、プレーンテキストのユーザー名やパスワードを指定することが想定される Operator Nexus API 呼び出しを提供またはサポートしていません。 送信されるすべての値がログに記録され、公開されたシークレットであると見なされ、これらにはローテーションおよび取り消しが必要があることに注意してください。 Microsoft が文書化したシークレットを安全に使用する方法は、それらを Azure Key Vault に格納する方法です。特定のご質問やご不明な点がある場合は、Azure Portal 経由でリクエストを送信してください。
サポートされているコマンドの現在の一覧は次のとおりです
Dell のトラブルシューティングのための SupportAssist/TSR コレクション
コマンド名:hardware-support-data-collection
引数: 要求されたログの種類SysInfo
- システム情報TTYLog
- ストレージ TTYLog データDebug
- デバッグ ログ
Microsoft Defender for Endpoints (MDE) エージェント情報を収集する
コマンド名:mde-agent-information
引数: なしMDE 診断サポート ログを収集する
コマンド名:mde-support-diagnostics
引数: なしDell ハードウェア ロールアップの状態を収集する
コマンド名:hardware-rollup-status
引数: なしクラスター CVE レポートを生成する
コマンド名:cluster-cve-report
引数: なしHelm リリースの収集
コマンド名:collect-helm-releases
引数: なしsystemctl status
出力の収集
コマンド名:platform-services-status
引数: なし
コマンド構文は次のとおりです。
az networkcloud baremetalmachine run-data-extract --name "<machine-name>" \
--resource-group "<cluster_MRG>" \
--subscription "<subscription>" \
--commands '[{"arguments":["<arg1>","<arg2>"],"command":"<command1>"}]' \
--limit-time-seconds "<timeout>"
--commands
オプションで json 形式を使用して複数のコマンドを指定します。 各 command
は、コマンドと引数を指定します。 複数の引数を持つコマンドの場合は、arguments
パラメーターのリストとして指定します。 --commands
構造の構築手順については、「Azure CLI の短縮表現」を参照してください。
これらのコマンドは実行時間が長い場合があるため、--limit-time-seconds
を少なくとも 600 秒 (10 分) に設定することをおすすめします。 Debug
オプションまたは複数の抽出の実行には、10 分以上かかる場合があります。
応答では、操作は非同期的に実行され、HTTP 状態コード 202 が返されます。 コマンドの完了を追跡し、出力ファイルを表示する方法の詳細については、「出力の表示」セクションを参照してください。
ハードウェア サポート データの収集
この例では、hardware-support-data-collection
コマンドを実行し、Dell Server から SysInfo
ログと TTYLog
ログを取得します。 このスクリプトは、指定されたベアメタル マシンで racadm supportassist collect
コマンドを実行します。 結果の tar.gz ファイルには、hardware-support-data-<timestamp>.zip
形式で圧縮された抽出コマンド ファイル出力が含まれています。
az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
--resource-group "cluster_MRG" \
--subscription "subscription" \
--commands '[{"arguments":["SysInfo", "TTYLog"],"command":"hardware-support-data-collection"}]' \
--limit-time-seconds 600
hardware-support-data-collection
出力
====Action Command Output====
Executing hardware-support-data-collection command
Getting following hardware support logs: SysInfo,TTYLog
Job JID_814372800396 is running, waiting for it to complete ...
Job JID_814372800396 Completed.
---------------------------- JOB -------------------------
[Job ID=JID_814372800396]
Job Name=SupportAssist Collection
Status=Completed
Scheduled Start Time=[Not Applicable]
Expiration Time=[Not Applicable]
Actual Start Time=[Thu, 13 Apr 2023 20:54:40]
Actual Completion Time=[Thu, 13 Apr 2023 20:59:51]
Message=[SRV088: The SupportAssist Collection Operation is completed successfully.]
Percent Complete=[100]
----------------------------------------------------------
Deleting Job JID_814372800396
Collection successfully exported to /hostfs/tmp/runcommand/hardware-support-data-2023-04-13T21:00:01.zip
================================
Script execution result can be found in storage account:
https://cm2p9bctvhxnst.blob.core.windows.net/bmm-run-command-output/dd84df50-7b02-4d10-a2be-46782cbf4eef-action-bmmdataextcmd.tar.gz?se=2023-04-14T01%3A00%3A15Zandsig=ZJcsNoBzvOkUNL0IQ3XGtbJSaZxYqmtd%2BM6rmxDFqXE%3Dandsp=randspr=httpsandsr=bandst=2023-04-13T21%3A00%3A15Zandsv=2019-12-12
収集されたハードウェア サポート ファイルの一覧の例
Archive: TSR20240227164024_FM56PK3.pl.zip
creating: tsr/hardware/
creating: tsr/hardware/spd/
creating: tsr/hardware/sysinfo/
creating: tsr/hardware/sysinfo/inventory/
inflating: tsr/hardware/sysinfo/inventory/sysinfo_CIM_BIOSAttribute.xml
inflating: tsr/hardware/sysinfo/inventory/sysinfo_CIM_Sensor.xml
inflating: tsr/hardware/sysinfo/inventory/sysinfo_DCIM_View.xml
inflating: tsr/hardware/sysinfo/inventory/sysinfo_DCIM_SoftwareIdentity.xml
inflating: tsr/hardware/sysinfo/inventory/sysinfo_CIM_Capabilities.xml
inflating: tsr/hardware/sysinfo/inventory/sysinfo_CIM_StatisticalData.xml
creating: tsr/hardware/sysinfo/lcfiles/
inflating: tsr/hardware/sysinfo/lcfiles/lclog_0.xml.gz
inflating: tsr/hardware/sysinfo/lcfiles/curr_lclog.xml
creating: tsr/hardware/psu/
creating: tsr/hardware/idracstateinfo/
inflating: tsr/hardware/idracstateinfo/avc.log
extracting: tsr/hardware/idracstateinfo/avc.log.persistent.1
[..snip..]
MDE エージェント情報の収集
データは mde-agent-information
コマンドで収集され、JSON として /hostfs/tmp/runcommand/mde-agent-information.json
に書式設定されます。 JSON ファイルは、ストレージ アカウントにあるデータ抽出 zip ファイルにあります。 このスクリプトは、指定されたベアメタル マシンで一連の mdatp
コマンドを実行します。
この例では、引数を指定せずに mde-agent-information
コマンドを実行します。
az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
--resource-group "cluster_MRG" \
--subscription "subscription" \
--commands '[{"command":"mde-agent-information"}]' \
--limit-time-seconds 600
mde-agent-information
出力
====Action Command Output====
Executing mde-agent-information command
MDE agent is running, proceeding with data extract
Getting MDE agent information for bareMetalMachine
Writing to /hostfs/tmp/runcommand
================================
Script execution result can be found in storage account:
https://cmzhnh6bdsfsdwpbst.blob.core.windows.net/bmm-run-command-output/f5962f18-2228-450b-8cf7-cb8344fdss63b0-action-bmmdataextcmd.tar.gz?se=2023-07-26T19%3A07%3A22Z&sig=X9K3VoNWRFP78OKqFjvYoxubp65BbNTq%2BGnlHclI9Og%3D&sp=r&spr=https&sr=b&st=2023-07-26T15%3A07%3A22Z&sv=2019-12-12
収集された JSON オブジェクトの例
{
"diagnosticInformation": {
"realTimeProtectionStats": $real_time_protection_stats,
"eventProviderStats": $event_provider_stats
},
"mdeDefinitions": $mde_definitions,
"generalHealth": $general_health,
"mdeConfiguration": $mde_config,
"scanList": $scan_list,
"threatInformation": {
"list": $threat_info_list,
"quarantineList": $threat_info_quarantine_list
}
}
MDE サポート診断の収集
mde-support-diagnostics
コマンドから収集されたデータは、MDE Client Analyzer ツールを使用して、mdatp
コマンドと関連ログ ファイルからの情報をバンドルします。 ストレージ アカウントの tgz
ファイルには、mde-support-diagnostics-<hostname>.zip
という名前の zip
ファイルが格納されています。 この zip
は、サポート チームが必要に応じてトラブルシューティングや根本原因分析にログを使用できるようにするために、サポート リクエストと一緒に送信する必要があります。
この例では、引数を指定せずに mde-support-diagnostics
コマンドを実行します。
az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
--resource-group "cluster_MRG" \
--subscription "subscription" \
--commands '[{"command":"mde-support-diagnostics"}]' \
--limit-time-seconds 600
mde-support-diagnostics
出力
====Action Command Output====
Executing mde-support-diagnostics command
[2024-01-23 16:07:37.588][INFO] XMDEClientAnalyzer Version: 1.3.2
[2024-01-23 16:07:38.367][INFO] Top Command output: [/tmp/top_output_2024_01_23_16_07_37mel0nue0.txt]
[2024-01-23 16:07:38.367][INFO] Top Command Summary: [/tmp/top_summary_2024_01_23_16_07_370zh7dkqn.txt]
[2024-01-23 16:07:38.367][INFO] Top Command Outliers: [/tmp/top_outlier_2024_01_23_16_07_37aypcfidh.txt]
[2024-01-23 16:07:38.368][INFO] [MDE Diagnostic]
[2024-01-23 16:07:38.368][INFO] Collecting MDE Diagnostic
[2024-01-23 16:07:38.613][WARNING] mde is not running
[2024-01-23 16:07:41.343][INFO] [SLEEP] [3sec] waiting for agent to create diagnostic package
[2024-01-23 16:07:44.347][INFO] diagnostic package path: /var/opt/microsoft/mdatp/wdavdiag/5b1edef9-3b2a-45c1-a45d-9e7e4b6b869e.zip
[2024-01-23 16:07:44.347][INFO] Successfully created MDE diagnostic zip
[2024-01-23 16:07:44.348][INFO] Adding mde_diagnostic.zip to report directory
[2024-01-23 16:07:44.348][INFO] Collecting MDE Health
[...snip...]
================================
Script execution result can be found in storage account:
https://cmmj627vvrzkst.blob.core.windows.net/bmm-run-command-output/7c5557b9-b6b6-a4a4-97ea-752c38918ded-action-bmmdataextcmd.tar.gz?se=2024-01-23T20%3A11%3A32Z&sig=9h20XlZO87J7fCr0S1234xcyu%2Fl%2BVuaDh1BE0J6Yfl8%3D&sp=r&spr=https&sr=b&st=2024-01-23T16%3A11%3A32Z&sv=2019-12-12
実行結果ファイルをダウンロードすると、分析のためにサポート ファイルを解凍できます。
MDE クライアント アナライザーによって収集される情報の一覧の例
Archive: mde-support-diagnostics-rack1compute02.zip
inflating: mde_diagnostic.zip
inflating: process_information.txt
inflating: auditd_info.txt
inflating: auditd_log_analysis.txt
inflating: auditd_logs.zip
inflating: ebpf_kernel_config.txt
inflating: ebpf_enabled_func.txt
inflating: ebpf_syscalls.zip
inflating: ebpf_raw_syscalls.zip
inflating: messagess.zip
inflating: conflicting_processes_information.txt
[...snip...]
ハードウェア ロールアップの状態
データは hardware-rollup-status
コマンドで収集され、JSON として /hostfs/tmp/runcommand/rollupStatus.json
に書式設定されます。 JSON ファイルは、ストレージ アカウントにあるデータ抽出 zip ファイルにあります。 収集されたデータには、マシン サブシステムの正常性が表示されます。
この例では、引数を指定せずに hardware-rollup-status
コマンドを実行します。
az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
--resource-group "clusete_MRG" \
--subscription "subscription" \
--commands '[{"command":"hardware-rollup-status"}]' \
--limit-time-seconds 600
hardware-rollup-status
出力
====Action Command Output====
Executing hardware-rollup-status command
Getting rollup status logs for b37dev03a1c002
Writing to /hostfs/tmp/runcommand
================================
Script execution result can be found in storage account:
https://cmkfjft8twwpst.blob.core.windows.net/bmm-run-command-output/20b217b5-ea38-4394-9db1-21a0d392eff0-action-bmmdataextcmd.tar.gz?se=2023-09-19T18%3A47%3A17Z&sig=ZJcsNoBzvOkUNL0IQ3XGtbJSaZxYqmtd%3D&sp=r&spr=https&sr=b&st=2023-09-19T14%3A47%3A17Z&sv=2019-12-12
収集された JSON の例
{
"@odata.context" : "/redfish/v1/$metadata#DellRollupStatusCollection.DellRollupStatusCollection",
"@odata.id" : "/redfish/v1/Systems/System.Embedded.1/Oem/Dell/DellRollupStatus",
"@odata.type" : "#DellRollupStatusCollection.DellRollupStatusCollection",
"Description" : "A collection of DellRollupStatus resource",
"Members" :
[
{
"@odata.context" : "/redfish/v1/$metadata#DellRollupStatus.DellRollupStatus",
"@odata.id" : "/redfish/v1/Systems/System.Embedded.1/Oem/Dell/DellRollupStatus/iDRAC.Embedded.1_0x23_SubSystem.1_0x23_Current",
"@odata.type" : "#DellRollupStatus.v1_0_0.DellRollupStatus",
"CollectionName" : "CurrentRollupStatus",
"Description" : "Represents the subcomponent roll-up statuses.",
"Id" : "iDRAC.Embedded.1_0x23_SubSystem.1_0x23_Current",
"InstanceID" : "iDRAC.Embedded.1#SubSystem.1#Current",
"Name" : "DellRollupStatus",
"RollupStatus" : "Ok",
"SubSystem" : "Current"
},
{
"@odata.context" : "/redfish/v1/$metadata#DellRollupStatus.DellRollupStatus",
"@odata.id" : "/redfish/v1/Systems/System.Embedded.1/Oem/Dell/DellRollupStatus/iDRAC.Embedded.1_0x23_SubSystem.1_0x23_Voltage",
"@odata.type" : "#DellRollupStatus.v1_0_0.DellRollupStatus",
"CollectionName" : "VoltageRollupStatus",
"Description" : "Represents the subcomponent roll-up statuses.",
"Id" : "iDRAC.Embedded.1_0x23_SubSystem.1_0x23_Voltage",
"InstanceID" : "iDRAC.Embedded.1#SubSystem.1#Voltage",
"Name" : "DellRollupStatus",
"RollupStatus" : "Ok",
"SubSystem" : "Voltage"
},
[..snip..]
クラスター CVE レポートを生成する
脆弱性データは cluster-cve-report
コマンドで収集され、JSON として {year}-{month}-{day}-nexus-cluster-vulnerability-report.json
に書式設定されます。 JSON ファイルは、ストレージ アカウントにあるデータ抽出 zip ファイルにあります。 収集されるデータには、クラスター内のコンテナー イメージごとの脆弱性データが含まれます。
この例では、引数を指定せずに cluster-cve-report
コマンドを実行します。
Note
ターゲット マシンはコントロール プレーン ノードである必要があり、そうでない場合、アクションは実行されません。
az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
--resource-group "cluster_MRG" \
--subscription "subscription" \
--commands '[{"command":"cluster-cve-report"}]' \
--limit-time-seconds 600
cluster-cve-report
出力
====Action Command Output====
Nexus cluster vulnerability report saved.
================================
Script execution result can be found in storage account:
https://cmkfjft8twwpst.blob.core.windows.net/bmm-run-command-output/20b217b5-ea38-4394-9db1-21a0d392eff0-action-bmmdataextcmd.tar.gz?se=2023-09-19T18%3A47%3A17Z&sig=ZJcsNoBzvOkUNL0IQ3XGtbJSaZxYqmtd%3D&sp=r&spr=https&sr=b&st=2023-09-19T14%3A47%3A17Z&sv=2019-12-12
CVE レポート スキーマ
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Vulnerability Report",
"type": "object",
"properties": {
"metadata": {
"type": "object",
"properties": {
"dateRetrieved": {
"type": "string",
"format": "date-time",
"description": "The date and time when the data was retrieved."
},
"platform": {
"type": "string",
"description": "The name of the platform."
},
"resource": {
"type": "string",
"description": "The name of the resource."
},
"runtimeVersion": {
"type": "string",
"description": "The version of the runtime."
},
"managementVersion": {
"type": "string",
"description": "The version of the management software."
},
"vulnerabilitySummary": {
"type": "object",
"properties": {
"criticalCount": {
"type": "integer",
"description": "Number of critical vulnerabilities."
},
"highCount": {
"type": "integer",
"description": "Number of high severity vulnerabilities."
},
"mediumCount": {
"type": "integer",
"description": "Number of medium severity vulnerabilities."
},
"lowCount": {
"type": "integer",
"description": "Number of low severity vulnerabilities."
},
"noneCount": {
"type": "integer",
"description": "Number of vulnerabilities with no severity."
},
"unknownCount": {
"type": "integer",
"description": "Number of vulnerabilities with unknown severity."
}
},
"required": ["criticalCount", "highCount", "mediumCount", "lowCount", "noneCount", "unknownCount"]
}
},
"required": ["dateRetrieved", "platform", "resource", "runtimeVersion", "managementVersion", "vulnerabilitySummary"]
},
"containers": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "object",
"properties": {
"namespace": {
"type": "string",
"description": "The namespace of the container."
},
"digest": {
"type": "string",
"description": "The digest of the container image."
},
"os": {
"type": "object",
"properties": {
"family": {
"type": "string",
"description": "The family of the operating system."
}
},
"required": ["family"]
},
"summary": {
"type": "object",
"properties": {
"criticalCount": {
"type": "integer",
"description": "Number of critical vulnerabilities in this container."
},
"highCount": {
"type": "integer",
"description": "Number of high severity vulnerabilities in this container."
},
"lowCount": {
"type": "integer",
"description": "Number of low severity vulnerabilities in this container."
},
"mediumCount": {
"type": "integer",
"description": "Number of medium severity vulnerabilities in this container."
},
"noneCount": {
"type": "integer",
"description": "Number of vulnerabilities with no severity in this container."
},
"unknownCount": {
"type": "integer",
"description": "Number of vulnerabilities with unknown severity in this container."
}
},
"required": ["criticalCount", "highCount", "lowCount", "mediumCount", "noneCount", "unknownCount"]
},
"vulnerabilities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the vulnerability."
},
"vulnerabilityID": {
"type": "string",
"description": "Identifier of the vulnerability."
},
"fixedVersion": {
"type": "string",
"description": "The version in which the vulnerability is fixed."
},
"installedVersion": {
"type": "string",
"description": "The currently installed version."
},
"referenceLink": {
"type": "string",
"format": "uri",
"description": "Link to the vulnerability details."
},
"publishedDate": {
"type": "string",
"format": "date-time",
"description": "The date when the vulnerability was published."
},
"score": {
"type": "number",
"description": "The CVSS score of the vulnerability."
},
"severity": {
"type": "string",
"description": "The severity level of the vulnerability."
},
"resource": {
"type": "string",
"description": "The resource affected by the vulnerability."
},
"target": {
"type": "string",
"description": "The target of the vulnerability."
},
"packageType": {
"type": "string",
"description": "The type of the package."
},
"exploitAvailable": {
"type": "boolean",
"description": "Indicates if an exploit is available for the vulnerability."
}
},
"required": ["title", "vulnerabilityID", "fixedVersion", "installedVersion", "referenceLink", "publishedDate", "score", "severity", "resource", "target", "packageType", "exploitAvailable"]
}
}
},
"required": ["namespace", "digest", "os", "summary", "vulnerabilities"]
}
}
}
},
"required": ["metadata", "containers"]
}
CVE データの詳細
CVE データは、コンテナー イメージごとに 24 時間ごと、またはイメージを参照する Kubernetes リソースに変更が発生したときに更新されます。
Helm リリースの収集
Helm リリース データは、collect-helm-releases
コマンドで収集され、jason として {year}-{month}-{day}-helm-releases.json
に書式設定されます。 JSON ファイルは、ストレージ アカウントにあるデータ抽出 zip ファイルにあります。 収集されたデータには、クラスターからのすべての Helm リリース情報が含まれます。これは、helm list
コマンドを実行したときに返される標準データから構成されています。
この例では、引数を指定せずに collect-helm-releases
コマンドを実行します。
Note
ターゲット マシンはコントロール プレーン ノードである必要があり、そうでない場合、アクションは実行されません。
az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
--resource-group "cluster_MRG" \
--subscription "subscription" \
--commands '[{"command":"collect-helm-releases"}]' \
--limit-time-seconds 600
collect-helm-releases
出力
====Action Command Output====
Helm releases report saved.
================================
Script execution result can be found in storage account:
https://cmcr5xp3mbn7st.blob.core.windows.net/bmm-run-command-output/a29dcbdb-5524-4172-8b55-88e0e5ec93ff-action-bmmdataextcmd.tar.gz?se=2024-10-30T02%3A09%3A54Z&sig=v6cjiIDBP9viEijs%2B%2BwJDrHIAbLEmuiVmCEEDHEi%2FEc%3D&sp=r&spr=https&sr=b&st=2024-10-29T22%3A09%3A54Z&sv=2023-11-03
Helm リリース スキーマ
{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"metadata": {
"type": "object",
"properties": {
"dateRetrieved": {
"type": "string"
},
"platform": {
"type": "string"
},
"resource": {
"type": "string"
},
"clusterId": {
"type": "string"
},
"runtimeVersion": {
"type": "string"
},
"managementVersion": {
"type": "string"
}
},
"required": [
"clusterId",
"dateRetrieved",
"managementVersion",
"platform",
"resource",
"runtimeVersion"
]
},
"helmReleases": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"namespace": {
"type": "string"
},
"revision": {
"type": "string"
},
"updated": {
"type": "string"
},
"status": {
"type": "string"
},
"chart": {
"type": "string"
},
"app_version": {
"type": "string"
}
},
"required": [
"app_version",
"chart",
"name",
"namespace",
"revision",
"status",
"updated"
]
}
}
},
"required": [
"helmReleases",
"metadata"
]
}
Systemctl Status 出力を収集する
サービス状態は、platform-services-status
コマンドで収集されます。 出力はプレーン テキスト形式で、ホスト上のサービスの状態の概要と、見つかった各サービスの systemctl status
を返します。
この例では、引数を指定せずに platform-services-status
コマンドを実行します。
az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
--resource-group "clusete_MRG" \
--subscription "subscription" \
--commands '[{"command":"platform-services-status"}]' \
--limit-time-seconds 600
--output-directory "/path/to/local/directory"
platform-services-status
出力
====Action Command Output====
UNIT LOAD ACTIVE SUB DESCRIPTION
aods-infra-vf-config.service not-found inactive dead aods-infra-vf-config.service
aods-pnic-config-infra.service not-found inactive dead aods-pnic-config-infra.service
aods-pnic-config-workload.service not-found inactive dead aods-pnic-config-workload.service
arc-unenroll-file-semaphore.service loaded active exited Arc-unenrollment upon shutdown service
atop-rotate.service loaded inactive dead Restart atop daemon to rotate logs
atop.service loaded active running Atop advanced performance monitor
atopacct.service loaded active running Atop process accounting daemon
audit.service loaded inactive dead Audit service
auditd.service loaded active running Security Auditing Service
azurelinux-sysinfo.service loaded inactive dead Azure Linux Sysinfo Service
blk-availability.service loaded inactive dead Availability of block devices
[..snip..]
-------
● arc-unenroll-file-semaphore.service - Arc-unenrollment upon shutdown service
Loaded: loaded (/etc/systemd/system/arc-unenroll-file-semaphore.service; enabled; vendor preset: enabled)
Active: active (exited) since Tue 2024-11-12 06:33:40 UTC; 11h ago
Main PID: 11663 (code=exited, status=0/SUCCESS)
CPU: 5ms
Nov 12 06:33:39 rack1compute01 systemd[1]: Starting Arc-unenrollment upon shutdown service...
Nov 12 06:33:40 rack1compute01 systemd[1]: Finished Arc-unenrollment upon shutdown service.
-------
○ atop-rotate.service - Restart atop daemon to rotate logs
Loaded: loaded (/usr/lib/systemd/system/atop-rotate.service; static)
Active: inactive (dead)
TriggeredBy: ● atop-rotate.timer
[..snip..]
出力の表示
このコマンドでは、完全な出力をダウンロードするためのリンク (クラスター マネージャー ストレージを使用している場合) または別のコマンド (ユーザーが指定したストレージを使用している場合) が提供されます。 tar.gz ファイルには、zip 形式で圧縮された抽出コマンド ファイルの出力も含まれています。 オプションの引数 --output-directory
にディレクトリ パスを指定して、ストレージ BLOB からローカル ディレクトリに出力ファイルをダウンロードします。
警告
--output-directory
引数を使用すると、作成する新しいファイルと同じ名前を持つローカル ディレクトリ内のすべてのファイルが上書きされます。
Note
ストレージ アカウントがロックされ、ネットワークまたはファイアウォールの制限が原因で 403 This request is not authorized to perform this operation.
が発生する可能性があります。 アクセスを確認する手順については、クラスター マネージャー ストレージまたはユーザー管理ストレージに関するセクションを参照してください。