Delen via


Problemen met bare-metalcomputers oplossen met behulp van de az networkcloud baremetalmachine run-data-extract opdracht

Er kunnen situaties zijn waarin een gebruiker problemen met een on-premises bare-metalcomputer moet onderzoeken en oplossen. Azure Operator Nexus biedt een voorgeschreven set opdrachten voor gegevensextract via az networkcloud baremetalmachine run-data-extract. Met deze opdrachten kunnen gebruikers diagnostische gegevens ophalen van een bare-metalcomputer.

De opdracht produceert een uitvoerbestand met de resultaten van het gegevensextract. De gegevens worden standaard verzonden naar het clusterbeheeropslagaccount. Er is ook een preview-methode waar gebruikers de clusterresource kunnen configureren met een opslagaccount en identiteit die toegang heeft tot het opslagaccount om de uitvoer te ontvangen.

Vereisten

  • In dit artikel wordt ervan uitgegaan dat de Azure-opdrachtregelinterface en de networkcloud opdrachtregelinterface-extensie zijn geïnstalleerd. Zie CLI-extensies installeren voor meer informatie.
  • De doel bare-metalmachine is ingeschakeld en klaar.
  • De syntaxis voor deze opdrachten is gebaseerd op de versie 0.3.0+ van de az networkcloud CLI.
  • Haal de naam van de beheerde clusterresourcegroep (cluster_MRG) op die u hebt gemaakt voor de clusterresource.

Toegang tot het clusterbeheeropslagaccount controleren

Notitie

De uitvoermethode voor het clusterbeheeropslagaccount wordt in de toekomst afgeschaft zodra de onboarding van het cluster naar Vertrouwde services is voltooid en de door de gebruiker beheerde opslagoptie volledig wordt ondersteund.

Als u de opslagmethode Clusterbeheer gebruikt, controleert u of u toegang hebt tot het opslagaccount van Clusterbeheer:

  1. Navigeer vanuit Azure Portal naar het opslagaccount van Clusterbeheer.
  2. Selecteer in de details van het opslagaccount de optie Opslagbrowser in het navigatiemenu aan de linkerkant.
  3. Selecteer in de details van de opslagbrowser de optie Blob-containers.
  4. Als u een 403 This request is not authorized to perform this operation. tijdje toegang krijgt tot het opslagaccount, moeten de firewallinstellingen van het opslagaccount worden bijgewerkt om het openbare IP-adres op te nemen.
  5. Vraag toegang aan door een ondersteuningsticket te maken via Portal op de Cluster Manager-resource. Geef het openbare IP-adres op waarvoor toegang is vereist.

PREVIEW: Opdrachtuitvoer verzenden naar een door de gebruiker opgegeven opslagaccount

Belangrijk

Houd er rekening mee dat deze methode voor het opgeven van een gebruikersopslagaccount voor opdrachtuitvoer in preview is. Deze methode mag alleen worden gebruikt met gebruikersopslagaccounts waarvoor geen firewall is ingeschakeld. Als voor uw omgeving de firewall van het opslagaccount is ingeschakeld, gebruikt u de bestaande uitvoermethode clusterbeheer.

Opslagbronnen maken en configureren

  1. Maak een opslagaccount of identificeer een bestaand opslagaccount dat u wilt gebruiken. Zie Een Azure-opslagaccount maken.
  2. Maak een blob-opslagcontainer in het opslagaccount. Zie Een container maken.
  3. Wijs de rol 'Inzender voor opslagblobgegevens' toe aan gebruikers en beheerde identiteiten die toegang nodig hebben tot de uitvoer van run-data-extract.
    1. Zie Een Azure-rol toewijzen voor toegang tot blobgegevens. De rol moet ook worden toegewezen aan een door de gebruiker toegewezen beheerde identiteit of de eigen door het systeem toegewezen beheerde identiteit van het cluster.
    2. Zie Beheerde identiteiten voor Azure-resources voor meer informatie over beheerde identiteiten.
    3. Als u de door het cluster toegewezen identiteit gebruikt, moet de door het systeem toegewezen identiteit worden toegevoegd aan het cluster voordat toegang kan worden verleend.
    4. Wanneer u een rol toewijst aan de door het systeem toegewezen identiteit van het cluster, moet u ervoor zorgen dat u de resource selecteert met het type 'Cluster (Operator Nexus).'

Het cluster configureren voor het gebruik van een door de gebruiker toegewezen beheerde identiteit voor opslagtoegang

Gebruik deze opdracht om een cluster te maken met een door de gebruiker beheerd opslagaccount en door de gebruiker toegewezen identiteit. Dit voorbeeld is een verkorte opdracht waarmee alleen de velden worden gemarkeerd die relevant zijn voor het toevoegen van de door de gebruiker beheerde opslag. Het is niet de volledige opdracht voor het maken van clusters.

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

