NetWorker: Průvodce odstraňováním problémů a tříděním problémů s rozhraním REST API

Summary: Tento článek znalostní databáze poskytuje přehled základních postupů odstraňování problémů souvisejících s rozhraním RESTAPI.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

Průvodce posouzením problémů s NetWorker REST API

Sledujte video na YouTube.

Additional Information

Začínáme

Rozhraní API (Application Programming Interface) rozhraní REST (Representational State Transfer) poskytuje programový přístup ke službě ochrany dat NetWorker. Pomocí rozhraní REST API mohou uživatelé nástroje NetWorker vytvářet klientské aplikace pro automatizaci operací NetWorker. Rozhraní NetWorker REST API se instaluje jako součást instalace serveru NetWorker ve stejném kontejneru Apache tomcat jako ověřovací služby NetWorker. Ověření se provádí pomocí stejných přihlašovacích údajů, jaké se používají v konzoli NetWorker Management Console.  

Rozhraní REST API umožňuje interakci s prostředky identifikovanými adresami identifikátoru URI (Uniform Resource Identifier). Používá příkazy HTTP (HEAD, GET, PUT, POST, DELETE) k interakci s identifikátorem URI (Uniform Resource Identifier) bezstavovým způsobem. Server neobsahuje žádný stav klienta, každá zpráva je popisná.

Tento dokument se zabývá interakcí se zdroji NetWorker pomocí volání rozhraní REST API napsaných uživateli. Nezaměňovat s voláními rozhraní REST API, která používají backendové operace NetWorker.
 

Připojení k nástroji NetWorker:

Existuje několik různých klientských technologií rozhraní REST API, které lze použít ke spuštění příkazů pro připojení k NetWorker. Včetně curl příkazy (Linux), PowerShell curl.exe (Windows) a rozšíření klientského prohlížeče rozhraní REST API. 

POZNÁMKA: Podpora NetWorker neposkytuje podporu pro nástroje API třetích stran ani pro skriptování/automatizaci API. Podpora NetWorker také neposkytuje řešení REST API. Pokyny k používání rozhraní REST API naleznete v příručce pro vývojáře rozhraní NetWorker REST API. Je k dispozici podpora, která zodpoví obecné dotazy týkající se rozhraní REST API nebo pomůže, pokud je zjištěn konkrétní problém s koncovými body nebo funkcemi rozhraní NetWorker REST API. Veškeré hodnocení a testování se provádí z přímých připojení pomocí příkazů na úrovni operačního systému.

Pro připojení jsou potřeba tři hlavičky:   

  • Typ obsahu: application/json
  • Přijmout: application/json
  • Authorization: Basic s uživatelským jménem a heslem kódováním Base 64

V prostředích, kde je více datových zón NetWorker ověřeno prostřednictvím jednoho serveru NetWorker AUTHC, je vyžadována další hlavička:

  • X-NW-AUTHC-BASE-URL:AUTHC_HOSTNAME_OR_IP:AUTHC_PORT
Výchozí port AUTHC je port 9090. Použití této hlavičky je podrobně popsáno v: RESTAPI: Jak používat vzdálený AUTHC server při zpracování požadavků RESTAPI?

Rozhraní NetWorker REST API je vystaveno v následujícím základním identifikátoru URI:

https://[nw-server-hostname]:9090/nwrestapi/v3

Existují různé verze rozhraní API. Od počáteční implementace rozhraní REST API byla zavedena vylepšení. Změny těchto koncových bodů jsou podrobně popsány v: https://developer.dell.com/apis/2378/versions/v3/docs/GettingStarted.md

Úplné schéma JSON je k dispozici na adrese:

https://[nw-server-hostname]:9090/nwrestapi/v3/schemas/swagger.json

Kódy odpovědí rozhraní REST API:
 
Kódy odpovědí na úspěch
Success Code Platí pro metodu HTTP Obsah textu odpovědi Popis
200 DOSTAT Reprezentace zdrojů OK. Operace, které mají za následek tento stav HTTP, přenášejí reprezentaci prostředků v datové části.
201 PŘÍSPĚVEK Prázdná odpověď Vytvořen. Tento stav označuje, že byl vytvořen nový prostředek nebo zamýšlená úloha a jeho přidružená adresa URL je přístupná z hlavičky umístění v odpovědi.
202 PŘÍSPĚVEK Podrobnosti v odpovědi Přijata. To znamená, že požadavek API byl přijat. Datová část označuje, že adresa URL instance prostředku sledování je přístupná z location hlavičky v odpovědi.
204 PUT nebo DELETE Prázdná odpověď Žádný obsah. Stav označuje, že provedená operace proběhla úspěšně. Není však třeba poskytovat žádné další podrobnosti.

 

