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:
- Navigeer vanuit Azure Portal naar het opslagaccount van Clusterbeheer.
- Selecteer in de details van het opslagaccount de optie Opslagbrowser in het navigatiemenu aan de linkerkant.
- Selecteer in de details van de opslagbrowser de optie Blob-containers.
- 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. - 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
- Maak een opslagaccount of identificeer een bestaand opslagaccount dat u wilt gebruiken. Zie Een Azure-opslagaccount maken.
- Maak een blob-opslagcontainer in het opslagaccount. Zie Een container maken.
- Wijs de rol 'Inzender voor opslagblobgegevens' toe aan gebruikers en beheerde identiteiten die toegang nodig hebben tot de uitvoer van run-data-extract.
- 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.
- Zie Beheerde identiteiten voor Azure-resources voor meer informatie over beheerde identiteiten.
- 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.
- 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
Problemen met de SupportAssist/TSR-verzameling voor Dell oplossen
Opdrachtnaam:hardware-support-data-collection
Argumenten: Type logboeken aangevraagdSysInfo
- SysteeminformatieTTYLog
- Storage TTYLog-gegevensDebug
- foutopsporingslogboeken
MDE-agentgegevens (Microsoft Defender voor Eindpunt s) verzamelen
Opdrachtnaam:mde-agent-information
Argumenten: GeenDiagnostische ondersteuningslogboeken voor MDE verzamelen
Opdrachtnaam:mde-support-diagnostics
Argumenten: GeenDell Hardware Rollup-status verzamelen
Opdrachtnaam:hardware-rollup-status
Argumenten: GeenCluster CVE-rapport genereren
Opdrachtnaam:cluster-cve-report
Argumenten: GeenHelm-releases verzamelen
Opdrachtnaam:collect-helm-releases
Argumenten: GeenUitvoer verzamelen
systemctl status
Opdrachtnaam:platform-services-status
Argumenten: Geen
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.