NetWorker. Руководство по поиску и устранению неисправностей REST API

Сводка: В этой статье базы знаний представлен обзор основных способов поиска и устранения неисправностей, связанных с RESTAPI.

Данная статья применяется к Данная статья не применяется к Эта статья не привязана к какому-либо конкретному продукту. В этой статье указаны не все версии продуктов.

Инструкции

Руководство по сортировке для NetWorker REST API

Смотреть на YouTube

Дополнительная информация

Начало работы

Программный интерфейс (API) Representational State Transfer (REST) обеспечивает программный доступ к службе защиты данных NetWorker. Используя REST API, пользователи NetWorker могут создавать клиентские приложения для автоматизации операций NetWorker. REST API NetWorker устанавливается в рамках установки сервера NetWorker в том же контейнере Apache tomcat, что и службы аутентификации NetWorker. Аутентификация выполняется с использованием тех же учетных данных, что и в NetWorker Management Console.  

REST API обеспечивает взаимодействие с ресурсами, определяемыми по адресам универсального кода ресурса (URI). Он использует команды HTTP (HEAD, GET, PUT, POST, DELETE) для взаимодействия с универсальным кодом ресурса (URI) без сохранения состояния. Сервер не содержит клиентского состояния, каждое сообщение является само описательным.

В этом документе описывается взаимодействие с ресурсами NetWorker с помощью записанных пользователем вызовов API REST. Не следует путать с вызовами REST API, которые используются серверными операциями NetWorker.
 

Подключение к NetWorker:

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

ПРИМЕЧАНИЕ. Поддержка NetWorker не обеспечивает поддержку сторонних утилит API, а также создания сценариев и автоматизации API. Поддержка NetWorker также не предоставляет решения REST API. Рекомендации по использованию REST API см. в руководстве разработчика NetWorker REST API. Можно обратиться в службу поддержки, где можно получить ответы на общие вопросы о интерфейсе REST API или помочь при выявлении конкретной проблемы с конечными точками или функциями NetWorker REST API. Вся оценка и тестирование выполняются при прямом подключении с помощью команд уровня ОС.

Для подключения необходимы три разъема:   

  • Тип содержимого: application/json
  • Принять: application/json
  • Авторизация: Базовый с именем пользователя и паролем в кодировке Base 64

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

  • X-NW-AUTHC-BASE-URL:AUTHC_HOSTNAME_OR_IP:AUTHC_PORT
По умолчанию используется порт AUTHC 9090. Использование этого заголовка подробно описано в статье: RESTAPI. Как использовать удаленный сервер AUTHC при обработке запросов RESTAPI?

API-интерфейс REST NetWorker доступен в следующем базовом 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

Коды ответов API-интерфейса REST:
 
Коды ответа об успешном выполнении
Код успешного выполнения Применяется к методу HTTP Содержание текста ответа Описание
200 ПОЛУЧИТЬ Представление ресурсов ОК. Операции, приводящие к этому состоянию HTTP, переносят представление ресурса в полезные данные.
201 ПОМЕСТИТЬ Пустой ответ Создан. Это состояние указывает, что создан новый ресурс или предполагаемое задание и связанный с ним URL-адрес доступен из заголовка расположения в ответе.
202 ПОМЕСТИТЬ Подробные сведения в ответ Принято. Это означает, что запрос API принят. Полезные данные указывают, что URL-адрес экземпляра ресурса отслеживания доступен из заголовка location в ответе.
204 PUT или DELETE Пустой ответ Нет контента. Состояние указывает, что выполненная операция выполнена успешно. Однако никаких дополнительных подробностей предоставить не будет.

 

Коды ответов об ошибках
Код ошибки Описание
400 Недопустимый запрос
401 Недопустимые учетные данные
403 Недостаточно прав
404 Ресурс не найден
405 Метод запрещен
406 Указана недопустимая локаль.
500 Ошибка внутреннего сервера


Функции API-интерфейса REST

Поддерживаемые методы HTTP
HTTP-метод Действие Описание
ПОЛУЧИТЬ Чтение Получает представление ресурса.
ПОМЕСТИТЬ Создание Создает новый ресурс.
ПОЛОЖИТЬ Обновление Обновление существующего ресурса.
DELETE Удалить Удаляет существующий ресурс.


Несколько примеров:

GET:

Выводит список всех клиентов.                                            

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

Только один клиент, отображающий только три поля (имя хоста, наборы сохранений и группы защиты)      

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" ]
                                                          
ПРИМЕЧАНИЕ. Все поддерживаемые конечные точки API REST и примеры их использования приведены в: Справочное руководство по 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

Windows:

nsrwatch
Сведения о сервере NetWorker с сайта nsrwatch