Kódy chybových odpovědí
Kód chyby Popis
400 Chybný požadavek
401 Neplatné přihlašovací údaje
403 Nedostatečná oprávnění
404 Zdroj nenalezen
405 Metoda není povolena.
406 Je zadáno neplatné národní prostředí.
500 Interní chyba serveru


Funkce rozhraní REST API

Podporované metody HTTP
Metoda HTTP Akce Popis
DOSTAT Čtení Získá reprezentaci prostředku.
PŘÍSPĚVEK Vytvoření Vytvoří nový prostředek.
DÁT Aktualizace Aktualizuje existující prostředek.
DELETE Odstranění Odstraní existující prostředek.


Několik příkladů:

GET:

Vypíše všechny klienty.                                            

https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients

Pouze jeden klient zobrazující pouze tři pole (název hostitele, saveSets a protectionGroups)      

https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?fl=hostname,saveSets,protectionGroups&q=hostname:nwserver121

Vypíše seznam skupin ochrany, ve kterých se nachází jeden klient.     

https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?fl=protectionGroups&q=hostname:nwserver121

Zobrazit aktuální výstrahy.                                     

https://[nw-server-hostname]:9090/nwrestapi/v3/global/alerts

Zobrazí poslední neúspěšné úlohy.                               

https://[nw-server-hostname]:9090/nwrestapi/v3/global/jobs?q=completionStatus:"Failed"&fl=clientHostname,startTime,name,message

Vypište pracovní postupy v jedné zásadě (v tomto příkladu s názvem WinFS ).                   

https://[nw-server-hostname]:9090/nwrestapi/v3/global/protectionpolicies/WinFS/workflows

Vypíše vlastnosti pouze jedné instance uložené sady (jak je definováno názvem hostitele klienta a uloženou sadou).      

https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?q=hostname:vm-lego-231 and saveSets:"/etc"

PŘÍSPĚVEK:

Spusťte akci pracovního postupu.                                 

https://[nw-server-hostname]:9090/nwrestapi/v3/global/protectionpolicies/Angela/workflows/WinFS/op/backup
                                                      JSON Body: 
                                                      {
                                                       }

Vytvořte novou instanci klienta (s výchozími hodnotami pro všechny vlastnosti kromě čtyř uvedených).           

