Guia de triagem da API REST do NetWorker
Summary: Este artigo da KB apresenta uma visão geral da solução de problemas básicos para problemas relacionados à API REST.
Instructions
Assista no YouTube
Additional Information
Primeiros passos
A interface de programação de aplicativos (API) da transferência de estado representacional (REST) fornece acesso programático ao serviço de proteção de dados do NetWorker. Usando a API REST, os usuários do NetWorker podem criar aplicativos client para automatizar as operações do NetWorker. A API REST do NetWorker é instalada como parte da instalação do servidor NetWorker no mesmo contêiner Tomcat Apache que os NetWorker Authentication Services. A autenticação é feita usando as mesmas credenciais usadas para o NetWorker Management Console.
A API REST permite a interação com recursos identificados por endereços URI (Uniform Resource Identifier). Ele usa verbos HTTP (HEAD, GET, PUT, POST, DELETE) para interagir com o URI (Uniform Resource Identifier) de forma sem monitoramento de estado (o servidor não contém nenhum estado de cliente, sendo cada mensagem autodescritiva).
Este documento trata da interação com recursos do NetWorker usando chamadas API REST gravadas pelo usuário. Não deve ser confundido com as chamadas API REST que são usadas pelas operações de back-end do NetWorker.
Conectando-se ao NetWorker:
Há várias tecnologias diferentes de client da API REST que podem ser usadas para executar os comandos para se conectar ao NetWorker; incluindo, comandos curl (Linux), PowerShell Invoke-WebRequest (Windows) e extensões de navegador do cliente API REST.Há três cabeçalhos necessários para a conexão:
- Content-Type: application/json
- Aceitar: application/json
- Autorização: Básico com nome de usuário e senha codificados em Base 64
Em ambientes em que há várias zonas de dados do NetWorker autenticadas por meio de um único servidor NetWorker AUTHC, um cabeçalho adicional é necessário:
- X-NW-AUTHC-BASE-URL:AUTHC_HOSTNAME_OR_IP:AUTHC_PORT
A API REST do NetWorker é exposta no seguinte URI de base:
https://[nw-server-hostname]:9090/nwrestapi/Existem diferentes versões de APIs. Os aprimoramentos foram implementados desde que a API REST foi inicialmente implementada. Por exemplo:
https://[nw-server-hostname]:9090/nwrestapi/v1 https://[nw-server-hostname]:9090/nwrestapi/v2 https://[nw-server-hostname]:9090/nwrestapi/v3
O esquema json completo está disponível em
https://[nw-server-hostname]:9090/nwrestapi/v3/schemas/swagger.json
| Código de sucesso | Aplica-se ao método HTTP | Conteúdo do corpo da resposta | Descrição |
| 200 | OBTER | Representação de recursos. | OK. As operações que resultam nesse estado HTTP carregam a representação de recursos no payload. |
| 201 | POSTAR | Resposta vazia. | Criado. Esse status indica que um novo recurso ou um trabalho pretendido foi criado e sua URL associada pode ser acessada a partir do cabeçalho do local na resposta. |
| 202 | POSTAR | Detalhes em resposta. | Aceito. Isso indica que a solicitação da API foi aceita. A carga indica que a URL para a instância do recurso de rastreamento pode ser acessada a partir do cabeçalho do local na resposta. |
| 204 | COLOCAR/EXCLUIR | Resposta vazia. | Sem conteúdo. O estado indica que a operação executada foi bem-sucedida. No entanto, não há detalhes adicionais a serem fornecidos. |
| Código de erro | Descrição |
| 400 | Pedido inválido. |
| 401 | Credenciais inválidas. |
| 403 | Privilégios insuficientes. |
| 404 | Recurso não encontrado. |
| 405 | Método não permitido. |
| 406 | Localidade inválida especificada. |
| 500 | Erro interno do servidor. |
Funções da API REST
| Método HTTP | Ação | Descrição |
| OBTER | Read | Obtém a representação de recursos. |
| POSTAR | Create | Cria um novo recurso. |
| COLOCAR | Atualização | Atualiza um recurso existente. |
| EXCLUIR | Remover | Exclui um recurso existente. |
Alguns exemplos:
GET
Listar todos os clients.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients
Apenas um client, mostrando apenas três campos (nome do host, saveSets e protectionGroups)
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?fl=hostname,saveSets,protectionGroups&q=hostname:nwserver121
Liste os grupos de proteção nos quais um client está.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?fl=protectionGroups&q=hostname:nwserver121
Mostrar alertas atuais.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/alerts
Mostrar trabalhos com falha recentes.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/jobs?q=completionStatus:"Failed"&fl=clientHostname,startTime,name,message
Liste os fluxos de trabalho em uma política (chamada WinFS neste exemplo).
https://[nw-server-hostname]:9090/nwrestapi/v3/global/protectionpolicies/WinFS/workflows
Liste as propriedades somente de uma instância de saveset (conforme definido pelo nome de host do client e pelo saveset).
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?q=hostname:vm-lego-231 and saveSets:"/etc"
POSTAR:
Inicie uma ação de fluxo de trabalho.
https://[nw-server-hostname]:9090/nwrestapi/v3/global/protectionpolicies/Angela/workflows/WinFS/op/backup
JSON Body:
{
}
Crie uma nova instância de client (com valores padrão para todas as propriedades, exceto as quatro listadas).
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients
JSON Body
{
"hostname": "vm-lego-231",
"backupType": "Filesystem",
"saveSets": [ "/etc" ],
"protectionGroups" : [ "LinuxFS" ]
Informações necessárias para suporte
Ambiente:
- Nome do servidor do NetWorker
- Número da versão e do build do NetWorker
- Tipo e versão do sistema operacional do host do servidor do NetWorker
hostname
strings /usr/sbin/nsrd | grep -i "(#)"
cat /etc/*release
uname -a
Windows:
nsrwatch
- Explique qual operação da API REST está sendo executada (GET, POST, PUT, DELETE), o URI usado, o conteúdo do corpo JSON (quando aplicável).
- Código de resposta da API REST e qualquer mensagem de erro fornecida.
- A conexão e a autorização iniciais foram bem-sucedidas entre o client da API REST e o NetWorker?
- Processado daemon.raw arquivo de log do servidor do NetWorker:
- Linux: /nsr/logs/daemon.raw
- Windows: C:\Program Files\EMC NetWorker\nsr\logs\daemon.raw
- NetWorker: Como usar nsr_render_log
- Logs da API REST do servidor do NetWorker: /nsr/logs/restapi (Linux) ou EMC NetWorker\nsr\logs\restapi (Windows)
- Para problemas de autenticação, consulte a autenticação padrão do NetWorker fazendo log-in em /nsr/authc/logs (linux) ou .. \EMC NetWorker\nsr\authc-server\tomcat\logs (Windows)
Desempenho
Se o problema estiver relacionado ao desempenho da API REST, você poderá usar as seguintes opções para controlar o consumo de recursos do processo nsrtomc+ usado pelas chamadas de API.
Linux:
top -b | awk '/nsrtomc+/ {print strftime("%Y-%m-%d-%H:%M:%S", systime()), $0}'
Esse resultado mostra a saída superior padrão, mas com registros de data e hora legíveis. Isso pode ser usado para analisar o consumo de CPU e memória pelo processo e por quanto tempo ele permaneceu em um determinado estado quando uma chamada REST foi feita. Isso pode ser comparado com os registros restapi.log e AUTHC para ver quais chamadas foram feitas e com que frequência.
Windows: Para servidores Windows, você deve instalar algo como "Monitor de desempenho:
1. Abra o Monitor de desempenho como administrador.
2. No painel esquerdo, expanda Ferramentas de Monitoramento e selecione Monitor de Desempenho.
3. Clique com o botão direito do mouse no painel direito e selecione Remover todos os contadores.
4. Clique com o botão direito do mouse no painel direito e selecione Add Counters.
5. Em Contadores disponíveis, expanda Memória, selecione % Confirmar bytes e clique em Adicionar.6
. Em Memory, selecione Available Bytes e clique em Add.
7. Em Contadores disponíveis, expanda Processo e selecione % Tempo do processador e, em Instâncias do objeto selecionado, selecione a primeira entrada Java e clique em Adicionar.
8. Em Contadores disponíveis, expanda Informações do processador e selecione % Utilitário do processador, clique em Adicionar.
9. Os contadores adicionados no painel direito devem mostrar:

10. Clique em OK. Clique com o botão direito do mouse em Monitor de Desempenho e clique em Novo Conjunto de Coletores de> Dados.
11. Forneça um nome, por exemplo: RESTAPI_MON.
12. Na tela de localização, clique em Next, a menos que você opte por especificar um local de saída alternativo.
13. Selecione Salvar e fechar e clique em Concluir.
14. No painel esquerdo, em Conjuntos de Coletores de Dados -> Definido pelo usuário, abra as propriedades RESTAPI_MON e selecione Separados por vírgula para o formato de registro, clique em OK.

15. No painel esquerdo, em Conjuntos de Coletores de Dados -> Definidos pelo Usuário, selecione o conjunto de coletores de dados RESTAPI_MON e clique em Iniciar (botão Reproduzir).
16. Se o local de saída padrão foi usado, o arquivo .csv aparecerá em C:\PerfLogs\Admin\RESTAPI_MON.
17. Depois que o problema for observado e registrado no arquivo de saída, você poderá interromper o monitoramento clicando em Stop em Data Collector Sets-User Defined.
Mais recursos
Todos os endpoints e exemplos de uso da API REST compatíveis são fornecidos em: Guia de referência da API REST do NetWorker