Сведения о проблеме.

  • Объясните, какая операция REST API ВЫПОЛНЯЕТСЯ (GET, POST, PUT, DELETE), какой URI используется, содержимое текста JSON (если применимо). 
  • Код ответа API-интерфейса REST и любое сообщение об ошибке.
  • Было ли выполнено начальное подключение и авторизация между клиентом REST API и NetWorker?

Сбор журналов/

  • Отображается daemon.raw файл журнала с сервера NetWorker:
  • Журналы API-интерфейса REST с сервера NetWorker:  /nsr/logs/restapi (Linux) или EMC NetWorker\nsr\logs\restapi (Windows)
  • Сведения о проблемах с проверкой подлинности см. в статье Стандартный вход в систему проверки подлинности NetWorker /nsr/authc/logs (Linux) или ..\EMC NetWorker\nsr\authc-server\tomcat\logs (Windows)

Отладки:

В более сложных случаях может потребоваться отладка REST API. Отладку можно включить следующим образом: NetWorker. Как включить отладку REST API


Производительности:

Перед оценкой проблем, связанных с производительностью интерфейса REST API, важно определить, наблюдается ли данная проблема во всех функциях интерфейса REST API или в конкретных функциях. Например, запросы GET к глобальным конечным точкам, таким как клиенты, задания, тома и т. д., могут извлекать большой объем данных. Такие типы запросов могут привести к высокой загрузке системных ресурсов и истечению времени ожидания.
Видеть: REST API NetWorker: Время ожидания HTTP-запросов GET периодически истекает

При обнаружении проблем с производительностью на крупных глобальных конечных точках рекомендуется использовать "фильтр списка запросов" (q) или "фильтр списка полей" (fl), чтобы свести возвращаемые данные к конкретной необходимой информации. Эти параметры подробно описаны в приведенной выше статье базы знаний, а дополнительную информацию можно найти в Руководстве разработчика по REST API. Разработчик Dell Technologies 

Если проблема связана с производительностью API REST, можно использовать следующие параметры для отслеживания потребления ресурсов процессом nsrtomc+, используемым вызовами API.

Linux:  

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

В этом выводе отображается стандартный верхний вывод, но с метками времени, доступными для чтения. Его можно использовать для просмотра потребления процессора и памяти процессом и того, как долго он оставался в определенном состоянии при выполнении вызова REST. Эти данные можно сравнить с журналами restapi.log и AUTHC, чтобы узнать, какие вызовы выполнялись и как часто.
 

Windows: 

Для Windows Server необходимо установить что-то вроде «Монитор производительности:

  1. Откройте системный монитор от имени администратора.
  2. На левой панели разверните раздел Средства мониторинга и выберите Монитор производительности.
  3. Щелкните правой кнопкой мыши внутри правой панели и выберите Удалить все счетчики.
  4. Нажмите правой кнопкой мыши на правой панели и выберите Добавить счетчики.
  5. В разделе Доступные счетчики разверните раздел Память, выберите % Выделенные байты и нажмите кнопку Добавить.
  6. В разделе Память  выберите Доступные байты и нажмите Добавить.
  7. В разделе «Доступные счетчики» разверните «Процесс» и выберите «% загруженности процессора», а в разделе «Экземпляры выбранного объекта» выберите первую запись Java и нажмите «Добавить».
  8. В разделе Доступные счетчики разверните раздел Сведения о процессоре, выберите % Утилита процессора и нажмите кнопку Добавить.
  9. Счетчики добавленных на правой панели должны отображать:

Окно счетчиков Procmon

  1. Нажмите ОК. Щелкните правой кнопкой мыши Монитор производительности и выберите Создать набор> сборщика данных.
  2. Укажите имя, например: RESTAPI_MON.
  3. На экране местоположения нажмите кнопку Далее,  если не выбрано указание альтернативного выходного местоположения.
  4. Выберите Сохранить и закрыть и нажмите Готово.
  5. На левой панели в разделе «Наборы сборщика данных-Определено> пользователем» откройте RESTAPI_MON properties и выберите Comma Separated для формата журнала, нажмите Ok.

Сборщик данных Procmon

  1. На левой панели в разделе Наборы сборщиков данных-Определенные> пользователем выберите RESTAPI_MON набор сборщиков данных и нажмите кнопку Пуск (кнопка Play)
  2. Если использовалось расположение вывода по умолчанию, файл .csv отображается в разделе C:\PerfLogs\Admin\RESTAPI_MON.
  3. После того как проблема обнаружена и зарегистрирована в выходном файле, вы можете прекратить мониторинг, нажав Stop в разделе Data Collector Sets-User Defined.

Затронутые продукты

NetWorker Series

Продукты

NetWorker Series
Свойства статьи
Номер статьи: 000014298
Тип статьи: How To
Последнее изменение: 22 Jan 2026
Версия:  7
Получите ответы на свои вопросы от других пользователей Dell
Услуги технической поддержки
Проверьте, распространяются ли на ваше устройство услуги технической поддержки.