Gebruik deze opdracht om een bestaand cluster te configureren voor een door de gebruiker opgegeven opslagaccount en door de gebruiker toegewezen identiteit. De updateopdracht kan ook worden gebruikt om indien nodig de locatie en identiteit van het opslagaccount te wijzigen.

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

Het cluster configureren voor het gebruik van een door het systeem toegewezen beheerde identiteit voor opslagtoegang

Gebruik deze opdracht om een cluster te maken met een door de gebruiker beheerd opslagaccount en door het systeem toegewezen identiteit. Dit voorbeeld is een verkorte opdracht waarmee alleen de velden worden gemarkeerd die relevant zijn voor het toevoegen van de door de gebruiker beheerde opslag. Het is niet de volledige opdracht voor het maken van clusters.

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

Gebruik deze opdracht om een bestaand cluster te configureren voor een door een gebruiker opgegeven opslagaccount en om een eigen door het systeem toegewezen identiteit te gebruiken. De updateopdracht kan ook worden gebruikt om de locatie van het opslagaccount te wijzigen.

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

Als u het cluster wilt wijzigen van een door de gebruiker toegewezen identiteit in een door het systeem toegewezen identiteit, moet commandOutputSettings eerst worden gewist met behulp van de opdracht in de volgende sectie en vervolgens instellen met behulp van deze opdracht.

De CommandOutputSettings van het cluster wissen

De CommandOutputSettings kunnen worden gewist en de uitvoer van run-data-extract terugsturen naar de opslag van de clusterbeheerder. Het wordt echter niet aanbevolen omdat het minder veilig is en de optie wordt verwijderd in een toekomstige release.

CommandOutputSettings moet echter worden gewist als u overschakelt van een door de gebruiker toegewezen identiteit naar een door het systeem toegewezen identiteit.

Gebruik deze opdracht om de CommandOutputSettings te wissen:

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}}'

De principal-id voor de beheerde identiteit weergeven

De id van de identiteitsresource kan worden gevonden door JSON-weergave te selecteren in de identiteitsresource; de id bevindt zich boven aan het deelvenster dat wordt weergegeven. De container-URL vindt u op het tabblad Instellingen -> Eigenschappen van de containerresource.

De CLI kan ook worden gebruikt om de identiteit en de bijbehorende principal-id-gegevens in het cluster weer te geven.

Voorbeeld:

az networkcloud cluster show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Cluster Name>

Voorbeeld van door het systeem toegewezen identiteit:

    "identity": {
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "type": "SystemAssigned"
    },

Voorbeeld van door de gebruiker toegewezen identiteit:

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

Een opdracht uitvoeren om gegevens uit te pakken

Met de opdracht voor het extraheren van gegevens worden een of meer vooraf gedefinieerde scripts uitgevoerd om gegevens uit een bare-metalcomputer te extraheren.

Waarschuwing

Microsoft biedt geen Operator Nexus API-aanroepen die verwachten dat gebruikersnaam en/of wachtwoord zonder opmaak moeten worden opgegeven. Houd er rekening mee dat alle verzonden waarden worden geregistreerd en worden beschouwd als blootgestelde geheimen, die moeten worden gedraaid en ingetrokken. De door Microsoft gedocumenteerde methode voor het veilig gebruik van geheimen is om ze op te slaan in een Azure Key Vault als u specifieke vragen of problemen hebt, dient u een aanvraag in via de Azure-portal.

De huidige lijst met ondersteunde opdrachten is

De syntaxis van de opdracht is:

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

Geef meerdere opdrachten op met json-indeling in --commands de optie. Elk command geeft opdracht en argumenten op. Geef voor een opdracht met meerdere argumenten een lijst op voor de arguments parameter. Zie Azure CLI Shorthand voor instructies over het bouwen van de --commands structuur.

Deze opdrachten kunnen lang worden uitgevoerd, zodat de aanbeveling moet worden ingesteld --limit-time-seconds op ten minste 600 seconden (10 minuten). De Debug optie of het uitvoeren van meerdere extracten kan langer duren dan 10 minuten.

In het antwoord wordt de bewerking asynchroon uitgevoerd en wordt een HTTP-statuscode van 202 geretourneerd. Zie de sectie Uitvoer weergeven voor meer informatie over het bijhouden van de voltooiing van de opdracht en het weergeven van het uitvoerbestand.

Gegevensverzameling hardwareondersteuning

In dit voorbeeld wordt de hardware-support-data-collection opdracht uitgevoerd en worden deze opgehaald SysInfo en TTYLog logboeken opgehaald van de Dell-server. Het script voert een racadm supportassist collect opdracht uit op de aangewezen bare-metalcomputer. Het resulterende tar.gz bestand bevat de uitvoer van het gezipte extract-opdrachtbestand in 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 Uitvoer

====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

Voorbeeldlijst met verzamelde hardwareondersteuningsbestanden

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-agentgegevens verzamelen