https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients  
                                                     JSON Body 
                                                     {    
            "hostname": "vm-lego-231",
            "backupType": "Filesystem",
            "saveSets": [ "/etc" ],
            "protectionGroups" : [ "LinuxFS" ]
                                                          
POZNÁMKA: Všechny podporované koncové body rozhraní REST API a příklady použití jsou k dispozici v: Referenční příručka k rozhraní NetWorker REST API

Příklady příkazového řádku:

Linux:

U systémů, které mají python nainstalovaná:

curl -k -u Administrator:'ADMINISTRATOR_PASSWORD' https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/ENDPOINT | python -m json.tool
U systémů, které mají jq nainstalovaná:
curl -k -u Administrator:'ADMINISTRATOR_PASSWORD' https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/ENDPOINT | jq
Příklad:
[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

Příklad:

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
}

Požadované informace pro podporu


Prostředí:

  • Název serveru NetWorker
  • Verze a číslo sestavení platformy NetWorker
  • Typ a verze hostitelského operačního systému serveru NetWorker
Linux:
hostname
strings /usr/sbin/nsrd | grep -i "(#)"
cat /etc/*release
uname -a

Windows:

nsrwatch
Podrobnosti o serveru NetWorker z nástroje nsrwatch

Podrobnosti o problému:

  • Vysvětlete, která operace rozhraní REST API se provádí (GET, POST, PUT, DELETE), použitý identifikátor URI, veškerý obsah textu JSON (pokud je k dispozici). 
  • Kód odpovědi rozhraní REST API a všechny poskytnuté chybové zprávy.
  • Proběhlo počáteční připojení a autorizace mezi klientem REST API a nástrojem NetWorker úspěšně?

Shromažďování protokolů:

  • Vykreslený soubor protokolu daemon.raw ze serveru NetWorker:
  • Protokoly rozhraní REST API ze serveru NetWorker:  /nsr/logs/restapi (Linux) nebo EMC NetWorker\nsr\logs\restapi (Windows)
  • Informace o problémech s ověřováním naleznete v tématu Standardní přihlášení pomocí ověřování NetWorker. /nsr/authc/logs (Linux) nebo ..\EMC NetWorker\nsr\authc-server\tomcat\logs (Windows)

Ladění:

Ve složitějších problémech může být vyžadováno ladění rozhraní REST API. Ladění lze povolit podle: NetWorker: Jak povolit ladění rozhraní REST API


Výkon:

Před posouzením problémů souvisejících s výkonem rozhraní REST API je důležité určit, zda k problému dochází u všech funkcí rozhraní REST API nebo konkrétních funkcí. Například požadavky GET na globálních koncových bodech, jako jsou klienti, úlohy, svazky atd., můžou načítat velké množství dat. Tyto typy požadavků mohou mít za následek vysoké využití systémových prostředků a vypršení časových limitů.
Viz: NetWorker REST API: U požadavků HTTP GET občas dochází k vypršení časového limitu

Pokud dojde k problémům s výkonem u velkých globálních koncových bodů, doporučujeme použít filtr seznamu dotazů (q) nebo "filtr seznamu polí" (fl), aby se snížil počet vrácených dat na konkrétní potřebné informace. Výše uvedený článek znalostní databáze podrobně popisuje tato nastavení a další informace jsou k dispozici v příručce pro vývojáře rozhraní REST API: Vývojář 

Dell TechnologiesPokud problém souvisí s výkonem rozhraní REST API, můžete pomocí následujících možností sledovat spotřebu prostředků procesu nsrtomc+ používaného voláními rozhraní API.

Linux:  

top -b | awk '/nsrtomc+/ {print strftime("%Y-%m-%d-%H:%M:%S", systime()), $0}'

Tento výstup zobrazuje standardní horní výstup, ale s časovými razítky čitelnými pro člověka. To lze použít ke kontrole využití procesoru a paměti procesem a k tomu, jak dlouho zůstal v určitém stavu při volání REST. To lze porovnat s protokoly restapi.log a AUTHC a zjistit, která volání byla provedena a jak často.
 

Windows: 

U serverů se systémem Windows je nutné nainstalovat například nástroj "Performance Monitor:

  1. Spusťte nástroj Sledování výkonu jako správce.
  2. V levém podokně rozbalte položku Monitorovací nástroje a vyberte Sledování výkonu.
  3. Klikněte pravým tlačítkem do pravého podokna a vyberte Odebrat všechny čítače.
  4. Klikněte pravým tlačítkem do pravého podokna a vyberte Přidat čítače.
  5. V části Available Counters rozbalte položku Memory, vyberte % Commit Bytes a klikněte na tlačítko Add.
  6. V části Paměť  vyberte možnost Dostupné bajty a klikněte na tlačítko Přidat.
  7. V části Dostupné čítače rozbalte položku Zpracovat a vyberte možnost % času procesoru a v části Instance vybraného objektu vyberte první položku Java a klikněte na tlačítko Přidat.
  8. V části Dostupné čítače rozbalte položku Informace o procesoru a vyberte možnost % Processor Utility, klikněte na tlačítko Přidat.
  9. V části Přidané čítače v pravém podokně by se měly zobrazit:

Okno čítačů Procmon

  1. Klikněte na tlačítko OK. Klepněte pravým tlačítkem myši na položku Sledování výkonu a klepněte na položku >Sada kolekcí nových dat.
  2. Zadejte název, například: RESTAPI_MON.
  3. Na obrazovce umístění klikněte na tlačítko Další,  pokud se nerozhodnete zadat alternativní umístění výstupu.
  4. Vyberte Uložit a zavřít a klikněte na Dokončit.
  5. V levém podokně pod položkou Sady kolekcí dat –> definováno uživatelem otevřete RESTAPI_MON a pro formát protokolu vyberte možnost Oddělené čárkami, klikněte na tlačítko OK.

Sběrač dat Procmon

  1. V levém podokně pod položkou Sady kolekcí dat –> definováno uživatelem vyberte RESTAPI_MON sadu kolekcí dat a klikněte na tlačítko Start (tlačítko Přehrát)
  2. Pokud bylo použito výchozí umístění výstupu, soubor .csv se zobrazí v části C:\PerfLogs\Admin\RESTAPI_MON.
  3. Jakmile je problém pozorován a zaznamenán ve výstupním souboru, můžete sledování zastavit kliknutím na tlačítko Zastavit v části Sady kolekcí dat – definováno uživatelem.

Affected Products

NetWorker Series

Products

NetWorker Series
Article Properties
Article Number: 000014298
Article Type: How To
Last Modified: 22 يناير 2026
Version:  7
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.