NetWorker: Feilsøking og sorteringsveiledning for REST API
Sammendrag: Denne kunnskapsartikkelen gir en oversikt over grunnleggende feilsøking for RESTAPI-relaterte problemer.
Instruksjoner
Se på YouTube
Tilleggsinformasjon
Startveiledning
REST (Representational State Transfer) API (Application Programming Interface) gir programmatisk tilgang til NetWorker-tjenesten for databeskyttelse. Ved hjelp av REST API kan NetWorker-brukere bygge klientprogrammer for å automatisere NetWorker-operasjoner. NetWorker REST API installeres som en del av NetWorker-serverinstallasjonen i samme Apache Tomcat-beholder som NetWorker-godkjenningstjenestene. Godkjenningen utføres med samme legitimasjon som brukes for NetWorker Management Console.
REST API tillater samhandling med ressurser identifisert av URI-adresser (Uniform Resource Identifier). Den bruker HTTP-verb (HEAD, GET, PUT, POST, DELETE) for å samhandle med Uniform Resource Identifier (URI) på en tilstandsløs måte. Serveren inneholder ingen klienttilstand, hver melding er selvbeskrivende.
Dette dokumentet omhandler samhandlingen med NetWorker-ressurser ved hjelp av brukerskrevne REST API-kall. Må ikke forveksles med REST API-kall som brukes av backend NetWorker-operasjoner.
Koble til NetWorker:
Det finnes flere forskjellige REST API-klientteknologier som kan brukes til å kjøre kommandoene for å koble til NetWorker. Inkludert curl kommandoer (Linux), PowerShell curl.exe (Windows) og nettleserutvidelser for REST API-klient.
Det er tre overskrifter som trengs for tilkobling:
- Content-Type:
application/json - Godta:
application/json - Godkjenning: Grunnleggende med Base 64-kodet brukernavn og passord
I miljøer der det er flere NetWorker-datasoner som er godkjent via én enkelt NetWorker AUTC-server, kreves det et ekstra meldingshode:
X-NW-AUTHC-BASE-URL:AUTHC_HOSTNAME_OR_IP:AUTHC_PORT
NetWorker REST API vises i følgende basis-URI:
https://[nw-server-hostname]:9090/nwrestapi/v3
Det finnes ulike versjoner av API-er. Forbedringer har blitt rullet ut siden REST API ble implementert. Endringer i disse endepunktene er beskrevet i: https://developer.dell.com/apis/2378/versions/v3/docs/GettingStarted.md
Det fullstendige json-skjemaet er tilgjengelig på:
https://[nw-server-hostname]:9090/nwrestapi/v3/schemas/swagger.json
| Suksesskode | Gjelder HTTP-metode | Innhold i responskroppen | Beskrivelse |
| 200 | FÅ | Representasjon av ressurser | OK. Operasjonene som resulterer i denne HTTP-tilstanden, har ressursrepresentasjonen i nyttelasten. |
| 201 | INNLEGG | Tom respons | Opprettet. Denne statusen angir at en ny ressurs eller en tiltenkt jobb er opprettet, og at den tilknyttede URL-adressen er tilgjengelig fra plasseringshodet i svaret. |
| 202 | INNLEGG | Detaljer som svar | Akseptert. Dette indikerer at API-forespørselen er godtatt. Nyttelasten angir at URL-adressen til sporingsressursforekomsten er tilgjengelig fra lokasjonshodet i svaret. |
| 204 | PUT eller DELETE | Tom respons | Ikke noe innhold. Tilstanden indikerer at den utførte operasjonen var vellykket. Det er imidlertid ingen ytterligere detaljer som skal gis. |
| Feilkode | Beskrivelse |
| 400 | Dårlig forespørsel |
| 401 | Ugyldig legitimasjon |
| 403 | Ikke tilstrekkelige rettigheter |
| 404 | Finner ikke ressursen |
| 405 | Metode ikke tillatt |
| 406 | Ugyldig nasjonal innstilling er angitt. |
| 500 | Intern serverfeil |
REST API-funksjoner
| HTTP-metode | Handling | Beskrivelse |
| FÅ | Lese | Henter ressursrepresentasjonen. |
| INNLEGG | Opprett | Oppretter en ny ressurs. |
| SETTE | Oppdater | Oppdaterer en eksisterende ressurs. |
| SLETT | Fjern | Sletter en eksisterende ressurs. |
Noen eksempler:
GET:
Liste over alle klienter.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients
Bare én klient, som bare viser tre felt (vertsnavn, saveSets og protectionGroups)
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?fl=hostname,saveSets,protectionGroups&q=hostname:nwserver121
Oppgi beskyttelsesgruppene som én klient er i.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?fl=protectionGroups&q=hostname:nwserver121
Vis gjeldende varsler.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/alerts
Vis nylig mislykkede jobber.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/jobs?q=completionStatus:"Failed"&fl=clientHostname,startTime,name,message
Vis arbeidsflytene i én policy (kalt WinFS i dette eksemplet).
https://[nw-server-hostname]:9090/nwrestapi/v3/global/protectionpolicies/WinFS/workflows
Oppgi egenskapene for bare én lagringssettforekomst (som definert av klientvertsnavn og lagringssett).
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?q=hostname:vm-lego-231 and saveSets:"/etc"
INNLEGG:
Start en arbeidsflythandling.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/protectionpolicies/Angela/workflows/WinFS/op/backup
JSON Body:
{
}
Opprett en ny klientforekomst (med standardverdier for alle egenskaper unntatt de fire som er oppført).
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients
JSON Body
{
"hostname": "vm-lego-231",
"backupType": "Filesystem",
"saveSets": [ "/etc" ],
"protectionGroups" : [ "LinuxFS" ]
Eksempler på kommandolinjer:
Linux:
For systemer som har python Installert:
curl -k -u Administrator:'ADMINISTRATOR_PASSWORD' https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/ENDPOINT | python -m json.tool
jq Installert:
curl -k -u Administrator:'ADMINISTRATOR_PASSWORD' https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/ENDPOINT | jq
[root@nsr ~]# curl -k -u Administrator https://nsr.amer.lan:9090/nwrestapi/v3/global/devices/ddve01.amer.lan_VMBackupDevice01 | jq
Enter host password for user 'Administrator':
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2820 0 2820 0 0 72307 0 --:--:-- --:--:-- --:--:-- 72307
{
"accessWeight": 1,
"accesses": "66",
"activeSessions": [],
"autoMediaManagement": false,
"autoRecoverDtf": "None",
"cdi": "NotUsed",
"cleaningRequired": false,
"consecutiveErrors": "0",
"currentNSRMMDCount": "1",
"dataDomainFibreChannel": false,
"dataDomainRetentionLockMode": "None",
"deviceAccessInfo": "ddve01.amer.lan:/nsr/VMBackupDevice01",
"deviceBlockSize": "HandlerDefault",
"dltWormCapable": false,
"idleDeviceTimeout": 0,
"jukeboxDevice": "No",
"links": [
{
"href": "https://nsr.amer.lan:9090/nwrestapi/v3/global/devices/ddve01.amer.lan_VMBackupDevice01/opstatus",
"title": "Volume operation status"
},
{
"href": "https://nsr.amer.lan:9090/nwrestapi/v3/global/devices/ddve01.amer.lan_VMBackupDevice01/op/label",
"title": "Label volume"
},
{
"href": "https://nsr.amer.lan:9090/nwrestapi/v3/global/devices/ddve01.amer.lan_VMBackupDevice01/op/mount",
"title": "Mount volume"
},
{
"href": "https://nsr.amer.lan:9090/nwrestapi/v3/global/devices/ddve01.amer.lan_VMBackupDevice01/op/unmount",
"title": "Unmount volume"
},
{
"href": "https://nsr.amer.lan:9090/nwrestapi/v3/global/devices/ddve01.amer.lan_VMBackupDevice01/op/verifylabel",
"title": "Verify volume label"
},
{
"href": "https://nsr.amer.lan:9090/nwrestapi/v3/global/devices/ddve01.amer.lan_VMBackupDevice01/op/erase",
"title": "Erase the device"
},
{
"href": "https://nsr.amer.lan:9090/nwrestapi/v3/global/volumes/4267924096",
"title": "Volume"
}
],
"longVolumeId": "703cdc60-00000005-fe635a80-66635a80-00045000-592bbe56",
"maxConsecutiveErrors": 20,
"maxNsrmmdCount": 4,
"maxSession": 60,
"mediaFamily": "Disk",
"mediaType": "Data Domain",
"message": "mounted Data Domain disk VMBackupPool.001",
"mountedVolume": "VMBackupPool.001",
"name": "ddve01.amer.lan_VMBackupDevice01",
"ndmp": false,
"operationParameters": [],
"password": "*******",
"pathId": "53f9269d-00000010-e2f994bd-66635a7e-00035000-592bbe56",
"readOnly": false,
"remoteUser": "ddboost",
"reserveRelease": "None",
"resourceId": {
"id": "178.0.90.20.0.0.0.0.196.80.99.102.192.168.9.150",
"sequence": 256
},
"saveLockout": 0,
"saveMountTimeout": 30,
"secureMultiTenancy": false,
"sharedDevices": "Done",
"statistics": [
"elapsed = 17310",
"errors = 0",
"last rate = 0",
"max clients = 0",
"file marks = 0",
"rewinds = 0",
"files skipped = 0",
"records skipped = 0",
"current file = 0",
"current record = 0",
"seek files = 0",
"seek records = 0",
"estimated kb = 0",
"amount kb = 0",
"file amount kb = 0",
"sessions = 0"
],
"status": "Enabled",
"suspectedDevice": false,
"tapeAlertsCritical": [],
"tapeAlertsInformation": [],
"tapeAlertsWarning": [],
"targetSession": 20,
"unlabeledVolumeLoaded": false,
"verifyLabelOnEject": false,
"volumeBlockSize": "256 KB",
"volumeCurrentCapacity": "0 KB",
"volumeErrorNumber": "0",
"volumeExpiration": "Sun Jun 7 15:07:44 2026",
"volumeId": "4267924096",
"volumeLabel": "VMBackupPool.001",
"volumePool": "VMBackupPool",
"warnOnSuspectVolumesInPercent": 80,
"wormCapable": false,
"wormCartridgePresent": false,
"writeEnabled": true
}
[root@nsr ~]#
Windows (PowerShell):
curl.exe -k -u Administrator:'ADMISTRATOR_PASSWORD' "https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/ENDPOINT" | ConvertFrom-Json | ConvertTo-Json -Depth 50
Eksempel:
PS C:\Users\Administrator.NETWORKER> curl.exe -k -u Administrator:'!Password1' "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/devices/dd3300-ff28_Backup" | ConvertFrom-Json | ConvertTo-Json -Depth 50
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2824 0 2824 0 0 20311 0 --:--:-- --:--:-- --:--:-- 21074
{
"accessWeight": 1,
"accesses": "45",
"activeSessions": [
],
"autoMediaManagement": false,
"autoRecoverDtf": "None",
"cdi": "NotUsed",
"cleaningRequired": false,
"consecutiveErrors": "0",
"currentNSRMMDCount": "1",
"dataDomainFibreChannel": false,
"dataDomainRetentionLockMode": "None",
"deviceAccessInfo": "dd3300-ff28:/win-srvr02/Backup",
"deviceBlockSize": "HandlerDefault",
"dltWormCapable": false,
"idleDeviceTimeout": 0,
"jukeboxDevice": "No",
"links": [
{
"href": "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/devices/dd3300-ff28_Backup/opstatus",
"title": "Volume operation status"
},
{
"href": "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/devices/dd3300-ff28_Backup/op/label",
"title": "Label volume"
},
{
"href": "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/devices/dd3300-ff28_Backup/op/mount",
"title": "Mount volume"
},
{
"href": "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/devices/dd3300-ff28_Backup/op/unmount",
"title": "Unmount volume"
},
{
"href": "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/devices/dd3300-ff28_Backup/op/verifylabel",
"title": "Verify volume label"
},
{
"href": "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/devices/dd3300-ff28_Backup/op/erase",
"title": "Erase the device"
},
{
"href": "https://win-srvr02.networker.lan:9090/nwrestapi/v3/global/volumes/3963713",
"title": "Volume"
}
],
"longVolumeId": "0aea479c-00000005-003c7b41-693c7b41-00025000-e6b5bb56",
"maxConsecutiveErrors": 20,
"maxNsrmmdCount": 4,
"maxSession": 60,
"mediaFamily": "Disk",
"mediaType": "Data Domain",
"message": "writing, done",
"mountedVolume": "win_srvr02.networker.lan.dddefault.001",
"name": "dd3300-ff28_Backup",
"ndmp": false,
"operationParameters": [
],
"password": "*******",
"pathId": "a30a7858-00000010-5ded760e-693c7b41-00015000-e6b5bb56",
"readOnly": false,
"remoteUser": "loudekboost",
"reserveRelease": "None",
"resourceId": {
"id": "176.0.164.7.0.0.0.0.69.121.60.105.192.168.0.22",
"sequence": 100
},
"saveLockout": 0,
"saveMountTimeout": 30,
"secureMultiTenancy": false,
"sharedDevices": "Done",
"statistics": [
"elapsed = 228514",
"errors = 0",
"last rate = 0",
"max clients = 0",
"file marks = 0",
"rewinds = 0",
"files skipped = 0",
"records skipped = 0",
"current file = 0",
"current record = 0",
"seek files = 0",
"seek records = 0",
"estimated kb = 0",
"amount kb = 0",
"file amount kb = 52206",
"sessions = 0"
],
"status": "Enabled",
"suspectedDevice": false,
"tapeAlertsCritical": [
],
"tapeAlertsInformation": [
],
"tapeAlertsWarning": [
],
"targetSession": 20,
"unlabeledVolumeLoaded": false,
"verifyLabelOnEject": false,
"volumeBlockSize": "256 KB",
"volumeCurrentCapacity": "0 KB",
"volumeErrorNumber": "0",
"volumeExpiration": "Sun Dec 12 15:29:53 2027",
"volumeId": "3963713",
"volumeLabel": "win_srvr02.networker.lan.dddefault.001",
"volumePool": "Data Domain Default",
"warnOnSuspectVolumesInPercent": 80,
"wormCapable": false,
"wormCartridgePresent": false,
"writeEnabled": true
}
Nødvendig informasjon for kundestøtte
Miljø:
- Navn på NetWorker-server
- NetWorker-versjon og buildnummer
- NetWorker-serververtsoperativsystemtype og -versjon
hostname
strings /usr/sbin/nsrd | grep -i "(#)"
cat /etc/*release
uname -a
Windows:
nsrwatch
Detaljer om problemet:
- Forklar hvilken REST API-operasjon som utføres (GET, POST, PUT, DELETE), URI-en som brukes, eventuelt JSON-innhold (der det er aktuelt).
- REST API-svarkode og eventuell feilmelding som vises.
- Har den første tilkoblingen og autorisasjonen vært vellykket mellom REST API-klienten og NetWorker?
Logg samling:
- Gjengitt daemon.raw loggfil fra NetWorker-serveren:
- Linux:
/nsr/logs/daemon.raw - Windows:
C:\Program Files\EMC NetWorker\nsr\logs\daemon.raw - NetWorker: Hvordan du bruker nsr_render_log
- Linux:
- REST API-logger fra NetWorker-serveren:
/nsr/logs/restapi(Linux) ellerEMC NetWorker\nsr\logs\restapi(Vinduer) - Hvis du har godkjenningsproblemer, kan du se standard pålogging for NetWorker-godkjenning
/nsr/authc/logs(Linux) eller..\EMC NetWorker\nsr\authc-server\tomcat\logs(Vinduer)
Debug:
Ytelse:
Før du vurderer ytelsesrelaterte problemer med REST API, er det viktig å fastslå om problemet er observert på alle REST API-funksjoner eller bestemte funksjoner. GET-forespørsler på globale endepunkter som klienter, jobber, volumer og så videre, kan for eksempel hente mye data. Denne typen forespørsler kan føre til høy systemressursutnyttelse og tidsavbrudd.
Se: NetWorker REST API: HTTP GET-forespørsler blir periodevis tidsavbrutt
Når ytelsesproblemer observeres på store globale endepunkter, anbefales det å bruke "spørringslistefilter" (q) eller "feltlistefilter" (fl) for å redusere dataene som returneres til spesifikk informasjon som trengs. Kunnskapsartikkelen ovenfor inneholder detaljer om disse innstillingene, og ytterligere informasjon er tilgjengelig i utviklerveiledningen for REST API: Dell Technologies-utvikler
Hvis problemet er relatert til REST API-ytelse, kan du bruke følgende alternativer til å spore ressursforbruket til nsrtomc+-prosessen som brukes av API-kall.
Linux:
top -b | awk '/nsrtomc+/ {print strftime("%Y-%m-%d-%H:%M:%S", systime()), $0}'
Disse utdataene viser standard topputdata, men med lesbare tidsstempler i mennesker. Dette kan brukes til å gjennomgå CPU- og minneforbruket ved hjelp av prosessen og hvor lenge det holdt seg i en bestemt tilstand når et REST-anrop ble foretatt. Dette kan sammenlignes med restapi.log- og AUTHC-loggene for å se hvilke anrop som ble foretatt og hvor ofte.
Windows:
For Windows-servere må du installere noe sånt som "Performance Monitor:
- Åpne Performance Monitor som administrator.
- Fra venstre rute utvider du Overvåkingsverktøy og velger Ytelsesmåler.
- Høyreklikk i høyre rute og velg Fjern alle tellere.
- Høyreklikk i høyre rute og velg Legg til tellere.
- Under Tilgjengelige tellere utvider du Minne, velger % utføringsbyte og klikker på Legg til.
- Velg Tilgjengelige byte under Minne, og klikk Legg til.
- Under Tilgjengelige tellere utviderdu Prosess og velger % prosessortid, og under Forekomster av valgt objekt velger du den første Java-oppføringen, klikker du Legg til.
- Under Tilgjengelige tellere utviderdu Prosessorinformasjon og velger % prosessorverktøy ved å klikke på Legg til.
- Tellerne som er lagt til i ruten til høyre, skal vise:

- Klikk på OK. Høyreklikk på Ytelsesmåler, >og klikk på Nytt datainnsamlingssett.
- Oppgi et navn, for eksempel:
RESTAPI_MON. - Klikk Neste i skjermbildet for plassering, med mindre du velger å angi en alternativ utdataplassering.
- Velg Lagre og lukk, og klikk på Fullfør.
- I venstre rute under Datainnsamlingssett –> Brukerdefinert åpner du
RESTAPI_MONegenskaper, og velg Kommaseparert for loggformatet, klikk OK.

- I den venstre ruten under Data Collector Sets-User Defined velger du RESTAPI_MON datainnsamlingssett og klikker Start (Spill av-knappen>)
- Hvis standard utdataplassering ble brukt, vises .csv-filen under
C:\PerfLogs\Admin\RESTAPI_MON. - Når problemet er observert og registrert i utdatafilen, kan du stoppe overvåkingsklikk ved å klikke Stopp under Datainnsamlingssett-Brukerdefinert.