Gegevens worden verzameld met de mde-agent-information opdracht en opgemaakt als JSON naar /hostfs/tmp/runcommand/mde-agent-information.json. Het JSON-bestand bevindt zich in het zip-bestand voor het extraheren van gegevens in het opslagaccount. Het script voert een reeks mdatp opdrachten uit op de aangewezen bare-metalcomputer.

In dit voorbeeld wordt de mde-agent-information opdracht zonder argumenten uitgevoerd.

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 Uitvoer

====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

Voorbeeld van JSON-object dat is verzameld

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

Diagnostische gegevens over MDE-ondersteuning verzamelen

Gegevens die van de mde-support-diagnostics opdracht worden verzameld, maken gebruik van het hulpprogramma MDE Client Analyzer om informatie uit mdatp opdrachten en relevante logboekbestanden te bundelen. Het opslagaccountbestand tgz bevat een bestand met de zip naam mde-support-diagnostics-<hostname>.zip. De zip moet samen met eventuele ondersteuningsaanvragen worden verzonden om ervoor te zorgen dat de ondersteunende teams de logboeken kunnen gebruiken voor probleemoplossing en analyse van hoofdoorzaak, indien nodig.

In dit voorbeeld wordt de mde-support-diagnostics opdracht zonder argumenten uitgevoerd.

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 Uitvoer

====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

Nadat u het uitvoerresultaatbestand hebt gedownload, kunnen de ondersteuningsbestanden worden uitgepakt voor analyse.

Voorbeeld van een lijst met gegevens die worden verzameld door de MDE Client Analyzer

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

Status van hardwarepakket

Gegevens worden verzameld met de hardware-rollup-status opdracht en opgemaakt als JSON naar /hostfs/tmp/runcommand/rollupStatus.json. Het JSON-bestand bevindt zich in het zip-bestand voor het extraheren van gegevens in het opslagaccount. De verzamelde gegevens tonen de status van de computersubsystemen.

In dit voorbeeld wordt de hardware-rollup-status opdracht zonder argumenten uitgevoerd.

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 Uitvoer

====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

Voorbeeld van JSON verzameld

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

Cluster CVE-rapport genereren

Gegevens over beveiligingsproblemen worden verzameld met de cluster-cve-report opdracht en opgemaakt als JSON naar {year}-{month}-{day}-nexus-cluster-vulnerability-report.json. Het JSON-bestand bevindt zich in het zip-bestand voor het extraheren van gegevens in het opslagaccount. De verzamelde gegevens omvatten beveiligingsgegevens per containerinstallatiekopie in het cluster.

In dit voorbeeld wordt de cluster-cve-report opdracht zonder argumenten uitgevoerd.

Notitie

De doelcomputer moet een besturingsvlakknooppunt zijn of de actie wordt niet uitgevoerd.

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 Uitvoer

====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-rapportschema

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

Details van CVE-gegevens

De CVE-gegevens worden elke 24 uur per containerinstallatiekopieën vernieuwd of wanneer er een wijziging is in de Kubernetes-resource die verwijst naar de installatiekopieën.

Helm-releases verzamelen

Helm-releasegegevens worden verzameld met de collect-helm-releases opdracht en opgemaakt als json naar {year}-{month}-{day}-helm-releases.json. Het JSON-bestand bevindt zich in het zip-bestand voor het extraheren van gegevens in het opslagaccount. De verzamelde gegevens bevatten alle helm-releasegegevens van het cluster, die bestaan uit de standaardgegevens die worden geretourneerd bij het uitvoeren van de opdracht helm list.

In dit voorbeeld wordt de collect-helm-releases opdracht zonder argumenten uitgevoerd.

Notitie

De doelcomputer moet een besturingsvlakknooppunt zijn of de actie wordt niet uitgevoerd.

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 Uitvoer

====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-releaseschema

{
  "$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-statusuitvoer verzamelen

De servicestatus wordt verzameld met de platform-services-status opdracht. De uitvoer heeft een indeling voor tekst zonder opmaak en retourneert een overzicht van de status van de services op de host en de systemctl status voor elke gevonden service.

In dit voorbeeld wordt de platform-services-status opdracht zonder argumenten uitgevoerd.

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 Uitvoer

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

De uitvoer weergeven

De opdracht biedt een koppeling (als u clusterbeheeropslag gebruikt) of een andere opdracht (als u door de gebruiker opgegeven opslag gebruikt) om de volledige uitvoer te downloaden. Het bestand tar.gz bevat ook de uitvoer van het gezipte extract-opdrachtbestand. Download het uitvoerbestand van de opslagblob naar een lokale map door het mappad op te geven in het optionele argument --output-directory.

Waarschuwing

Als u het --output-directory argument gebruikt, worden alle bestanden in de lokale map overschreven die dezelfde naam hebben als de nieuwe bestanden die worden gemaakt.

Notitie

Opslagaccount kan worden vergrendeld, wat resulteert in 403 This request is not authorized to perform this operation. netwerk- of firewallbeperkingen. Raadpleeg de clusterbeheeropslag of de door de gebruiker beheerde opslagsecties voor procedures voor het controleren van de toegang.