Veritas NetBackup 並列ストリームフレームワーク SDK 開発者ガイド
- NetBackup Parallel Streaming Framework を使用したワークロードの保護
- NetBackup Parallel Streaming Framework プラグインアーキテクチャ
- NetBackup Parallel Streaming Framework SDK の配備
- プラグイン開発の準備
- サンプルプラグインの使用
- 作業負荷プラグインの開発
- ワークロードプラグインの配備
- NetBackup Parallel Streaming Framework API リファレンス
- ログとトラブルシューティング
プラグインのログの有効化
このセクションには、次のトピックが含まれます。
NetBackup は、NetBackup サーバーおよびクライアントのさまざまな処理についての情報を、ログディレクトリに記録します。NetBackup 管理者は、ログに含める詳細を決めるため、ログレベルを構成できます。ログレベルの範囲は 0 から 5 で、数が大きいほどログは詳細になります。
BigData ポリシー操作のすべてのログは、次の場所のサブディレクトリに書き込まれます。
Windows の場合:
<install_path>\NetBackup\logs
UNIX の場合:
/usr/openv/netbackup/logs
メモ:
ログが書き込まれるようにするには、ログのフォルダがすでに存在する必要があります。フォルダが存在しない場合は、手動で作成する必要があります。
ログおよびログ記録について詳しくは、次を参照してください。
次の表に、NetBackup プラグインで利用可能なログに関する情報を一覧表示します。
表: NetBackup プラグインで利用可能なログ
ログディレクトリ | ログメッセージが関連する事項 | ログが利用可能な場所 |
---|---|---|
Windows の場合:
UNIX の場合:
| ポリシーの構成および検証 | バックアップホスト |
Windows の場合:
UNIX の場合:
| PSF フレームワーク、検出、事前処理と事後処理、およびプラグインのログ | バックアップホスト |
Windows の場合:
UNIX の場合:
| ポリシー検証、バックアップ、およびリストア操作 | メディアサーバー |
Windows の場合:
UNIX の場合:
| バックアップ処理 | バックアップホスト |
Windows の場合:
UNIX の場合:
| リストアプロセス | バックアップホスト |
NetBackup PSF SDK API では、他の NetBackup プロセスと一貫性がある方法でプラグインの情報がログ記録されます。プラグインでは、aapi_session_def_t->sd_log 関数を使用して NetBackup と同じファイルにメッセージをログ記録します。たとえば、検出アプリケーションとプラグインの検出セッションのログメッセージは、照合されて、<install_path>/NetBackup/logs/nbaapidiscv
ディレクトリに配置されている同じファイルに記録されます。統合ログメッセージには、関連する情報が順番に表示され、プラグインの問題をトラブルシューティングするのに役立ちます。ログメッセージにはタイムスタンプとプロセス ID が含まれており、複数のプロセスが同時に実行されるときに便利です。
ログファイルにはさまざまなデバッグレベルを適用でき、プラグイン開発者に適用可能なレベルは aapi_common.h ファイルで定義します。sd_log メソッドで、次のレベルの重大度パラメータのいずれかを使用します。トラブルシューティングにログを活用できるようにするために、適切なデバッグ重大度レベルを使用するようにします。
次のリストに、ログレベルとその説明を示します。
ログレベルの値 | 説明 |
---|---|
AAPI_ESINFO | 情報を示します。 |
AAPI_ESWARN | 警告を示します。 |
AAPI_ESDEBUG | デバッグを示します。 |
AAPI_ESERROR | エラーを示します。 |
AAPI_ESCRITICAL | 重大なエラーを示します。 |
ログレベルを最小に設定した場合でも、重大なエラー、エラー、および警告は記録されます。
ログレベルについて詳しくは、次の記事を参照してください。
検出、バックアップ、またはリストア操作用にすでに作成されている NetBackup の関連ログにエントリを追加するように、プラグインを設定できます。プラグインでは、セッションオブジェクトが提供する sd_log メソッドを呼び出す必要があります。これにより、操作に固有のログ方式が識別されます。セッションオブジェクトは、初期の aapi_pgn_open_server API で利用可能で、プラグインが作業負荷と通信するために使用します。
次の例は、ログを有効にするために、プラグインでセッションオブジェクトを使用する方法を示します。
const aapi_session_def_t *g_session_definition; //holds the session object globally void setGlobalSessionDef(const aapi_session_def_t * sd) { g_session_definition = sd; } const aapi_session_def_t * getGlobalSessionDef() { return g_session_definition; } #define INFO getGlobalSessionDef(), AAPI_ESINFO, __FUNCTION__ #define WARNING getGlobalSessionDef(), AAPI_ESWARN, __FUNCTION__ #define DEBUG getGlobalSessionDef(), AAPI_ESDEBUG, __FUNCTION__ #define ERROR getGlobalSessionDef(), AAPI_ESERROR, __FUNCTION__ #define CRITICAL getGlobalSessionDef(), AAPI_ESCRITICAL, __FUNCTION__ #define SAMPLEPGN_LOG(x) LogMsg x; //open_server implementation gets the session object stored in the global session instance pgn_open_server (const aapi_session_def_t *session, const aapi_server_name_t aapi_server_name, const aapi_cred_t *credentials, aapi_pgn_server_handle_t *sh) { setGlobalSessionDef(session); SAMPLEPGN_LOG(DEBUG,"entering"); ... } //The wrapper log method is used to write to NetBackup logs. //This method can either directly use the global session object, or //accept the session instance as an input parameter for log writing void LogMsg (const aapi_session_def_v1_t *sd, aapi_severity_v1_t severity_level, char *function, char *fmt, ...) { //format the log message //log to NetBackup logs using session's sd_log method sd->sd_log("PLUGIN_APPTYPE_VERSION", formatted_message, severity_level); }
ログコードの実装について詳しくは、サンプルプラグインについて のトピックを参照してください。
プラグインの sd_log の呼び出しの最初のパラメータとして、一意かつ特定の文字列 (理想的にはプラグインの種類とバージョン) を使用することをお勧めします。ここで指定した文字列は、各ログメッセージの先頭に追加されます。これにより、ログファイルでプラグインに固有のエントリを識別しやすくなります。