Felsöka problem med datorer utan operativsystem med kommandot az networkcloud baremetalmachine run-data-extract
Artikel
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.
Skicka kommandoutdata till ett användarangivet lagringskonto
För att få åtkomst till utdata behöver användarna rätt åtkomst till lagringsbloben. Information om hur du tilldelar roller till lagringskonton finns i Tilldela en Azure-roll för åtkomst till blobdata.
Rensa klustrets CommandOutputSettings
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.
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:
Azure CLI
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}}'
INAKTUELL METOD: Kontrollera åtkomsten till Klusterhanterarens lagringskonto
Viktigt
Klusterhanterarens lagringskonto är avsett för borttagning senast i april 2025. Om du använder den här metoden i dag för kommandoutdata kan du överväga att konvertera till att använda ett användarangivet lagringskonto.
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.
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 inte 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 Portal.
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.
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.
====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
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.
====Action Command Output====
Executing mde-support-diagnostics command
[2024-01-2316:07:37.588][INFO] XMDEClientAnalyzer Version: 1.3.2
[2024-01-2316:07:38.367][INFO] Top Command output: [/tmp/top_output_2024_01_23_16_07_37mel0nue0.txt]
[2024-01-2316:07:38.367][INFO] Top Command Summary: [/tmp/top_summary_2024_01_23_16_07_370zh7dkqn.txt]
[2024-01-2316:07:38.367][INFO] Top Command Outliers: [/tmp/top_outlier_2024_01_23_16_07_37aypcfidh.txt]
[2024-01-2316:07:38.368][INFO] [MDE Diagnostic]
[2024-01-2316:07:38.368][INFO] Collecting MDE Diagnostic
[2024-01-2316:07:38.613][WARNING] mde is not running
[2024-01-2316:07:41.343][INFO][SLEEP][3sec] waiting for agent to create diagnostic package
[2024-01-2316:07:44.347][INFO] diagnostic package path: /var/opt/microsoft/mdatp/wdavdiag/5b1edef9-3b2a-45c1-a45d-9e7e4b6b869e.zip
[2024-01-2316:07:44.347][INFO] Successfully created MDE diagnostic zip
[2024-01-2316:07:44.348][INFO] Adding mde_diagnostic.zip to report directory
[2024-01-2316: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
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.
====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
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.
Anteckning
Måldatorn måste vara en kontrollplansnod eller så körs inte åtgärden.
====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
JSON
{
"$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."
},
"clusterId": {
"type": "string",
"description": "The resource ID of the cluster."
},
"runtimeVersion": {
"type": "string",
"description": "The version of the runtime."
},
"managementVersion": {
"type": "string",
"description": "The version of the management software."
},
"vulnerabilitySummary": {
"type": "object",
"properties": {
"uniqueVulnerabilities": {
"type": "object",
"properties": {
"critical": { "type": "integer" },
"high": { "type": "integer" },
"medium": { "type": "integer" },
"low": { "type": "integer" },
"unknown": { "type": "integer" }
},
"required": ["critical", "high", "medium", "low", "unknown"]
},
"totalVulnerabilities": {
"type": "object",
"properties": {
"critical": { "type": "integer" },
"high": { "type": "integer" },
"medium": { "type": "integer" },
"low": { "type": "integer" },
"unknown": { "type": "integer" }
},
"required": ["critical", "high", "medium", "low", "unknown"]
}
},
"required": ["uniqueVulnerabilities", "totalVulnerabilities"]
}
},
"required": [
"dateRetrieved",
"platform",
"resource",
"clusterId",
"runtimeVersion",
"managementVersion",
"vulnerabilitySummary"
]
},
"containers": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "object",
"properties": {
"namespace": {
"type": "array",
"description": "The namespaces where the container image is in-use.",
"items": { "type": "string" }
},
"digest": {
"type": "string",
"description": "The digest of the container image."
},
"observedCount": {
"type": "integer",
"description": "The number of times the container image has been observed."
},
"os": {
"type": "object",
"properties": {
"family": {
"type": "string",
"description": "The family of the operating system."
}
},
"required": ["family"]
},
"vulnerabilities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": { "type": "string" },
"vulnerabilityID": { "type": "string" },
"fixedVersion": { "type": "string" },
"installedVersion": { "type": "string" },
"referenceLink": { "type": "string", "format": "uri" },
"publishedDate": { "type": "string", "format": "date-time" },
"dataSource": { "type": "string" },
"score": { "type": "number" },
"severity": { "type": "string" },
"severitySource": { "type": "string" },
"resource": { "type": "string" },
"target": { "type": "string" },
"packageType": { "type": "string" },
"exploitAvailable": { "type": "boolean" }
},
"required": [
"title",
"vulnerabilityID",
"fixedVersion",
"installedVersion",
"referenceLink",
"publishedDate",
"dataSource",
"score",
"severity",
"severitySource",
"resource",
"target",
"packageType",
"exploitAvailable"
]
}
}
},
"required": ["namespace", "digest", "os", "observedCount", "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 listkörs .
Det här exemplet kör collect-helm-releases kommandot utan argument.
Anteckning
Måldatorn måste vara en kontrollplansnod eller så körs inte åtgärden.
====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
Tjänststatus samlas in med platform-services-status kommandot . Utdata är i oformaterad text och returnerar en översikt över statusen för tjänsterna på värden och systemctl status för varje hittad tjänst.
Det här exemplet kör platform-services-status kommandot utan argument.
====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-1206:33:40 UTC; 11h ago
Main PID: 11663 (code=exited, status=0/SUCCESS)
CPU: 5ms
Nov 1206:33:39 rack1compute01 systemd[1]: Starting Arc-unenrollment upon shutdown service...
Nov 1206: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
Med argumentet --output-directory skrivs alla filer i den lokala katalogen över som har samma namn som de nya filer som skapas.
Anteckning
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.
Azure HPC är en specialbyggd molnfunktion för HPC & AI-arbetsbelastning, med hjälp av ledande processorer och HPC-klass InfiniBand-anslutning, för att leverera bästa programprestanda, skalbarhet och värde. Med Azure HPC kan användarna frigöra innovation, produktivitet och affärsflexialitet genom ett brett utbud av HPC- och AI-tekniker som kan allokeras dynamiskt när dina affärs- och tekniska behov ändras. Den här utbildningsvägen är en serie moduler som hjälper dig att komma igång med Azure HPC – du kan väl