Share via


Solución de problemas de máquina sin sistema operativo mediante el comando az networkcloud baremetalmachine run-data-extract

Puede que haya situaciones en las que un usuario necesite investigar y resolver problemas con una máquina sin sistema operativo local. Azure Operator Nexus proporciona un conjunto preestablecido de comandos de extracción de datos a través de az networkcloud baremetalmachine run-data-extract. Estos comandos permiten a los usuarios obtener datos de diagnóstico de una máquina sin sistema operativo.

El comando genera un archivo de salida que contiene los resultados de la extracción de datos que se encuentra en la cuenta de Azure Storage del administrador de clústeres.

Antes de empezar

  • En este artículo se supone que ha instalado la interfaz de la línea de comandos de Azure y la extensión de la interfaz de la línea de comandos networkcloud. Para obtener más información, consulte Cómo instalar extensiones de la CLI.
  • La máquina de destino sin sistema operativo está activada y tiene el valor readyState establecido en True.
  • La sintaxis de estos comandos se basa en la versión 0.3.0 o versiones posteriores de la CLI de az networkcloud.

Ejecución de un comando run

El comando run-data-extract ejecuta uno o varios scripts predefinidos para extraer datos de una máquina sin sistema operativo.

Esta es la lista de comandos admitidos:

La sintaxis del comando es la siguiente:

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>

Especifique varios comandos con formato JSON en la opción --commands. Cada valor command especifica el comando y los argumentos. En el caso de un comando con varios argumentos, proporciónelos como una lista al parámetro arguments. Consulte la sintaxis abreviada de la CLI de Azure para obtener instrucciones sobre cómo crear la estructura --commands.

Estos comandos pueden ser de larga duración, por lo que se recomienda establecer --limit-time-seconds en al menos 600 segundos (10 minutos). La opción Debug o la ejecución de varios extractos puede tardar más de 10 minutos.

En la respuesta, la operación se realiza de forma asincrónica y devuelve un código de estado HTTP de 202. Consulte la sección Visualización de la salida para obtener más información sobre cómo realizar un seguimiento de la finalización del comando y ver el archivo de salida.

Recopilación de datos de soporte técnico de hardware

En este ejemplo, se ejecuta el comando hardware-support-data-collection y se obtienen los registros SysInfo y TTYLog del servidor Dell. El script ejecuta un comando racadm supportassist collect en la máquina sin sistema operativo designada. El archivo tar.gz que se obtiene contiene los resultados del archivo de comandos de extracción comprimido en 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

Salida 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

Lista de ejemplos de archivos de soporte técnico de hardware recopilados

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

Recopilación de información del agente de MDE

Se recopilan datos con el comando mde-agent-information y se formatean como JSON en /hostfs/tmp/runcommand/mde-agent-information.json. El archivo JSON se encuentra en el archivo ZIP de extracción de datos ubicado en la cuenta de almacenamiento. El script ejecuta una secuencia de comandos mdatp en la máquina sin sistema operativo designada.

En este ejemplo, se ejecuta el comando mde-agent-information sin argumentos.

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

Salida 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

Ejemplo de objeto JSON recopilado

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

Recopilación de diagnósticos de soporte técnico de MDE

Los datos que se recopilan del comando mde-support-diagnostics usan la herramienta de analizador de clientes de MDE para agrupar la información de los comandos mdatp y de los archivos de registro pertinentes. El archivo de la cuenta de almacenamiento tgz contendrá un archivo zip denominado mde-support-diagnostics-<hostname>.zip. El archivo zip debe enviarse junto con las solicitudes de soporte técnico para asegurarse de que los equipos correspondientes puedan usar los registros para la solución de problemas y el análisis de la causa principal, si es necesario.

En este ejemplo, se ejecuta el comando mde-support-diagnostics sin argumentos.

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

Salida 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 

Después de descargar el archivo de resultados de ejecución, los archivos de soporte técnico se pueden descomprimir para analizarlos.

Lista de ejemplos de información recopilados por la herramienta de analizador de clientes de 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...]

Estado de acumulación del hardware

Se recopilan datos con el comando hardware-rollup-status y se formatean como JSON en /hostfs/tmp/runcommand/rollupStatus.json. El archivo JSON se encuentra en el archivo ZIP de extracción de datos ubicado en la cuenta de almacenamiento. Los datos recopilados mostrarán el estado de los subsistemas de la máquina.

En este ejemplo, se ejecuta el comando hardware-rollup-status sin argumentos.

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

Salida 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

Ejemplo de JSON recopilado

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

Visualización de la salida

Anote el vínculo proporcionado al archivo comprimido tar.gz desde la ejecución del comando. El nombre de archivo tar.gz identifica al archivo en la cuenta de almacenamiento del grupo de recursos del administrador de clústeres. También puede usar el vínculo para acceder directamente al archivo ZIP de salida. El archivo tar.gz también contiene la salida del archivo de comandos de extracción comprimido. Especifique la ruta de acceso del directorio en el argumento --output-directory opcional para descargar el archivo de salida desde el blob de almacenamiento a un directorio local.