Cluster Server 7.3.1 エージェント開発者ガイド - AIX、Linux、Solaris、Windows

Last Published:
Product(s): InfoScale & Storage Foundation (7.3.1)
  1. 概要
    1.  
      VCS エージェントについて
    2. エージェント関数
      1.  
        エージェントフレームワークについて
      2.  
        IMF(Intelligent Monitoring Framework)について
      3.  
        リソースの種類の定義
      4.  
        エージェント関数(エントリポイント)について
      5.  
        on-off、on-only、persistent リソースについて
      6. 属性について
        1.  
          属性のデータ型
        2.  
          属性値の種類
        3.  
          システムにまたがる属性の範囲: グローバル属性とローカル属性
        4.  
          属性の有効期間: 一時属性
      7.  
        アプリケーションの Intentional Offline について
    3. エージェントの開発について
      1.  
        アプリケーションに関する注意事項
      2. エージェント開発プロセスの高度な概要
        1.  
          タイプ定義ファイルの作成
        2.  
          エントリポイントの開発
        3.  
          エージェントの作成
        4.  
          エージェントのテスト
  2. エージェントのエントリポイントの概要
    1. エージェントのエントリポイントについて
      1.  
        サポートされるエントリポイント
      2.  
        エージェントフレームワークがエントリポイントと相互作用するしくみ
    2. エージェントエントリポイントの説明
      1.  
        open エントリポイントについて
      2.  
        monitor エントリポイントについて
      3.  
        online エントリポイントについて
      4.  
        offline エントリポイントについて
      5.  
        clean エントリポイントについて
      6. action エントリポイントについて
        1.  
          action エントリポイントの戻り値
      7. info エントリポイントについて
        1.  
          info エントリポイントの戻り値
        2.  
          ResourceInfo 属性について
        3.  
          info エントリポイントの呼び出し
      8.  
        attr_changed エントリポイントについて
      9.  
        close エントリポイントについて
      10.  
        shutdown エントリポイントについて
      11.  
        imf_init エントリポイントについて
      12.  
        imf_register エントリポイントについて
      13.  
        imf_getnotification エントリポイントについて
      14.  
        migrate エントリポイントについて
      15.  
        meter エントリポイントについて
    3.  
      エントリポイントの戻り値
    4. C++ またはスクリプトエントリポイントの使用上の注意事項
      1. VCSAgStartup ルーチンについて
        1.  
          スクリプトを使ってエントリポイントを実装する場合
        2.  
          C++ ですべてまたは一部のエントリポイントを実装する場合
        3.  
          例: C++ とスクリプトを使用する VCSAgStartup エントリポイント
    5. エージェント情報ファイルについて
      1. エージェント情報ファイルの例(UNIX)
        1.  
          エージェント情報
        2.  
          属性の引数の詳細
      2.  
        エージェント XML 情報ファイルの実装
    6. ArgList 属性と ArgListValues 属性について
      1.  
        V50 以降として登録されたエージェントの ArgListValues 属性
      2. 名前と値のタプル形式の概要
        1.  
          スカラー属性形式
        2.  
          ベクトル属性形式
        3.  
          キーリスト属性形式
        4.  
          アソシエーション属性形式
      3.  
        異なるエージェントバージョンの ArgListValues 属性
      4.  
        エントリポイントのタイムアウトについて
  3. C++ でのエントリポイントの作成
    1. C++ でのエントリポイントの作成について
      1.  
        この章で使うエントリポイントの例
    2.  
      データ構造
    3. C++ のエントリポイントの構文
      1.  
        C++ VCSAgStartup の構文
      2.  
        C++ monitor の構文
      3. C++ info の構文
        1.  
          resinfo_op
        2.  
          info_output
        3.  
          opt_update_args
        4.  
          opt_add_args
        5.  
          例: C++ での info エントリポイントの実装
      4.  
        C++ online の構文
      5.  
        C++ offline の構文
      6.  
        C++ clean の構文
      7.  
        C++ action の構文
      8.  
        C++ attr_changed の構文
      9.  
        C++ open の構文
      10.  
        C++ close の構文
      11.  
        C++ shutdown の構文
      12.  
        C++ migrate の構文
      13.  
        C++ meter の構文
    4. エージェントフレームワークの基本関数
      1.  
        VCSAgGetMonitorLevel
      2.  
        VCSAgGetFwVersion
      3.  
        VCSAgGetRegVersion
      4.  
        VCSAgRegisterEPStruct
      5.  
        VCSAgSetCookie2
      6.  
        VCSAgRegister
      7.  
        VCSAgUnregister
      8.  
        VCSAgGetCookie
      9.  
        VCSAgStrlcpy
      10.  
        VCSAgStrlcat
      11.  
        VCSAgSnprintf
      12.  
        VCSAgCloseFile
      13.  
        VCSAgDelString
      14.  
        VCSAgExec
      15.  
        VCSAgExecWithTimeout
      16.  
        VCSAgGenSnmpTrap
      17.  
        VCSAgSendTrap
      18.  
        VCSAgLockFile
      19.  
        VCSAgInitEntryPointStruct
      20.  
        VCSAgSetStackSize
      21.  
        VCSAgUnlockFile
      22.  
        VCSAgValidateAndSetEntryPoint
      23.  
        VCSAgSetLogCategory
      24.  
        VCSAgGetProductName
      25.  
        VCSAgMonitorReturn
      26.  
        VCSAgSetResEPTimeout
      27.  
        VCSAgDecryptKey
      28.  
        VCSAgGetConfDir
      29.  
        VCSAgGetHomeDir
      30.  
        VCSAgGetLogDir
      31.  
        VCSAgGetSystemName
      32.  
        VCSAG_CONSOLE_LOG_MSG
      33.  
        VCSAG_LOG_MSG
      34.  
        VCSAG_LOGDBG_MSG
      35.  
        VCSAG_RES_LOG_MSG
    5. コンテナサポートのためのエージェントフレームワーク基本関数
      1.  
        VCSAgIsContainerUp
      2.  
        VCSAgGetContainerTypeEnum
      3.  
        VCSAgExecInContainer2
      4.  
        VCSAgIsContainerCapable
      5.  
        VCSAgExecInContainerWithTimeout
      6.  
        VCSAgGetUID
      7.  
        VCSAgIsPidInContainer
      8.  
        VCSAgIsProcInContainer
      9.  
        VCSAgGetContainerID2
      10.  
        VCSAgGetContainerName2
      11.  
        VCSAgGetContainerBasePath
      12.  
        VCSAgGetContainerEnabled
  4. スクリプトでのエントリポイントの作成
    1. スクリプトでのエントリポイントの作成について
      1. スクリプトのエントリポイント使用上のルール
        1.  
          UNIX プラットフォームの場合
      2.  
        スクリプトのエントリポイントのパラメータと値
      3.  
        ArgList 属性
      4.  
    2. スクリプトエントリポイントの構文
      1.  
        monitor スクリプトの構文
      2.  
        online スクリプトの構文
      3.  
        offline スクリプトの構文
      4.  
        clean スクリプトの構文
      5.  
        action スクリプトの構文
      6.  
        attr_changed スクリプトの構文
      7.  
        info スクリプトの構文
      8.  
        open スクリプトの構文
      9.  
        close スクリプトの構文
      10.  
        shutdown スクリプトの構文
      11.  
        imf_init スクリプトの構文
      12.  
        imf_register スクリプトの構文
      13.  
        imf_getnotification スクリプトの構文
      14.  
        migrate スクリプトの構文
      15.  
        meter スクリプトの構文
    3. エージェントフレームワークの基本関数
      1.  
        VCSAG_GET_MONITOR_LEVEL
      2.  
        VCSAG_GET_AGFW_VERSION
      3.  
        VCSAG_GET_REG_VERSION
      4.  
        VCSAG_SET_RES_EP_TIMEOUT
      5. VCSAG_GET_ATTR_VALUE
        1.  
          キーリスト属性のキーの数と引数リストの属性のインデックスを取得するには
        2.  
          キーリストとベクトル属性の特定のキーを取得するには
        3.  
          アソシエーション属性でキーの数を、引数リストで属性のインデックスを取得するには
        4.  
          アソシエーション属性の特定のキーまたは値を取得するには:
      6.  
        VCSAG_SET_RESINFO
      7.  
        VCSAG_MONITOR_EXIT
      8.  
        VCSAG_SYSTEM
      9.  
        VCSAG_SU
      10.  
        VCSAG_RETURN_IMF_RESID
      11.  
        VCSAG_RETURN_IMF_EVENT
      12.  
        VCSAG_BLD_PSCOMM
      13.  
        VCSAG_PHANTOM_STATE
      14.  
        VCSAG_SET_ENVS
      15.  
        VCSAG_LOG_MSG
      16.  
        VCSAG_LOGDBG_MSG
      17.  
        VCSAG_SQUEEZE_SPACES
    4. コンテナをサポートするエージェントフレームワーク基本関数
      1.  
        VCSAG_GET_CONTAINER_BASE_PATH
      2.  
        VCSAG_GET_CONTAINER_INFO
      3.  
        VCSAG_IS_PROC_IN_CONTAINER
      4.  
        VCSAG_EXEC_IN_CONTAINER
    5. スクリプトのエントリポイントの例
      1.  
        FileOnOff の online エントリポイント
      2.  
        FileOnOff の monitor エントリポイント
      3.  
        intentional offline での monitor エントリポイント
      4.  
        FileOnOff の offline エントリポイント
      5.  
        基本監視(レベル 1)と詳細監視(レベル 2)を持つエージェントのエントリポイントの監視
  5. エージェントメッセージのログ
    1.  
      エージェントメッセージのログについて
    2. C++ とスクリプトのエントリポイントでのログ
      1. エージェントメッセージ: 書式
        1.  
          Timestamp
        2.  
          ニーモニック
        3.  
          重大度(Severity)
        4.  
          UMI
        5.  
          メッセージテキスト
      2.  
        VCS エージェントのエントリポイントのログ統合
    3. C++ のエージェントのログ用 API
      1.  
        C++ エントリポイントのエージェントアプリケーションログ用マクロ
      2.  
        C++ エントリポイント用のエージェントデバッグログ記録マクロ
      3.  
        C++ マクロの重要度引数
      4.  
        VCSAG_LOG_INIT を使った function_name の初期化
      5.  
        ログカテゴリ
      6.  
        C++ エージェントで使用されるログ用 API の例
    4. スクリプトのエントリポイントのログ記録関数
      1.  
        スクリプトでの関数の使用
      2. VCSAG_SET_ENVS
        1.  
          VCSAG_SET_ENVS の例 - シェルスクリプトのエントリポイント
        2.  
          VCSAG_SET_ENVS の例 - Perl スクリプトのエントリポイント
        3.  
          VCSAG_SET_ENVS の例 - Python スクリプトのエントリポイント
      3. VCSAG_LOG_MSG
        1.  
          VCSAG_LOG_MSG の例 - シェルスクリプトのエントリポイント
        2.  
          VCSAG_LOG_MSG の例 - Perl スクリプトのエントリポイント
        3.  
          VCSAG_LOG_MSG の例 - Python スクリプトのエントリポイント
      4. VCSAG_LOGDBG_MSG
        1.  
          VCSAG_LOGDBG_MSG の例 - シェルスクリプトのエントリポイント
        2.  
          VCSAG_LOGDBG_MSG の例 - Perl スクリプトのエントリポイント
        3.  
          VCSAG_LOGDBG_MSG の例 - Python スクリプトのエントリポイント
      5.  
        スクリプトエージェントで使用するログ用関数の例
  6. カスタムエージェントの作成
    1. エージェント開発で使用するファイル
      1.  
        スクリプトベースのエージェントバイナリ
      2.  
        C++ ベースのエージェントバイナリ
    2. カスタムエージェントのためのタイプ定義ファイルの作成
      1.  
        タイプ定義ファイルの命名規則
      2.  
        例: FileOnOffTypes.cf
      3.  
        例: intentional offline をサポートするカスタムエージェントのためのタイプ定義
      4.  
        agentTypes.cf ファイル作成の必要条件
      5.  
        設定へのカスタムタイプ定義の追加
    3. UNIX でのカスタムエージェントの作成
      1.  
        スクリプトを使用したエントリポイントの実装
      2.  
        例: UNIX でのスクリプトエントリポイントの使用
      3.  
        例: UNIX での VCSAgStartup() およびスクリプトエントリポイントの使用
      4.  
        C++ を使用したエントリポイントの実装
      5.  
        例: UNIX での C++ エントリポイントの使用
      6.  
        例: UNIX での C++ およびスクリプトエントリポイントの使用
    4.  
      カスタムエージェントのインストール
    5. カスタムリソースタイプに対するリソースの定義
      1. サンプルリソース定義
        1.  
          FileOnOff エージェントが設定情報を使用する方法
    6.  
      エージェントフレームワークのバージョンの詳細
  7. スクリプトベースの IMF 対応カスタムエージェントの作成
    1.  
      スクリプトベースの IMF 対応カスタムエージェントの作成について
    2.  
      AMF プラグインのスクリプトエージェントとのリンク
    3. オンラインおよびオフライン状態監視用にリソース登録を行う AMF プラグインで必要な XML ファイルの作成
      1.  
        オンラインの監視に対する AMF とのプロセスベースのリソースの登録に対する amfregister.xml の例
      2.  
        オフライン監視のためにプロセスベースリソースを AMF に登録するための amfregister.xml の例
      3.  
        所定のプロセスに対するオンラインおよびオフラインの IMF 監視の amfregister.xml の例
      4.  
        amfregister.xml に RepearName タグを追加する例
    4.  
      設定への IMF および IMFRegList 属性の追加
    5.  
      IMF 統合なしの監視
    6.  
      IMF を使用しない LevelTwo 監視頻度での監視
    7.  
      IMF 統合を使用した監視
    8.  
      IMF を使用した LevelTwo の監視頻度での監視
    9.  
      スクリプトベースの IMF 対応のカスタムエージェントのインストール
  8. エージェントのテスト
    1.  
      テストエージェントについて
    2. デバッグメッセージの使用
      1.  
        エージェント関数(エントリポイント)のデバッグ
      2.  
        エージェントフレームワークのデバッグ
    3. AdvDbg 属性を使ったデバッグ
      1. AdvDbg 属性の動作
        1.  
          pstack アクションの動作
        2.  
          core アクションの動作
      2.  
        AdvDbg の属性によるエントリポイントの既存の機能への影響
    4. エンジンプロセスを使用したエージェントのテスト
      1.  
        テストコマンド
  9. 静的タイプ属性
    1. 静的属性について
      1.  
        静的タイプ属性の無効化
    2. 静的タイプ属性の定義
      1.  
        ActionTimeout
      2. AdvDbg
        1.  
          AdvDbg 属性の設定と個別のキーの形式
        2.  
          monitor エントリポイントの AdvDbg 属性を設定するための推奨される手順
      3.  
        AEPTimeout
      4.  
        AgentClass
      5.  
        AgentDirectory
      6.  
        AgentFailedOn
      7.  
        AgentFile
      8.  
        AgentPriority
      9.  
        AgentReplyTimeout
      10.  
        AgentStartTimeout
      11.  
        AlertOnMonitorTimeouts
      12. ArgList
        1.  
          ArgList 参照属性
      13.  
        AttrChangedTimeout
      14.  
        AvailableMeters
      15.  
        CleanRetryLimit
      16.  
        CleanTimeout
      17.  
        CloseTimeout
      18.  
        ContainerOpts
      19.  
        ConfInterval
      20.  
        EPClass
      21.  
        EPPriority
      22.  
        ExternalStateChange
      23.  
        FaultOnMonitorTimeouts
      24.  
        FaultPropagation
      25.  
        FireDrill
      26.  
        IMF
      27.  
        IMFRegList
      28.  
        InfoInterval
      29.  
        InfoTimeout
      30.  
        IntentionalOffline
      31.  
        LevelTwoMonitorFreq
      32.  
        LogDbg
      33.  
        LogFileSize
      34.  
        LogViaHalog
      35.  
        ManageFaults
      36.  
        Meters
      37.  
        MeterControl
      38.  
        MeterRegList
      39.  
        MeterRetryLimit
      40.  
        MeterTimeout
      41.  
        MonitorInterval
      42.  
        MonitorStatsParam
      43.  
        MonitorTimeout
      44.  
        MigrateTimeout
      45.  
        MigrateWaitLimit
      46.  
        NumThreads
      47.  
        OfflineMonitorInterval
      48.  
        OfflineTimeout
      49.  
        OfflineWaitLimit
      50.  
        OnlineClass
      51.  
        OnlinePriority
      52.  
        OnlineRetryLimit
      53.  
        OnlineTimeout
      54.  
        OnlineWaitLimit
      55.  
        OpenTimeout
      56.  
        Operations
      57.  
        RegList
      58.  
        RestartLimit
      59.  
        ScriptClass
      60.  
        ScriptPriority
      61.  
        SourceFile
      62.  
        SupportedActions
      63.  
        SupportedOperations
      64.  
        ToleranceLimit
  10. 状態の遷移図
    1.  
      状態遷移
    2.  
      ManageFaults 属性に関する状態の遷移
  11. 国際化されたメッセージ
    1.  
      国際化されたメッセージについて
    2. SMC ファイルの作成
      1.  
        SMC の書式
      2.  
        SMC ファイルの例
      3.  
        SMC ファイルの形式
      4.  
        SMC ファイルと BMC ファイルの名前
      5.  
        メッセージ例
      6.  
        書式指定子の使用
    3. SMC ファイルから BMC ファイルへの変換
      1. BMC ファイルの格納
        1.  
          VCS サポート言語
      2.  
        BMC ファイルの内容の表示
    4. BMC マップファイルの使用
      1.  
        BMC マップファイルの場所
      2.  
        BMC マップファイルの作成
      3.  
        BMC マップファイルの例
    5.  
      BMC ファイルの更新
  12. First Failure Data Capture(FFDC)を使用した VCS リソースの予期しない動作のトラブルシューティング
    1.  
      VCS リソースの予期しない動作をトラブルシューティングするための FFDC(First Failure Data Capture)の強化
  13. 付録 A. 5.0 より前の VCS エージェントの使用
    1. 5.0 以前の VCS エージェントの使用と V50 以降への登録
      1.  
        V40 エージェントから V50 以降のエージェントへの変更手順の概要
      2.  
        V40 と V50 以降のスクリプト例
      3.  
        ag_i18n_inc モジュールをスクリプトエントリポイントに参照元として登録
    2.  
      VCS 4.0 以前のエージェントを使用するためのガイドライン
    3. VCS 4.0 以前のエージェントのログメッセージ
      1.  
        ログタグ(VCS 4.0 以前)のログ重要度(VCS 4.0)へのマッピング
      2.  
        VCS 4.0 以上での VCS 4.0 以前のメッセージの表示
      3.  
        VCS 4.0 以前の API および VCS 4.0 ログ用マクロ
    4. VCS 4.0 以前のメッセージ API
      1.  
        VCSAgLogConsoleMsg
      2.  
        VCSAgLogI18NMsg
      3.  
        VCSAgLogI18NMsgEx
      4.  
        VCSAgLogI18NConsoleMsg
      5.  
        VCSAgLogI18NConsoleMsgEx

VCSAG_SU

エントリポイントは、別のユーザーのコンテキストでコマンドを実行する必要がある場合は、この関数を使う必要があります。

入力パラメータ:

  • ユーザー名

  • su オプションの文字列(文字列がスペースで区切られている場合は、引用符で囲む必要があります)

  • 引数付きのコマンドの文字列

出力パラメータ

  • システム($command)の戻り値

Shell の場合の使い方:

VCSAG_SU "${user}" "-" "${program}"

Perl の場合の使い方:

VCSAG_SU($user,"-", $program);