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:
SupportAssist/TSR-Sammlung zur Problembehandlung für Dell
Befehlsname:hardware-support-data-collection
Argumente: Typ der angeforderten ProtokolleSysInfo
: SysteminformationenTTYLog
: TTYLog-SpeicherdatenDebug
: Debugprotokolle
Sammeln von Agentinformationen für Microsoft Defender for Endpoint (MDE)
Befehlsname:mde-agent-information
Argumente: KeineSammeln von MDE-Diagnoseunterstützungsprotokollen
Befehlsname:mde-support-diagnostics
Argumente: KeineErfassen des Dell-Hardwarerollupstatus
Befehlsname:hardware-rollup-status
Argumente: Keine
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.