Share via


Behandeln von Problemen mit Bare-Metal-Computern mithilfe des Befehls az networkcloud baremetalmachine run-data-extract

Es kann Situationen geben, in denen Benutzer Probleme mit einem lokalen Bare-Metal-Computer untersuchen und beheben müssen. Azure Operator Nexus bietet über az networkcloud baremetalmachine run-data-extract einen vorgeschriebenen Satz von Datenextraktionsbefehlen. Mit diesen Befehlen können Benutzer Diagnosedaten von einem Bare-Metal-Computer abrufen.

Der Befehl erzeugt eine Ausgabedatei mit den Ergebnissen der Datenextraktion, die sich im Azure Storage-Konto des Cluster-Managers befindet.

Voraussetzungen

  • In diesem Artikel wird davon ausgegangen, dass Sie die Azure-Befehlszeilenschnittstelle und die networkcloud-Erweiterung der Befehlszeilenschnittstelle installiert haben. Weitere Informationen finden Sie unter Installieren von CLI-Erweiterungen.
  • Der Ziel-Bare-Metal-Computer ist aktiviert und hat „readyState“ auf „True“ festgelegt.
  • Die Syntax für diese Befehle basiert auf Version 0.3.0+ der az networkcloud CLI.

Ausführen eines Ausführungsbefehls

Der Befehl zum Ausführen der Datenextraktion führt ein oder mehrere vordefinierte Skripts aus, um Daten von einem Bare-Metal-Computer zu extrahieren.

Aktuelle Liste der unterstützten Befehle:

Die Befehlssyntax ist wie folgt:

az networkcloud baremetalmachine run-data-extract --name "<machine-name>"  \
  --resource-group "<resource-group>" \
  --subscription "<subscription>" \
  --commands '[{"arguments":["<arg1>","<arg2>"],"command":"<command1>"}]'  \
  --limit-time-seconds <timeout>

Geben Sie in der --commands-Option mehrere Befehle im JSON-Format an. Jedes command-Element gibt Befehle und Argumente an. Geben Sie für einen Befehl mit mehreren Argumenten eine Liste für den Parameter arguments an. Anweisungen zum Erstellen der --commands-Struktur finden Sie unter Azure CLI-Kurzform.

Diese Befehle können zeitintensiv sein, daher wird empfohlen, --limit-time-seconds auf mindestens 600 Sekunden (10 Minuten) festzulegen. Die Option Debug oder das Ausführen mehrerer Extraktionen kann länger als 10 Minuten dauern.

In der Antwort wird der Vorgang asynchron ausgeführt, und der HTTP-Statuscode 202 wird zurückgegeben. Weitere Informationen zum Nachverfolgen des Befehlsabschlusses und zum Anzeigen der Ausgabedatei finden Sie im Abschnitt Anzeigen des Ausgabe.

Sammlung von Hardwareunterstützungsdaten

In diesem Beispiel wird der Befehl hardware-support-data-collection ausgeführt, und die Protokolle SysInfo und TTYLog werden vom Dell Server abgerufen. Das Skript führt einen racadm supportassist collect-Befehl auf dem angegebenen Bare-Metal-Computer aus. Die resultierende tar.gz-Datei enthält die komprimierten Ausgaben der extrahierten Befehlsdatei in hardware-support-data-<timestamp>.zip.

az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
  --resource-group "resourceGroupName" \
  --subscription "subscription" \
  --commands '[{"arguments":["SysInfo", "TTYLog"],"command":"hardware-support-data-collection"}]' \
  --limit-time-seconds 600

Ausgabe von 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

Beispielliste von gesammelten Hardwareunterstützungsdateien

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..]

Sammeln von MDE-Agent-Informationen

Daten werden mit dem Befehl mde-agent-information gesammelt und als JSON in /hostfs/tmp/runcommand/mde-agent-information.json formatiert. Die JSON-Datei befindet sich in der ZIP-Datei der Datenextraktion im Speicherkonto. Das Skript führt eine Sequenz von mdatp-Befehlen auf dem angegebenen Bare-Metal-Computer aus.

In diesem Beispiel wird der Befehl mde-agent-information ohne Argumente ausgeführt.

az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
  --resource-group "resourceGroupName" \
  --subscription "subscription" \
  --commands '[{"command":"mde-agent-information"}]' \
  --limit-time-seconds 600

Ausgabe von 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

Beispiel für gesammeltes JSON-Objekt

{
  "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
    }
}

Diagnose des MDE-Supports erfassen

Die mit dem Befehl mde-support-diagnostics gesammelten Daten werden mit dem MDE-Clientanalysetool gebündelt, um Informationen aus mdatp-Befehlen und relevanten Protokolldateien zu erhalten. Die tgz-Datei im Speicherkonto enthält eine zip-Datei mit dem Namen mde-support-diagnostics-<hostname>.zip. Die zip-Datei sollte zusammen mit allen Supportanfragen gesendet werden, damit die Supportteams die Protokolle bei Bedarf für die Problembehandlung und Ursachenanalyse verwenden können.

In diesem Beispiel wird der Befehl mde-support-diagnostics ohne Argumente ausgeführt.

az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
  --resource-group "resourceGroupName" \
  --subscription "subscription" \
  --commands '[{"command":"mde-support-diagnostics"}]' \
  --limit-time-seconds 600

Ausgabe von 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 

Nach dem Herunterladen der Ausführungsergebnisdatei können die Supportdateien für die Analyse entzippt werden.

Beispielliste der vom MDE-Clientanalysetool erfassten Informationen

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...]

Dell-Hardwarerollupstatus

Daten werden mit dem Befehl hardware-rollup-status gesammelt und als JSON in /hostfs/tmp/runcommand/rollupStatus.json formatiert. Die JSON-Datei befindet sich in der ZIP-Datei der Datenextraktion im Speicherkonto. Die gesammelten Daten zeigen die Integrität der Computersubsysteme an.

In diesem Beispiel wird der Befehl hardware-rollup-status ohne Argumente ausgeführt.

az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
  --resource-group "resourceGroupName" \
  --subscription "subscription" \
  --commands '[{"command":"hardware-rollup-status"}]' \
  --limit-time-seconds 600

Ausgabe von 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

Beispiel für JSON mit gesammelten Daten

{
	"@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..]

Anzeigen der Ausgabe

Beachten Sie den bereitgestellten Link zur gezippten tar.gz-Datei aus der Befehlsausführung. Der Name der tar.gz-Datei identifiziert die Datei im Speicherkonto der Ressourcengruppe des Cluster-Managers. Sie können auch den Link verwenden, um direkt auf die Ausgabe-ZIP-Datei zuzugreifen. Die tar.gz-Datei enthält auch die komprimierten Ausgaben der extrahierten Befehlsdatei. Laden Sie die Ausgabedatei aus dem Speicherblob in ein lokales Verzeichnis herunter, indem Sie den Verzeichnispfad im optionalen Argument --output-directory angeben.