NetWorker: Посібник з усунення несправностей та сортування REST API

Summary: Ця база даних надає огляд базового усунення несправностей, пов'язаних із RESTAPI.

Ця стаття стосується Ця стаття не стосується Ця стаття не стосується якогось конкретного продукту. У цій статті зазначено не всі версії продукту.

Instructions

Керівництво з тріажу API NetWorker REST

Дивіться на YouTube

Additional Information

Початок

Інтерфейс програмування репрезентативного стану (REST) забезпечує програмний доступ до сервісу захисту даних NetWorker. Використовуючи REST API, користувачі NetWorker можуть створювати клієнтські додатки для автоматизації операцій NetWorker. API NetWorker REST встановлюється як частина встановлення сервера NetWorker у тому ж контейнері Apache tomcat, що й сервіси автентифікації NetWorker. Автентифікація здійснюється за допомогою тих самих облікових даних, що й у NetWorker Management Console.  

REST API дозволяє взаємодіяти з ресурсами, ідентифікованими за адресами Uniform Resource Identifier (URI). Він використовує HTTP-дієслова (HEAD, GET, PUT, POST, DELETE) для взаємодії з уніфікованим ідентифікатором ресурсу (URI) у безстанному режимі. Сервер не містить клієнтського стану, кожне повідомлення є самоописовим.

Цей документ розглядає взаємодію з ресурсами NetWorker за допомогою користувацьких REST API-викликів. Не плутати з REST API-викликами, які використовуються бекенд-операціями NetWorker.
 

Підключення до NetWorker:

Існує кілька різних клієнтських технологій REST API, які можна використовувати для виконання команд для підключення до NetWorker; зокрема, curl команди (Linux), PowerShell curl.exe (Windows) та розширення браузера REST API. 

ПРИМІТКА. Підтримка NetWorker не забезпечує підтримку сторонніх API утиліт або скриптів/автоматизації API. Підтримка NetWorker також не надає рішень REST API. Для рекомендацій щодо використання REST API дивіться Посібник розробника REST API NetWorker. Підтримка доступна для відповіді на загальні запитання щодо REST API або допомоги, якщо виявлена конкретна проблема з кінцевими точками чи функціями NetWorker REST API. Вся оцінка та тестування здійснюється з прямих підключень із використанням команд рівня ОС.

Для підключення потрібні три заголовки:   

  • Тип контенту: application/json
  • Прийняти: application/json
  • Авторизація: Basic з кодуванням імені користувача та паролем Base 64

У середовищах, де кілька зон даних NetWorker автентифікуються через один сервер NetWorker AUTHC, потрібен додатковий заголовок:

  • X-NW-AUTHC-BASE-URL:AUTHC_HOSTNAME_OR_IP:AUTHC_PORT
Стандартний AUTHC-порт — порт 9090. Використання цього заголовка детально описано у: РЕСТАПІ: Як використовувати віддалений AUTHC сервер при обробці запитів RESTAPI?

API NetWorker REST доступний у наступному базовому URI:

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

Існують різні версії API. З моменту початкового впровадження REST API були впроваджені вдосконалення. Зміни цих кінцевих точок детально описані у: https://developer.dell.com/apis/2378/versions/v3/docs/GettingStarted.md

Повна схема json доступна за адресою:

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

Коди відповіді REST API:
 
Коди відповіді на успіх
Код успіху Застосовується до методу HTTP Вміст тіла відповіді Опис
200 ІДИ Представлення ресурсів ГАРАЗД. Операції, що призводять до цього HTTP-стану, несуть представлення ресурсу у корисному навантаженні.
201 ДОПИС Порожня відповідь Створений. Цей статус означає, що створено новий ресурс або заплановане завдання, і відповідна URL доступна з заголовка розташування у відповіді.
202 ДОПИС Деталі у відповідь Прийнято. Це означає, що запит API прийнято. Корисне навантаження вказує, що URL екземпляра ресурсу відстеження доступний із заголовка розташування у відповіді.
204 ДОДАТИ АБО ВИДАЛИТИ Порожня відповідь Без контенту. Стан вказує, що операція була успішною. Однак додаткових деталей не надається.

 

