Guía de triage de API REST de NetWorker
Summary: En este artículo de la base de conocimientos, se proporciona una visión general de la solución de problemas básica para problemas relacionados con la API REST.
Instructions
Ver en YouTube
Additional Information
Introducción
La interfaz de programación de aplicaciones (API) de transferencia de estado representacional (REST) proporciona acceso programático al servicio de protección de datos de NetWorker. Mediante el uso de la API REST, los usuarios de NetWorker pueden crear aplicaciones cliente para automatizar las operaciones de NetWorker. La API REST de NetWorker se instala como parte de la instalación de NetWorker Server en el mismo contenedor Apache Tomcat que los servicios de autenticación de NetWorker. La autenticación se realiza con las mismas credenciales que se utilizan para NetWorker Management Console.
La API REST permite la interacción con los recursos identificados por las direcciones del identificador uniforme de recursos (URI). Utiliza verbos HTTP (HEAD, GET, PUT, POST, DELETE) para interactuar con el identificador uniforme de recursos (URI) de forma sin estado (el servidor no contiene ningún estado de cliente, cada mensaje es autodescriptivo).
En este documento, se aborda la interacción con los recursos de NetWorker mediante llamadas de API REST escritas por el usuario. No debe confundirse con las llamadas de API REST que utilizan las operaciones de back-end de NetWorker.
Conexión a NetWorker:
Hay varias tecnologías de cliente de API REST diferentes que se pueden utilizar para ejecutar los comandos para conectarse a NetWorker; incluidos los comandos curl (Linux), PowerShell Invoke-WebRequest (Windows) y las extensiones de navegador del cliente de la API REST.Se necesitan tres encabezados para la conexión:
- Tipo de contenido: application/json
- Aceptar: application/json
- Autorización: Básico con nombre de usuario y contraseña codificados de base 64
En entornos donde hay varias zonas de datos de NetWorker que se autentican a través de un único servidor AUTHC de NetWorker, se requiere un encabezado adicional:
- X-NW-AUTHC-BASE-URL:AUTHC_HOSTNAME_OR_IP:AUTHC_PORT
La API REST de NetWorker se expone en el siguiente URI base:
https://[nw-server-hostname]:9090/nwrestapi/Existen diferentes versiones de las API. Las mejoras se han implementado desde que se implementó inicialmente la API REST. Por ejemplo:
https://[nw-server-hostname]:9090/nwrestapi/v1 https://[nw-server-hostname]:9090/nwrestapi/v2 https://[nw-server-hostname]:9090/nwrestapi/v3
El esquema json completo está disponible en
https://[nw-server-hostname]:9090/nwrestapi/v3/schemas/swagger.json
| Código de éxito | Se aplica al método HTTP | Contenido del cuerpo de la respuesta | Descripción |
| 200 | OBTENER | Representación de recursos. | Aceptar. Las operaciones que dan como resultado este estado HTTP llevan la representación de recursos en la carga útil. |
| 201 | EXPONER | Respuesta vacía. | Creado. Este estado indica que se creó un nuevo recurso o un trabajo previsto y que se puede acceder a su dirección URL asociada desde el encabezado de ubicación en la respuesta. |
| 202 | EXPONER | Detalles en respuesta. | Aceptado. Esto indica que se aceptó la solicitud de API. La carga útil indica que se puede acceder a la URL de la instancia del recurso de seguimiento desde el encabezado de ubicación en la respuesta. |
| 204 | PUT/DELETE | Respuesta vacía. | Sin contenido. El estado indica que la operación realizada se realizó correctamente. Sin embargo, no se proporcionarán detalles adicionales. |
| Código de error | Descripción |
| 400 | Solicitud incorrecta. |
| 401 | Credenciales no válidas. |
| 403 | Privilegios insuficientes. |
| 404 | No se encontró el recurso. |
| 405 | Método no permitido. |
| 406 | Se especificó una configuración regional no válida. |
| 500 | Internal Server Error |
Funciones de API REST
| Método HTTP | Acción | Descripción |
| OBTENER | Lectura | Obtiene la representación del recurso. |
| EXPONER | Crear | Crea un nuevo recurso. |
| PONER | Actualización | Actualiza un recurso existente. |
| ELIMINAR | Remove | Elimina un recurso existente. |
Algunos ejemplos:
GET
Enumere todos los clientes.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients
Un solo cliente, que muestra solo tres campos (nombre de host, savesets y grupos de protección)
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?fl=hostname,saveSets,protectionGroups&q=hostname:nwserver121
Enumere los grupos de protección en los que se encuentra un cliente.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?fl=protectionGroups&q=hostname:nwserver121
Mostrar alertas actuales.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/alerts
Mostrar los trabajos fallidos recientes.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/jobs?q=completionStatus:"Failed"&fl=clientHostname,startTime,name,message
Enumere los flujos de trabajo en una política (denominada WinFS en este ejemplo).
https://[nw-server-hostname]:9090/nwrestapi/v3/global/protectionpolicies/WinFS/workflows
Muestra las propiedades de una instancia de saveset solamente (según lo definido por el nombre de host del cliente y el saveset).
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?q=hostname:vm-lego-231 and saveSets:"/etc"
EXPONER:
Inicie una acción de flujo de trabajo.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/protectionpolicies/Angela/workflows/WinFS/op/backup
JSON Body:
{
}
Cree una nueva instancia de cliente (con valores predeterminados para todas las propiedades, excepto las cuatro enumeradas).
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients
JSON Body
{
"hostname": "vm-lego-231",
"backupType": "Filesystem",
"saveSets": [ "/etc" ],
"protectionGroups" : [ "LinuxFS" ]
Información necesaria para el soporte
Entorno:
- Nombre del servidor de NetWorker
- Versión y número de compilación de NetWorker
- Tipo y versión del sistema operativo host de NetWorker Server
hostname
strings /usr/sbin/nsrd | grep -i "(#)"
cat /etc/*release
uname -a
Windows:
nsrwatch
- Explique qué operación de la API REST se está realizando (GET, POST, PUT, DELETE), el URI utilizado y cualquier contenido del cuerpo JSON (cuando corresponda).
- El código de respuesta de la API REST y cualquier mensaje de error proporcionado.
- ¿La conexión y la autorización iniciales se realizaron correctamente entre el cliente de la API REST y NetWorker?
- Archivo de registro de daemon.raw generado desde NetWorker Server:
- Linux: /nsr/logs/daemon.raw
- Windows: C:\Program Files\EMC NetWorker\nsr\logs\daemon.raw
- NetWorker: Cómo utilizar nsr_render_log
- Registros de API REST desde NetWorker Server: /nsr/logs/restapi (Linux) o EMC NetWorker\nsr\logs\restapi (Windows)
- Si tiene problemas de autenticación, consulte el registro de autenticación estándar de NetWorker en /nsr/authc/logs (Linux) o... \EMC NetWorker\nsr\authc-server\tomcat\logs (Windows)
Rendimiento
Si el problema está relacionado con el rendimiento de la API REST, puede usar las siguientes opciones para rastrear el consumo de recursos del proceso nsrtomc+ utilizado por las llamadas a la API.
Linux:
top -b | awk '/nsrtomc+/ {print strftime("%Y-%m-%d-%H:%M:%S", systime()), $0}'
Esta salida muestra la salida superior estándar, pero con marcas de tiempo legibles por humanos. Esto se puede utilizar para revisar el consumo de CPU y memoria por parte del proceso y cuánto tiempo permanecía en un estado determinado cuando se realizaba una llamada REST. Esto se puede comparar con los registros de restapi.log y AUTHC para ver qué llamadas se realizaron y con qué frecuencia.
Windows: En el caso de los servidores Windows, debe instalar algo como "Performance Monitor:
1. Abra Performance Monitor como administrador.
2. En el panel izquierdo, expanda Herramientas de monitoreo y seleccione Monitor de rendimiento.
3. Haga clic con el botón secundario en el panel derecho y seleccione Eliminar todos los contadores.
4. Haga clic con el botón secundario en el panel derecho y seleccione Add Counters.
5. En Available Counters, expanda Memory, seleccione % Commit Bytes y haga clic en Add.6
. En Memoria, seleccione Bytes disponibles y haga clic en Agregar.
7. En Available Counters, expanda Process y seleccione % Processor Time y, en Instances of Selected Object, seleccione la primera entrada de Java y haga clic en Add.
8. En Contadores disponibles, expanda Información del procesador, seleccione % Utilidad del procesador y haga clic en Agregar.
9. Los contadores agregados en el panel derecho deben mostrar:

10. Haga clic en Aceptar. Haga clic con el botón secundario en Monitor de rendimiento y, a continuación, haga clic en Conjunto de recopiladores de> datos nuevos.
11. Proporcione un nombre, por ejemplo: RESTAPI_MON.
12. En la pantalla de ubicación, haga clic en Siguiente, a menos que elija especificar una ubicación de salida alternativa.
13. Seleccione Guardar y cerrar y haga clic en Finalizar.
14. En el panel izquierdo, en Data Collector Sets-User Defined,> abra las propiedades del RESTAPI_MON y seleccione Separados por comas para el formato de registro y haga clic en Ok.

15. En el panel izquierdo, en Data Collector Sets-User Defined,>seleccione el conjunto de Data Collector RESTAPI_MON y haga clic en Start (botón Play).
16. Si se utilizó la ubicación de salida predeterminada, el archivo de .csv aparece en C:\PerfLogs\Admin\RESTAPI_MON.
17. Una vez que el problema se observa y se registra en el archivo de salida, puede detener el monitoreo haciendo clic en Stop en Data Collector Sets-User Defined.
Más recursos
Todos los terminales de la API REST compatibles y los ejemplos de uso se proporcionan en: Guía de referencia de la API REST de NetWorker