NetWorker REST API 分流指南
Summary: 本知识库文章概述了 RESTAPI 相关问题的基本故障处理。
Instructions
观看 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_IP:AUTHC_PORT
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
| 成功代码 | 应用于 HTTP 方法 | 响应正文内容 | 描述 |
| 200 | 获取 | 资源表示形式。 | “OK(确定)”。导致此 HTTP 状态的操作在有效负载中携带资源表示形式。 |
| 201 | 发布 | 空响应。 | 创建。此状态表示已创建新资源或预期作业,并且可从响应中的位置标头访问其关联的 URL。 |
| 202 | 发布 | 详细信息在响应中。 | 接受。这表示 API 请求已被接受。有效负载指示可从响应中的位置标头访问跟踪资源实例的 URL。 |
| 204 | PUT/DELETE | 空响应。 | 无内容。状态指示执行的操作成功。但是,没有要提供的其他详细信息。 |
| 错误代码 | 描述 |
| 400 | 错误请求。 |
| 401 | 凭据无效。 |
| 403 | 权限不足。 |
| 404 | 未找到资源。 |
| 405 | 方法不允许。 |
| 406 | 指定了无效的区域设置。 |
| 500 | 内部服务器错误。 |
REST API 函数
| 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 服务器主机操作系统类型和版本
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日志文件:
- Linux:/nsr/logs/daemon.raw
- Windows:C:\Program Files\EMC NetWorker\nsr\logs\daemon.raw
- NetWorker:如何使用nsr_render_log
- 来自 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)
性能
如果问题与 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.右窗格中的“已添加”计数器应显示:

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

15.在左侧窗格中的数据 收集器集 —> 用户定义下,选择RESTAPI_MON数据收集器集,然后单击开始(播放按钮)。
16.如果使用了默认输出位置,则.csv文件将显示在 C:\PerfLogs\Admin\RESTAPI_MON 下。
17.观察到问题并将其记录在输出文件中后,您可以通过单击“Data Collector 集 - 用户定义”下的“停止”来停止监视单击。
更多资源
以下位置提供了所有受支持的 REST API 端点和用法示例:NetWorkerREST API 参考指南