NetWorker REST API 分流指南

Summary: 本知识库文章概述了 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

NetWorker REST API 分流指南

观看 YouTube 视频

Additional Information

使用入门


表述性状态转移 (REST) 应用程序编程接口 (API) 提供对 NetWorker 数据保护服务的编程访问。通过使用 REST API,NetWorker 用户可以构建客户端应用程序以自动执行 NetWorker 操作。NetWorker REST API 作为 NetWorker 服务器安装的一部分安装在与 NetWorker 身份验证服务相同的 Apache Tomcat 容器中。使用与 NetWorker 管理控制台相同的凭据进行身份验证。  

REST API 允许与通过统一资源标识符 (URI) 地址标识的资源进行交互。它使用 HTTP 谓词(HEAD、GET、PUT、POST、DELETE)以无状态方式与统一资源标识符 (URI) 交互(服务器不包含客户端状态,每条消息都是自描述的)。

本文档介绍如何使用用户编写的 REST API 调用与 NetWorker 资源进行交互。不要与后端 NetWorker 操作所使用的 REST API 调用相混淆。
 

连接到 NetWorker:

有几种不同的 REST API 客户端技术可用于运行连接到 NetWorker 的命令;包括 curl 命令 (Linux)、PowerShell Invoke-WebRequest (Windows) 和 REST API 客户端浏览器扩展。

连接需要三个标头:   
  • Content-Type: application/json
  • 接受:application/json
  • Authorization: Basic with Base 64 编码用户名和密码

在有多个 NetWorker 数据区通过单个 NetWorker AUTHC 服务器进行身份验证的环境中,需要额外的标头:

  • X-NW-AUTHC-BASE-URL:AUTHC_HOSTNAME_OR_IPAUTHC_PORT
默认 AUTHC 端口是端口 9090。此标头的用法详见:RESTAPI:在处理 RESTAPI 请求时如何使用远程 AUTHC 服务器?

NetWorker REST API 在以下基本 URI 中公开:

https://[nw-server-hostname]:9090/nwrestapi/
API 有不同的版本。自最初实施 REST API 以来,已推出增强功能。例如:
https://[nw-server-hostname]:9090/nwrestapi/v1
https://[nw-server-hostname]:9090/nwrestapi/v2
https://[nw-server-hostname]:9090/nwrestapi/v3

完整的 json 架构可在以下位置找到:

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

REST API 响应代码:
 
成功响应代码
成功代码 应用于 HTTP 方法 响应正文内容 描述
200 获取 资源表示形式。 “OK(确定)”。导致此 HTTP 状态的操作在有效负载中携带资源表示形式。
201 发布 空响应。 创建。此状态表示已创建新资源或预期作业,并且可从响应中的位置标头访问其关联的 URL。
202 发布 详细信息在响应中。 接受。这表示 API 请求已被接受。有效负载指示可从响应中的位置标头访问跟踪资源实例的 URL。
204 PUT/DELETE 空响应。 无内容。状态指示执行的操作成功。但是,没有要提供的其他详细信息。
 
错误响应代码
错误代码 描述
400 错误请求。
401 凭据无效。
403 权限不足。
404 未找到资源。
405 方法不允许。
406 指定了无效的区域设置。
500 内部服务器错误。


REST API 函数

支持的 HTTP 方法
HTTP 方法 操作 描述
获取 读取 获取资源表示形式。
发布 创建 创建新资源。
更新 更新现有资源。
删除 拔下 删除现有资源。


一些例子:

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" ]
                                                          


支持所需的信息


环境:

  • NetWorker 服务器名称
  • NetWorker 版本和内部版本号
  • NetWorker 服务器主机操作系统类型和版本
Linux:
hostname
strings /usr/sbin/nsrd | grep -i "(#)"
cat /etc/*release
uname -a

Windows:

nsrwatch
问题详细信息:
  • 说明正在执行的 REST API 操作(GET、POST、PUT、DELETE)、使用的 URI、任何 JSON 正文内容(如果适用)。 
  • REST API 响应代码和提供的任何错误消息。
  • REST API 客户端与 NetWorker 之间的初始连接和授权是否成功?
日志收集:
  • 从 NetWorker 服务器呈现daemon.raw日志文件:
  • 来自 NetWorker 服务器的 REST API 日志:  /nsr/logs/restapi (linux) 或 EMC NetWorker\nsr\logs\restapi (Windows)
  • 有关身份验证问题,请参阅 /nsr/authc/logs (linux) 中的标准 NetWorker 身份验证日志记录或 .\EMC NetWorker\nsr\authc-server\tomcat\logs (Windows)
调试:
在更复杂的问题中,可能需要进行 REST API 调试。调试可以根据以下各项启用:NetWorker:如何启用 REST API 调试

性能
如果问题与 RESTAPI 性能相关,您可以使用以下选项跟踪 API 调用使用的 nsrtomc+ 进程的资源使用情况。

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

此输出显示标准顶部输出,但具有人类可读的时间戳。这可用于查看进程的 CPU 和内存消耗,以及在进行 REST 调用时它保持特定状态的时间。这可以与 restapi.log 和 AUTHC 日志进行比较,以查看进行了哪些调用以及频率。
 

Windows:对于 Windows 服务器,您必须安装类似于“Performance Monitor:

1.以管理员身份打开 性能监视器
2.从左侧窗格中,展开监视工具,然后选择性能监视器。
3.在右窗格中右键单击,然后选择删除所有计数器
4.在右窗格中右键单击,然后选择Add Counters
5.在 Available Counters下,展开 Memory,选择 % Commit Bytes,然后单击 Add.6
。在内存下, 选择可用字节,然后单击添加
7.在Available Counters下,展开Process并选择% Processor Time,在Instances of Selected object下选择第一个 Java 条目,然后单击Add
8.在可用计数器下,展开处理器信息并选择 处理器实用程序百分比,然后单击 添加。
9.右窗格中的“已添加”计数器应显示:

image.png

10.单击 Okay。右键单击性能监视器,然后单击新建数据>收集器集
11.提供名称,例如:RESTAPI_MON。
12.在位置屏幕上,单击下一步, 除非您选择指定备用输出位置。
13.选择 保存并关闭 ,然后单击 完成
14.在数据 收集器集 —> 用户定义的左侧窗格中,打开RESTAPI_MON属性,并为日志格式选择逗号分隔,然后单击确定

image.png

15.在左侧窗格中的数据 收集器集 —> 用户定义下,选择RESTAPI_MON数据收集器集,然后单击开始(播放按钮)。
16.如果使用了默认输出位置,则.csv文件将显示在 C:\PerfLogs\Admin\RESTAPI_MON 下。
17.观察到问题并将其记录在输出文件中后,您可以通过单击“Data Collector 集 - 用户定义”下的“停止”来停止监视单击。


更多资源

以下位置提供了所有受支持的 REST API 端点和用法示例:NetWorkerREST API 参考指南

Affected Products

NetWorker Series

Products

NetWorker Series
Article Properties
Article Number: 000014298
Article Type: How To
Last Modified: 07 Feb 2024
Version:  6
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.