NetWorker REST API 분류 가이드
Summary: 이 KB는 RESTAPI 관련 문제에 대한 기본적인 문제 해결의 개요를 제공합니다.
Instructions
YouTube 시청
Additional Information
시작
REST(Representational State Transfer) API(Application Programming Interface)는 NetWorker 데이터 보호 서비스에 프로그래밍 방식으로 액세스할 수 있도록 지원합니다. NetWorker 사용자는 REST API를 사용하여 클라이언트 애플리케이션을 구축하여 NetWorker 작업을 자동화할 수 있습니다. NetWorker REST API는 NetWorker Authentication Services와 동일한 Apache tomcat 컨테이너에 NetWorker Server 설치 과정의 일부로 설치됩니다. 인증은 NetWorker Management Console에 사용되는 것과 동일한 자격 증명을 사용하여 수행됩니다.
REST API를 사용하면 URI(Uniform Resource Identifier) 주소로 식별되는 리소스와 상호 작용할 수 있습니다. HTTP 동사(HEAD, GET, PUT, POST, DELETE)를 사용하여 상태 비저장 방식으로 URI(Uniform Resource Identifier)와 상호 작용합니다(서버에는 클라이언트 상태가 포함되어 있지 않으며 각 메시지는 자체 설명적임).
이 문서에서는 사용자가 작성한 REST API 호출을 사용하여 NetWorker 리소스와 상호 작용하는 방법을 다룹니다. 백엔드 NetWorker 작업에 사용되는 REST API 호출과 혼동하지 마십시오.
NetWorker에 연결:
NetWorker에 연결하는 명령을 실행하는 데 사용할 수 있는 REST API 클라이언트 기술은 여러 가지가 있습니다. 현재명령(Linux), PowerShell Invoke-WebRequest (Windows) 및 REST API 클라이언트 브라우저 확장을 포함합니다.연결에는 세 가지 헤더가 필요합니다.
- Content-Type: application/json
- 수락: application/json
- Authorization: Base 64로 인코딩된 기본 사용자 이름 및 암호
단일 NetWorker AUTHC 서버를 통해 인증하는 여러 NetWorker 데이터 영역이 있는 환경에서는 추가 헤더가 필요합니다.
- X-NW-인증 베이스 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이 응답의 location 헤더에서 액세스할 수 있음을 나타냅니다. |
| 204 | 넣기/삭제 | 빈 응답입니다. | 콘텐츠가 없습니다. 상태는 수행된 작업이 성공했음을 나타냅니다. 그러나 제공할 추가 세부 정보는 없습니다. |
| 오류 코드 | 설명 |
| 400 | 잘못된 요청입니다. |
| 401 | 유효하지 않은 자격 증명입니다. |
| 403 | 권한이 부족합니다. |
| 404 | 리소스를 찾을 수 없습니다. |
| 405 | 메서드가 허용되지 않습니다. |
| 406 | 잘못된 로캘이 지정되었습니다. |
| 500 | Internal Server Error. |
REST API 기능
| HTTP 메서드 | 동작 | 설명 |
| 가져오기 | 읽기 | 리소스 표현을 가져옵니다. |
| 올리기 | 생성 | 새 리소스를 생성합니다. |
| 넣어 | 업데이트 | 기존 리소스를 업데이트합니다. |
| 삭제 | 제거 | 기존 리소스를 삭제합니다. |
몇 가지 예:
GET
모든 클라이언트를 나열합니다.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients
하나의 클라이언트만, 3개의 필드(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:
{
}
새 클라이언트 인스턴스를 생성합니다(나열된 4개를 제외한 모든 속성에 기본값 사용).
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients
JSON Body
{
"hostname": "vm-lego-231",
"backupType": "Filesystem",
"saveSets": [ "/etc" ],
"protectionGroups" : [ "LinuxFS" ]
지원에 필요한 정보
환경:
- NetWorker Server 이름
- NetWorker 버전 및 빌드 번호
- NetWorker Server 호스트 운영 체제 유형 및 버전
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 Server에서 렌더링된 daemon.raw 로그 파일:
- Linux: /nsr/logs/daemon.raw
- Windows: C:\Program Files\EMC NetWorker\nsr\logs\daemon.raw
- NetWorker: nsr_render_log 사용 방법
- NetWorker Server의 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+ 프로세스의 리소스 사용량을 추적할 수 있습니다.
리눅스:
top -b | awk '/nsrtomc+/ {print strftime("%Y-%m-%d-%H:%M:%S", systime()), $0}'
이 출력은 표준 상위 출력을 표시하지만 사람이 읽을 수 있는 타임스탬프가 있습니다. 이는 프로세스의 CPU 및 메모리 사용량과 REST 호출이 수행되었을 때 특정 상태에 머무른 시간을 검토하는 데 사용할 수 있습니다. 이 정보를 restapi.log 및 AUTHC 로그와 비교하여 어떤 통화가 얼마나 자주 이루어졌는지 확인할 수 있습니다.
Windows: Windows 서버의 경우 "성능 모니터:
1. Performance Monitor를 Administrator 권한으로 엽니다.
2. 왼쪽 창에서 모니터링 툴을 확장하고 성능 모니터를 선택합니다.
3. 오른쪽 창 내부를 마우스 오른쪽 버튼으로 클릭하고 Remove all Counters를 선택합니다.
4. 오른쪽 창 내부를 마우스 오른쪽 버튼으로 클릭하고 카운터 추가를 선택합니다.
5. Available Counters(사용 가능한 카운터)에서 Memory(메모리)를 확장하고 % Commit Bytes(% 커밋 바이트)를 선택한 다음 Add(추가)를 클릭합니다.
6. 메모리에서 사용 가능한 바이트를 선택하고 추가를 클릭합니다.
7. Available Counters에서 Process를 확장하고 % Processor Time을 선택한 다음 Instances of Selected object에서 첫 번째 Java 항목을 선택하고 Add를 클릭합니다.
8. 사용 가능한 카운터에서프로세서 정보를 확장하고 % 프로세서 유틸리티를 선택한 다음 추가를 클릭합니다.
9. 오른쪽 창의 Added counters에 다음이 표시되어야 합니다.

10. 확인을 클릭합니다. 성능 모니터를 마우스 오른쪽 단추로 클릭하고 새> 데이터 수집기 집합을 클릭합니다.
11. 이름을 입력합니다. 예: RESTAPI_MON.
12. 위치 화면에서 대체 출력 위치를 지정하도록 선택하지 않은 경우 다음을 클릭합니다.
13. 저장 및 닫기를 선택하고 마침을 클릭합니다.
14. 왼쪽 창의 Data Collector Sets-User> Defined에서 RESTAPI_MON 속성을 열고 로그 형식으로 쉼표로 구분됨을 선택하고 Ok를 클릭합니다.

15. 왼쪽 창의 데이터 수집기 집합->사용자 정의 아래에서 RESTAPI_MON 데이터 수집기 집합을 선택하고 시작(재생 단추)을 클릭합니다.
16. 기본 출력 위치를 사용한 경우 .csv 파일은 C:\PerfLogs\Admin\RESTAPI_MON 아래에 나타납니다.
17. 문제가 관찰되고 출력 파일에 기록되면 Data Collector Sets-User Defined에서 Stop을 클릭하여 모니터링을 중지할 수 있습니다.
추가 리소스
지원되는 모든 REST API 엔드포인트 및 사용 예는 다음에서 제공됩니다. NetWorker REST API 참조 가이드