「NetWorker REST APIトリアージ ガイド」
Summary: このKBでは、RESTAPI関連の問題の基本的なトラブルシューティングの概要について説明します。
Instructions
YouTubeで視聴する
Additional Information
はじめに
Representational State Transfer (REST)アプリケーション プログラミング インターフェイス(API)は、NetWorkerデータ保護サービスへのプログラムによるアクセスを提供します。NetWorkerユーザーはREST APIを使用して、NetWorker操作を自動化するクライアント アプリケーションを構築できます。NetWorker REST APIは、NetWorkerサーバーのインストールの一環として、NetWorker認証サービスと同じApache tomcatコンテナにインストールされます。認証は、NetWorker Management Consoleで使用されているものと同じ認証情報を使用して行われます。
REST APIを使用すると、Uniform Resource Identifier(URI)アドレスで識別されるリソースとのやり取りが可能になります。HTTP 動詞 (HEAD、GET、PUT、POST、DELETE) を使用して、ステートレスな方法で Uniform Resource Identifier (URI) と対話します (サーバーにはクライアント状態が含まれておらず、各メッセージは自己記述的です)。
このドキュメントでは、ユーザー作成のREST API呼び出しを使用したNetWorkerリソースとのやり取りについて説明します。バックエンドNetWorker操作で使用されるREST APIコールと混同しないでください。
NetWorkerへの接続:
コマンドを実行してNetWorkerに接続するために使用できるREST APIクライアント テクノロジーはいくつかあります。これには、 curl コマンド (Linux)、PowerShell Invoke-WebRequest (Windows)、REST API クライアント ブラウザー拡張機能が含まれます。接続には次の3つのヘッダーが必要です。
- Content-Type: application/json
- 同意:application/json
- 認証:Basic (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 | POST | 応答が空です。 | 作成。このステータスは、新しいリソースまたは目的のジョブが作成され、関連する URL が応答のロケーション ヘッダーからアクセスできることを示します。 |
| 202 | POST | 回答の詳細。 | 受け入れ られる。これは、APIリクエストが受け入れられたことを示します。ペイロードは、追跡リソース インスタンスへの URL が応答の location ヘッダーからアクセスできることを示します。 |
| 204 | PUT/DELETE | 応答が空です。 | コンテンツがありません。状態は、実行された操作が成功したことを示します。ただし、追加の詳細は提供されません。 |
| エラー コード | 説明 |
| 400 | リクエストが正しくありません。 |
| 401 | 認証情報が無効です。 |
| 403 | 権限が不十分です。 |
| 404 | リソースが見つかりません。 |
| 405 | メソッドは許可されていません。 |
| 406 | 無効なロケールが指定されています。 |
| 500 | Internal Server Error. |
REST API関数
| HTTP メソッド | 動作 | 説明 |
| 取得 | 読み取り | リソース表現を取得します。 |
| POST | 作成 | 新しいリソースを作成します。 |
| 置く | 更新 | 既存のリソースを更新します。 |
| DELETE | 削除 | 既存のリソースを削除します。 |
いくつかの例:
GET
すべてのクライアントを一覧表示します。
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients
クライアントは1つのみで、3つのフィールド(ホスト名、saveSets、protectionGroups)のみを表示
https://[nw-server-hostname]:9090/nwrestapi/v3/global/clients?fl=hostname,saveSets,protectionGroups&q=hostname:nwserver121
1つのクライアントが含まれる保護グループを一覧表示します。
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
1つのポリシー(この例では WinFS )のワークフローを一覧表示します。
https://[nw-server-hostname]:9090/nwrestapi/v3/global/protectionpolicies/WinFS/workflows
1つのセーブセット インスタンスのみのプロパティを一覧表示します(クライアントのホスト名とセーブセットで定義)。
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サーバ名
- 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 Serverの場合は、「Performance Monitor:
1.管理者としてパフォーマンス モニターを開きます。
2.左側のペインで、監視ツールを展開し、パフォーマンス モニターを選択します。
3.右側のペイン内を右クリックし、[すべてのカウンターを削除] を選択します。
4.右側のペイン内を右クリックし、[カウンターの追加] を選択します。
5.[Available Counters]で[Memory]を展開し、[ % Commit Bytes]を選択して[Add.6
]をクリックします。[Memory ]で[Available Bytes]を選択し、[Add]をクリックします。
7.[Available Counters]で[Process]を展開し、[% Processor Time]を選択して、[Instances of Selected object]で最初のJavaエントリーを選択し、[Add]をクリックします。
8.[Available Counters]で[Processor Information]を展開し、[% Processor Utility]を選択して[Add]をクリックします。
9.右側のペインに追加されたカウンターには、次のように表示されます。

10.[OK] をクリックします。パフォーマンス モニターを右クリックして、新規 -> Data Collector セット をクリックします。
11.名前を入力します(例: RESTAPI_MON。
12.代替出力場所を指定することを選択しない限り、[ 場所]画面で[次へ]をクリックします。
13.保存して閉じる を選択し、完了をクリックします。
14.左側のペインの [Data Collector Sets -> User Defined]で、RESTAPI_MONプロパティを開き、ログ形式として[Comma Separated]を選択し、[Ok]をクリックします。

15.左側のペインの [データ コレクター セット -> ユーザー定義]で、RESTAPI_MONデータ コレクター セットを選択し、[スタート]([再生]ボタン)をクリックします。
16.既定の出力場所が使用された場合、.csv ファイルは C:\PerfLogs\Admin\RESTAPI_MON の下に表示されます。
17.問題が発生し、出力ファイルに記録されたら、[データ コレクター セット - ユーザー定義]の下にある[停止]をクリックして、監視を停止できます。
その他のリソース
サポートされているすべてのREST APIエンドポイントと使用例は、次の場所で提供されています。NetWorker REST APIリファレンス ガイド