Коди відповіді на помилки
Код помилки Опис
400 Поганий запит
401 Недійсні облікові дані
403 Недостатні привілеї
404 Ресурс не знайдено
405 Метод заборонений
406 Вказано неправильне місцезнаходження.
500 Помилка внутрішнього сервера


Функції REST API

Підтримувані методи HTTP
Метод HTTP Бойові дії Опис
ІДИ Читати Отримує представлення ресурсів.
ДОПИС Створити Створює новий ресурс.
PUT Оновлення Оновлює існуючий ресурс.
ВИДАЛИТИ Видалити Видаляє існуючий ресурс.


Декілька прикладів:

GET:

Перелічіть усіх клієнтів.                                            

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

Лише один клієнт, який показує лише три поля (hostname, saveSets і protectionGroups)      

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

Вкажіть групи захисту, до яких належить один клієнт.     

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

Покажіть поточні сповіщення.                                     

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

Покажіть нещодавні невдалі роботи.                               

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

Перелічіть робочі процеси в одній політиці (у цьому прикладі — WinFS ).                   

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

Вкажіть властивості лише одного екземпляра набору збережень (визначені ім'ям хоста клієнта та набором збережень).      

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

ПОСТ:

Почніть дію робочого процесу.                                 

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

Створіть новий екземпляр клієнта (з значеннями за замовчуванням для всіх властивостей, крім чотирьох, зазначених).           

https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients  
                                                     JSON Body 
                                                     {    
            "hostname": "vm-lego-231",
            "backupType": "Filesystem",
            "saveSets": [ "/etc" ],
            "protectionGroups" : [ "LinuxFS" ]
                                                          
ПРИМІТКА. Усі підтримувані кінцеві точки та приклади використання REST API наведені у: Довідник NetWorker REST API

Приклади командного рядка:

Linux:

Для систем, які мають python встановлено:

curl -k -u Administrator:'ADMINISTRATOR_PASSWORD' https://NETWORKER_SERVER_ADDRESS:9090/nwrestapi/v3/global/ENDPOINT | python -m json.tool
Для систем, які мають jq встановлено:
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

Приклад:

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
}

Необхідна інформація для підтримки


Навколишнє середовище:

  • Ім'я сервера NetWorker
  • Версія та номер збірки NetWorker
  • Тип та версія операційної системи хоста сервера NetWorker
Linux:
hostname
strings /usr/sbin/nsrd | grep -i "(#)"
cat /etc/*release
uname -a

Вікна:

nsrwatch
Деталі сервера NetWorker з nsrwatch

Деталі випуску:

  • Поясніть, яка операція REST API виконується (GET, POST, PUT, DELETE), який URI використовується, будь-який вміст тіла JSON (де це застосовно). 
  • Код відповіді REST API та будь-яке повідомлення про помилку.
  • Чи вдалося початкове з'єднання та авторизація між клієнтом REST API та NetWorker?

Збір журналів:

  • Відтворено daemon.raw файл журналу з сервера NetWorker:
  • Журнали REST API з сервера NetWorker:  /nsr/logs/restapi (linux) або EMC NetWorker\nsr\logs\restapi (Вікна)
  • Для питання автентифікації дивіться стандартний розділ автентифікації NetWorker для входу /nsr/authc/logs (linux) або ..\EMC NetWorker\nsr\authc-server\tomcat\logs (Вікна)

Відлагодження:

У більш складних питаннях може знадобитися налагодження REST API. Відлагодження можна увімкнути за посиланням: NetWorker: Як увімкнути налагодження REST API


Продуктивність:

Перед оцінкою проблем, пов'язаних із продуктивністю REST API, важливо визначити, чи спостерігається ця проблема у всіх функціях REST API або в окремих функціях. Наприклад, GET-запити на глобальних кінцевих точках, таких як клієнти, завдання, томи тощо, можуть отримувати багато даних. Такі запити можуть призводити до високого використання системних ресурсів і тайм-аутів.
Див. також: REST API NetWorker: Запити HTTP GET періодично виходять за межами часу

Коли на великих глобальних кінцевих точках спостерігаються проблеми з продуктивністю, рекомендується використовувати «фільтр списку запитів» (q) або «фільтр списку полів» (fl) щоб зменшити кількість повернених даних до конкретної необхідної інформації. Наведена вище база даних детально описує ці налаштування, а додаткова інформація доступна в Посібнику розробника REST API: Розробник 

Dell TechnologiesЯкщо проблема пов'язана з продуктивністю REST API, ви можете скористатися наступними опціями для відстеження споживання ресурсів процесу nsrtomc+, який використовується викликами API.

Linux:  

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

Цей вихід показує стандартний максимальний вихід, але з часовими позначками, які можна читати людині. Це можна використовувати для оцінки споживання процесора та пам'яті процесом, а також для того, як довго він перебував у певному стані під час виконання REST-виклику. Це можна порівняти з журналами restapi.log та AUTHC, щоб побачити, які дзвінки здійснювалися і як часто.
 

Вікна: 

Для серверів Windows потрібно встановити щось на кшталт «Performance Monitor:

  1. Відкрийте монітор продуктивності як адміністратор.
  2. З лівої панелі розгорніть Monitoring Tools і виберіть Performance Monitor.
  3. Клацніть правою кнопкою миші всередині правої панелі та виберіть Видалити всі лічильники.
  4. Клацніть правою кнопкою миші всередині правої панелі та виберіть Add Counters.
  5. У розділі Доступні лічильники розгорніть пам'ять, виберіть % Commit Bytes і натисніть Додати.
  6. У розділі «Пам'ять»  виберіть «Доступні байти» та натисніть «Додати».
  7. У розділі «Доступні лічильники» розгорніть «Процес» і виберіть % часу процесора, а в розділі «Екземпляри обраного об'єкта» виберіть перший запис у Java, натисніть «Додати».
  8. У розділі «Доступні лічильники» розгорніть інформацію про процесор і виберіть % утиліти процесора, натисніть «Додати».
  9. Додані лічильники на правій панелі мають показувати:

Вікно лічильників Procmon

  1. Натисніть OK. Клацніть правою кнопкою миші на Performance Monitor і виберіть New-Data> Collector Set.
  2. Наведіть ім'я, наприклад: RESTAPI_MON.
  3. На екрані розташування натисніть Далі,  якщо ви не вкажете альтернативне місце для виходу.
  4. Виберіть Зберегти і закрити , і натисніть Закінчити.
  5. У лівій панелі під Data Collector Sets-User> Defined відкрийте RESTAPI_MON властивості та виберіть Кому Розділена для формату журналу, натисніть Ок.

Збирач даних Procmon

  1. У лівій панелі під розділом Data Collector Sets-User>Defined виберіть RESTAPI_MON набір зборника даних і натисніть Start (Відтворити кнопку)
  2. Якщо використовувалося стандартне місце виходу, файл .csv з'являється у розділі C:\PerfLogs\Admin\RESTAPI_MON.
  3. Після того, як проблема буде виявлена і зафіксована у вихідному файлі, ви можете припинити моніторинг, натиснувши Stop у розділі Data Collector Sets-User Defined.

Продукти, яких це стосується

NetWorker Series

Продукти

NetWorker Series
Властивості статті
Article Number: 000014298
Article Type: How To
Востаннє змінено: 22 січ. 2026
Version:  7
Отримайте відповіді на свої запитання від інших користувачів Dell
Служба підтримки
Перевірте, чи послуги служби підтримки поширюються на ваш пристрій.