Felsöka problem med datorer utan operativsystem med kommandot az networkcloud baremetalmachine run-data-extract
Det kan finnas situationer där en användare behöver undersöka och lösa problem med en lokal dator utan operativsystem. Azure Operator Nexus tillhandahåller en föreskriven uppsättning dataextraheringskommandon via az networkcloud baremetalmachine run-data-extract
. Med de här kommandona kan användarna hämta diagnostikdata från en dator utan operativsystem.
Kommandot skapar en utdatafil som innehåller resultatet av dataextraktet. Som standard skickas data till Klusterhanterarens lagringskonto. Det finns också en förhandsgranskningsmetod där användarna kan konfigurera klusterresursen med ett lagringskonto och en identitet som har åtkomst till lagringskontot för att ta emot utdata.
Förutsättningar
- Den här artikeln förutsätter att Azure-kommandoradsgränssnittet och kommandoradsgränssnittstillägget
networkcloud
är installerade. Mer information finns i Installera CLI-tillägg. - Målmaskinen utan operativsystem är på och klar.
- Syntaxen för dessa kommandon baseras på 0.3.0+-versionen av
az networkcloud
CLI. - Hämta namnet på klusterhanterad resursgrupp (cluster_MRG) som du skapade för klusterresursen.
Kontrollera åtkomsten till Klusterhanterarens lagringskonto
Kommentar
Utdatametoden för Cluster Manager-lagringskontot kommer att bli inaktuell i framtiden när klusterinmatningen till betrodda tjänster har slutförts och det användarhanterade lagringsalternativet stöds fullt ut.
Om du använder Cluster Manager-lagringsmetoden kontrollerar du att du har åtkomst till Klusterhanterarens lagringskonto:
- Från Azure Portal går du till Klusterhanterarens lagringskonto.
- I information om lagringskontot väljer du Lagringswebbläsare på navigeringsmenyn till vänster.
- I information om Storage-webbläsaren väljer du blobcontainrar.
- Om du får ett
403 This request is not authorized to perform this operation.
tag åtkomst till lagringskontot måste lagringskontots brandväggsinställningar uppdateras för att inkludera den offentliga IP-adressen. - Begär åtkomst genom att skapa ett supportärende via portalen på Cluster Manager-resursen. Ange den offentliga IP-adress som kräver åtkomst.
FÖRHANDSVERSION: Skicka kommandoutdata till ett användarangivet lagringskonto
Viktigt!
Observera att den här metoden för att ange ett användarkonto för kommandoutdata finns i förhandsversionen. Den här metoden bör endast användas med användarkonton som inte har brandvägg aktiverat. Om din miljö kräver att brandväggen för lagringskontot är aktiverad använder du den befintliga cluster manager-utdatametoden.
Skapa och konfigurera lagringsresurser
- Skapa ett lagringskonto eller identifiera ett befintligt lagringskonto som du vill använda. Se Skapa ett Azure Storage-konto.
- Skapa en bloblagringscontainer i lagringskontot. Se Skapa en container.
- Tilldela rollen "Storage Blob Data Contributor" till användare och hanterade identiteter som behöver åtkomst till run-data-extract-utdata.
- Se Tilldela en Azure-roll för åtkomst till blobbdata. Rollen måste också tilldelas till antingen en användartilldelad hanterad identitet eller klustrets egen systemtilldelade hanterade identitet.
- Mer information om hanterade identiteter finns i Hanterade identiteter för Azure-resurser.
- Om du använder klustrets systemtilldelade identitet måste den systemtilldelade identiteten läggas till i klustret innan den kan beviljas åtkomst.
- När du tilldelar en roll till klustrets systemtilldelade identitet kontrollerar du att du väljer resursen med typen "Kluster (Operator Nexus)."
Konfigurera klustret att använda en användartilldelad hanterad identitet för lagringsåtkomst
Använd det här kommandot för att skapa ett kluster med ett användarhanterat lagringskonto och användartilldelad identitet. Observera att det här exemplet är ett förkortat kommando som bara markerar fälten som är relevanta för att lägga till användarhanterad lagring. Det är inte det fullständiga kommandot för att skapa kluster.
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>"
Använd det här kommandot för att konfigurera ett befintligt kluster för ett användarangivet lagringskonto och användartilldelad identitet. Uppdateringskommandot kan också användas för att ändra lagringskontots plats och identitet om det behövs.
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>"
Konfigurera klustret att använda en systemtilldelad hanterad identitet för lagringsåtkomst
Använd det här kommandot för att skapa ett kluster med ett användarhanterat lagringskonto och en systemtilldelad identitet. Observera att det här exemplet är ett förkortat kommando som bara markerar fälten som är relevanta för att lägga till användarhanterad lagring. Det är inte det fullständiga kommandot för att skapa kluster.
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>"
Använd det här kommandot för att konfigurera ett befintligt kluster för ett lagringskonto som tillhandahålls av användaren och för att använda en egen systemtilldelad identitet. Uppdateringskommandot kan också användas för att ändra lagringskontots plats.
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>"
Om du vill ändra klustret från en användartilldelad identitet till en systemtilldelad identitet måste CommandOutputSettings först rensas med kommandot i nästa avsnitt och sedan ställas in med det här kommandot.
Rensa klustrets CommandOutputSettings
CommandOutputSettings kan rensas och dirigera run-data-extract-utdata tillbaka till klusterhanterarens lagring. Det rekommenderas dock inte eftersom det är mindre säkert och alternativet tas bort i en framtida version.
CommandOutputSettings måste dock rensas om du byter från en användartilldelad identitet till en systemtilldelad identitet.
Använd det här kommandot för att rensa CommandOutputSettings:
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}}'
Visa huvud-ID:t för den hanterade identiteten
Du hittar identitetsresurs-ID:t genom att välja "JSON-vy" på identitetsresursen. ID:t finns överst i panelen som visas. Container-URL:en finns på fliken Inställningar –> egenskaper för containerresursen.
CLI kan också användas för att visa identiteten och de associerade huvudnamns-ID:t i klustret.
Exempel:
az networkcloud cluster show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Cluster Name>
Exempel på systemtilldelad identitet:
"identity": {
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"type": "SystemAssigned"
},
Exempel på användartilldelad identitet:
"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"
}
}
},
Köra ett run-data-extract-kommando
Kommandot kör dataextrahering kör ett eller flera fördefinierade skript för att extrahera data från en dator utan operativsystem.
Varning
Microsoft tillhandahåller eller stöder inga operatörs-Nexus API-anrop som förväntar sig att användarnamn och/eller lösenord i klartext ska anges. Observera att alla värden som skickas loggas och anses vara exponerade hemligheter, som ska roteras och återkallas. Den Microsoft-dokumenterade metoden för säker användning av hemligheter är att lagra dem i ett Azure Key Vault, om du har specifika frågor eller problem skickar du en begäran via Azure-portalen.
Den aktuella listan över kommandon som stöds är
SupportAssist/TSR-samling för Dell-felsökning
Kommandonamn:hardware-support-data-collection
Argument: Typ av begärda loggarSysInfo
- SysteminformationTTYLog
– TTYLog-lagringsdataDebug
– felsöka loggar
Samla in MDE-agentinformation (Microsoft Defender för Endpoint s)
Kommandonamn:mde-agent-information
Argument: IngenSamla in MDE-diagnostiksupportloggar
Kommandonamn:mde-support-diagnostics
Argument: IngenSamla in dells samlade maskinvarustatus
Kommandonamn:hardware-rollup-status
Argument: IngenGenerera kluster-CVE-rapport
Kommandonamn:cluster-cve-report
Argument: IngenSamla in Helm-versioner
Kommandonamn:collect-helm-releases
Argument: IngenSamla in
systemctl status
utdata
Kommandonamn:platform-services-status
Argument: Ingen
Kommandosyntaxen är:
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>"
Ange flera kommandon med json-format i --commands
alternativet . Var command
och en anger kommando och argument. För ett kommando med flera argument anger du som en lista till parametern arguments
. Mer information om hur du skapar strukturen finns i --commands
Azure CLI Shorthand.
Dessa kommandon kan vara tidskrävande så rekommendationen är att ange --limit-time-seconds
till minst 600 sekunder (10 minuter). Alternativet Debug
eller att köra flera extraheringar kan ta längre tid än 10 minuter.
I svaret utför åtgärden asynkront och returnerar en HTTP-statuskod från 202. Se avsnittet Visa utdata för mer information om hur du spårar slutförande av kommandon och visar utdatafilen.
Insamling av maskinvarusupportdata
Det här exemplet kör hardware-support-data-collection
kommandot och hämtar SysInfo
och TTYLog
loggar från Dell Server. Skriptet kör ett racadm supportassist collect
kommando på den avsedda bare metal-datorn. Den resulterande tar.gz filen innehåller zippade kommandofilens utdata för extrahering i 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
Utdata
====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
Exempellista över maskinvarustödfiler som samlats in
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..]
Samla in MDE-agentinformation
Data samlas in med mde-agent-information
kommandot och formateras som JSON till /hostfs/tmp/runcommand/mde-agent-information.json
. JSON-filen finns i zip-filen för dataextrakt som finns i lagringskontot. Skriptet kör en sekvens med mdatp
kommandon på den avsedda bare metal-datorn.
Det här exemplet kör mde-agent-information
kommandot utan argument.
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
Utdata
====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
Exempel på JSON-objekt som samlats in
{
"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
}
}
Samla in MDE-supportdiagnostik
Data som samlas in från mde-support-diagnostics
kommandot använder verktyget MDE Client Analyzer för att paketera information från mdatp
kommandon och relevanta loggfiler. Lagringskontofilen tgz
innehåller en zip
fil med namnet mde-support-diagnostics-<hostname>.zip
. zip
Bör skickas tillsammans med eventuella supportförfrågningar för att säkerställa att stödteamen kan använda loggarna för felsökning och rotorsaksanalys, om det behövs.
Det här exemplet kör mde-support-diagnostics
kommandot utan argument.
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
Utdata
====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
När du har laddat ned körningsresultatfilen kan stödfilerna packas upp för analys.
Exempellista över information som samlas in av MDE-klientanalyseraren
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...]
Sammanslagningsstatus för maskinvara
Data samlas in med hardware-rollup-status
kommandot och formateras som JSON till /hostfs/tmp/runcommand/rollupStatus.json
. JSON-filen finns i zip-filen för dataextrakt som finns i lagringskontot. De data som samlas in visar hälsotillståndet för datorundersystemen.
Det här exemplet kör hardware-rollup-status
kommandot utan argument.
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
Utdata
====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
Exempel på JSON som samlats in
{
"@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..]
Generera kluster-CVE-rapport
Sårbarhetsdata samlas in med cluster-cve-report
kommandot och formateras som JSON till {year}-{month}-{day}-nexus-cluster-vulnerability-report.json
. JSON-filen finns i zip-filen för dataextrakt som finns i lagringskontot. De data som samlas in innehåller sårbarhetsdata per containeravbildning i klustret.
Det här exemplet kör cluster-cve-report
kommandot utan argument.
Kommentar
Måldatorn måste vara en kontrollplansnod, annars körs inte åtgärden.
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
Utdata
====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"]
}
CVE-datainformation
CVE-data uppdateras per containeravbildning var 24:e timme eller när det sker en ändring av Kubernetes-resursen som refererar till avbildningen.
Samla in Helm-versioner
Helm-versionsdata samlas in med collect-helm-releases
kommandot och formateras som json till {year}-{month}-{day}-helm-releases.json
. JSON-filen finns i zip-filen för dataextrakt som finns i lagringskontot. De data som samlas in innehåller all helm-versionsinformation från klustret, som består av standarddata som returneras när kommandot helm list
körs .
Det här exemplet kör collect-helm-releases
kommandot utan argument.
Kommentar
Måldatorn måste vara en kontrollplansnod, annars körs inte åtgärden.
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
Utdata
====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-versionsschema
{
"$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"
]
}
Samla in Systemctl-statusutdata
Tjänststatus samlas in med platform-services-status
kommandot . Utdata är i oformaterad textformat och returnerar en översikt över statusen för tjänsterna på värden samt systemctl status
för varje hittad tjänst.
Det här exemplet kör platform-services-status
kommandot utan argument.
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
Utdata
====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..]
Visa utdata
Kommandot innehåller en länk (om du använder klusterhanterarens lagring) eller ett annat kommando (om du använder användarens lagring) för att ladda ned de fullständiga utdata. Den tar.gz filen innehåller också zippade kommandofilutdata för extrahering. Ladda ned utdatafilen från lagringsbloben till en lokal katalog genom att ange katalogsökvägen i det valfria argumentet --output-directory
.
Varning
--output-directory
Om du använder argumentet skrivs alla filer i den lokala katalogen över som har samma namn som de nya filer som skapas.
Kommentar
Lagringskontot kan vara låst på grund 403 This request is not authorized to perform this operation.
av nätverks- eller brandväggsbegränsningar. Se klusterhanterarens lagring eller användarhanterade lagringsavsnitt för procedurer för att verifiera åtkomsten.