識別シミュレーションを使用したペイロード実行の生成とシミュレーション

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む19読むのに数分
  • 識別シミュレーションは、完全かつ有効であることが保証されたペイロードを自動的に構築するための中心的な場所です。その後、識別および調整エンジン (IRE) によるペイロードの処理をシミュレートし、実際に送信して IRE で実行する前に結果を調べることができます。

    識別シミュレーションを使用して入力ペイロードを構築し、IRE によるペイロードの処理をシミュレートします。次に結果を確認し、必要に応じて識別ルールを調整し、更新されたペイロードのシミュレーションを再実行することができます。

    次を実行するために識別シミュレーションを使用します。
    • 既存の識別ルール、ホスティングルールおよび格納規則に基づいて入力ペイロードを自動的に構築する。
    • (識別シミュレーションによって自動的に構築または手動で作成された) ペイロードの実行をシミュレートする。
    • シミュレートされた実行のペイロード出力と実行ログメッセージを参照する。
    注:
    • 識別シミュレーションは CMDB に更新をコミットしません。
    • 識別シミュレーションは、提供されている非 CMDB テーブルを含む処理ペイロードのシミュレーションをサポートしていますが、そのようなペイロードの生成はサポートしていません。

    識別シミュレーションを使用してペイロードを自動的に生成する

    識別シミュレーションを使用して、指定されたクラスの入力ペイロードを自動的に構築します。構築されたペイロードは、必要な依存型 CI を備え、正しく構造化され、識別および調整エンジン (IRE) による処理に対して構文的に有効です。

    始める前に

    必要なロール:admin

    このタスクについて

    識別シミュレーション中に構築されるペイロードは、指定されたクラス用です。依存 CI クラスの場合は、すべての依存関係に関する情報の入力を求められます。必要な詳細を入力すると、識別シミュレーションによって入力に基づいてペイロードが構築されます。

    注:
    非 CMDB テーブルを含むペイロードの自動生成はサポートされていません。

    手順

    1. 移動先 すべて > 構成 > 識別/調整をクリックし、[ 識別シミュレーション] をクリックします。
    2. [CI クラスから開始] ボックスで [開始] をクリックします。
    3. [ペイロード情報] フォームの [データソース] フィールドで、このクラスの更新に関連付けられているデータソースを選択します。
      ServiceNow Discovery データソースの場合は、[ServiceNow] を選択します。
    4. ペイロードで [クラス] を選択します。
      1. [基準属性] エリアで CI ID 属性を選択し、CI を一意に識別する値を指定します。
      2. [追加の属性] エリアで、一致する CI を更新する属性と値を指定します。
    5. 依存識別ルールに関連付けられた依存 CI の場合は、表示されるすべての [コンテナー レベル] セクションの [基準属性] および [追加の属性] セクションに入力します。
    6. [スクリプトを生成] をクリックします。
    7. 欠損フィールドがあることを示すエラーがある場合は、欠損フィールドに記入し、[スクリプトを生成] を再びクリックします。

    次のタスク

    • [シミュレーションを実行] をクリックして IRE によるペイロードの処理をシミュレートします。
    • シミュレーションの結果を調べ、必要に応じてペイロードを微調整し、必要に応じて他のクラスの他のペイロードと結合します。ペイロードを完成させたら、createOrUpdateCI() API を使用し、IRE によってペイロードを実行します。この結果、CMDB への実際の更新が行われます。
    • [スクリプトをコピー] をクリックして、JSON スクリプトをクリップボードにコピーします。その後、そのスクリプトをサードパーティソフトウェアまたは識別シミュレーションの別の画面に貼り付けることができます。

    識別シミュレーションを使用したペイロード処理のシミュレーション

    識別シミュレーションを使用して、入力ペイロードの CI 識別の識別および調整エンジン (IRE) プロセスをシミュレートします。識別シミュレーションを使用して構築された、または手動で作成された有効なペイロードを指定します。

    始める前に

    必要なロール:管理者

    手順

    1. 移動先 すべて > 構成 > 識別/調整をクリックし、[ 識別シミュレーション] をクリックします。
    2. オプション: 既存のペイロードのシミュレーションを実行するには:
      1. [既存のペイロードから開始] タイルで [開始] をクリックします。
      2. [JSON ペイロードを挿入] ページで、このクラスの更新に関連付けられている [データソース] を選択します。
      3. オプション: identifyCI API を使用する代わりに、[拡張識別を使用] を選択して identifyCIEnhanced を拡張 CI 識別に適用します。
      4. JSON ペイロードを空のキャンバスに貼り付けます。
    3. オプション: 新しいペイロードを構築するには、[CI クラスから開始] タイルで [開始] をクリックします。
      詳細については、「識別シミュレーションを使用してペイロードを自動的に生成する」を参照してください。
    4. [シミュレーションを実行] をクリックして IRE によるペイロードの処理をシミュレートします。

    次のタスク

    1. 結果ペインでシミュレーションの結果を確認し、必要に応じてペイロードを微調整します。
      1. [実行 #1] をクリックしてシミュレーションした実行の [コンテキスト ID][実行 ID] を表示します。
      2. [実行 #1] の横のドロップ ダウン矢印をクリックして追加の詳細を表示します。
        • [入力]:シミュレーションのペイロードを表示します。
        • [ログ]:指定されたログ記録レベルに従って、ペイロードの処理をシミュレートしながら IRE が生成したすべてのログメッセージを表示します。
        • [出力]:IRE によって返される出力ペイロードを表示します。
    2. ペイロードを完成させたら、createOrUpdateCI() API を使用し、IRE によってペイロードを実行します。この結果、CMDB への実際の更新が行われます。

    識別シミュレーションのロギング レベルを設定する

    識別シミュレーションは、シミュレートされたペイロード処理の各ステップを記録します。これらの実行ログを調べて、ペイロードが期待どおりに処理されたかどうか、および識別ルールが有効かどうかを判断できます。ロギングのレベルを調整して、ログが役に立ち、メッセージの量が過剰または不足しないようにすることができます。

    始める前に

    必要なロール:管理者

    手順

    1. 移動先 すべて > 構成 > 識別/調整をクリックし、[ 識別シミュレーション] をクリックします。
    2. [設定] アイコンをクリックします。
    3. [IE ログレベル] で識別および調整エンジン (IRE) のログ記録レベル、[サービスキャッシュログレベル] でサービスキャッシュのログ記録レベルを選択します。
      ロギング レベルは、ロギングの最小レベルから最大レベルまでの昇順で表示されます。
    4. [設定] アイコンをもう一度クリックして [設定] ダイアログ ボックスを閉じます。

    実行ログの確認

    識別シミュレーションは、識別および調整エンジン (IRE) によって生成された実行ログを提供します。これらの実行ログにアクセスしてペイロードを実行したり、結果を調べたり、デバッグしたりすることができます。IRE ペイロード出力ログは、中央のページに分かりやすい形式で表示されます。

    始める前に

    必要なロール:admin

    このタスクについて

    また、IRE を使用する内部アプリケーション (ディスカバリー など) は、内部 API を呼び出して IRE 実行ログを表示するための URL を提供できます。

    ログ記録は識別エンジンの特定の実行のコンテキスト内にあり、特定のデータソースと時間範囲でログのリストをフィルタリングできます。2 か月前までの実行ログ 1000 件までが、コンテキスト ID、および実行時間別にグループ化してリストされます。glide.identification_logs.max_run_ids プロパティを使用して 1000 の制限を変更します。

    ログレベルを制御するには、glide.discovery.identification.log_level Discovery システムプロパティを使用し、次のいずれかの値を設定します。
    • Info
    • 警告
    • エラー
    • Debug
    • DebugVerbose
    • DebugObnoxious
    注:
    IRE は、識別ルールを処理する前に、ペイロードの初期検証を実行します。IRE がクラス識別子に基づいて重複 CI を検出すると、ペイロードが却下され、処理が停止します。

    手順

    1. 移動先 すべて > 構成 > 識別/調整 > 識別ログ.
    2. 実行リストを次のようにフィルタリングします。
      1. [ソース]:実行ログを表示するデータソースを選択します。
      2. [時間範囲]:実行ログを表示する時間範囲を指定します。
      [実行] は、指定した時間範囲の指定したデータソースのすべての実行を表示します。
    3. [実行] リストで [実行 #] をクリックし、その [コンテキスト ID] および [実行 ID] を表示します。
      固有のコンテキスト ID は、実行されている特定のペイロードに関連付けられています。そのペイロードの各実行は、一意の実行 ID に関連付けられています。複数回実行されるペイロードの単一のコンテキスト ID は、複数の実行 ID に関連付けられます。
    4. [実行 #] のドロップ ダウン矢印をクリックして追加の詳細を表示します。
      • [入力]:実行のペイロードを表示します。
      • [ログ]:指定されたロギング レベルに従って、ペイロードを実行しながら識別エンジンが生成したすべてのログメッセージを表示します。
      • [出力]:識別エンジンによって返される出力ペイロードを表示します。

    IRE エラーメッセージ

    識別および調整エンジン (IRE) は、次のエラーとメッセージを生成します。これらのメッセージは設定に応じて [識別ログ] ペインおよびシステムログに表示されます。

    ルックアップベースの CI 識別および修飾子チェーンの詳細については、「CI 識別ルールの作成または編集」を参照してください。
    注:
    IRE は、識別ルールを処理する前に、ペイロードの初期検証を実行します。IRE がクラス識別子に基づいて重複 CI を検出すると、ペイロードが却下され、処理が停止します。

    CMDB 識別ペイロードエラー「接続の実行に失敗しました」の詳細については、「「XXX」キーの重複エントリ「XXX」」ナレッジベースの記事で、「CMDB 識別ペイロードエラー - 「cmdb_ci の挿入中のエラーで挿入に失敗しました...」 (ノードログでは「接続の実行に失敗しました」と表示される) を参照してください。

    エラー:IDENTIFICATION_RULE_MISSING

    メッセージ 説明と解決
    テーブル [xyz] の ID ルールがありません
    説明:
    クラスの識別ルールがありません。
    解決:
    テーブル [xyz] の識別ルールがあり、有効であることを確認します。

    MISSING_MATCHING_ATTRIBUTES

    メッセージ 説明と解決
    ペイロードにテーブル [xyz] の識別ルールからの基準 (一致) 属性の入力値の最小セットがありません。これらの入力値をペイロード アイテム「abc」に追加します
    説明:
    識別ルールの基準属性の最小値のセットがありません。
    解決:
    ペイロードに、テーブル [xyz] の CI ID の基準属性の最小値セットを追加します。CI クラスマネージャーを開き、[階層] をクリックして [xyz] クラスを選択します。テーブル [xyz] の識別ルールおよび識別子エントリを確認してください。

    エラー:NO_CLASS_NAME_FOR_INDEPENDENT_CI

    メッセージ 説明と解決
    xyz」の依存なし ID ルールのキー フィールドとして「sys_class_name」を持つことはできません。
    説明:
    クラス属性が、サポートされていない CI ID に追加されました。
    解決:
    テーブル [xyz] の CI ID からクラス属性を削除します。

    エラー:IDENTIFICATION_RULE_FOR_LOOKUP_MISSING

    メッセージ 説明と解決
    テーブル [xyz] の ID ルールにクラス [abc] のルックアップ ルールがありません
    説明:
    ペイロードにはルックアップ クラス名がありますが、対応するルックアップ ルールがありません。
    解決:
    [検索対象テーブル] を持つルックアップ識別子エントリを、テーブル [xyz] の CI ID の [abc] として追加します。

    エラー:IDENTIFICATION_RULE_FOR_RELATED_ITEM_MISSING

    メッセージ 説明と解決
    テーブル [xyz] の ID ルールにクラス [abc] の関連ルールがありません
    説明:
    ペイロードには関連クラス名がありますが、対応する関連ルールがありません。
    解決:
    [関連テーブル] を持つ関連エントリを、テーブル [xyz] の CI ID 内で [abc] として追加します。

    エラー:NO_LOOKUP_RULES_FOR_DEPENDENT_CI

    メッセージ 説明と解決
    xyz」の依存 ID ルールにはルックアップ ルールを指定できません。
    説明:
    依存 ID ルールには、ルックアップ ルールを指定できません。
    解決:
    テーブル [xyz] の依存 CI ID からルックアップ識別子エントリを削除します。

    エラー:INVALID_INPUT_DATA

    メッセージ 説明と解決
    ペイロードに無効な sys_id が見つかりました。テーブル [abc] に sys_id [xyz] のレコードがないか、[duplicate_of] フィールドがメイン CI に設定されている重複レコードです。
    説明:
    ペイロードに無効な sys_id への参照があります。
    解決:
    参照されている sys_id を削除するか、有効な sys_id を指定します。
    ペイロードにデータソースが存在しません。テーブル [cmdb_ci] の選択フィールド [discovery_source] から選択値を指定する必要があります。
    説明:

    ペイロードにデータソースが存在しません。

    解決:
    ペイロードで、テーブル [cmdb_ci] の選択フィールド [discovery_source] から有効な選択値を指定します。
    ペイロードに無効なデータソース [xyz] が存在します。テーブル [cmdb_ci] の [discovery_source] フィールドから有効な選択値を指定する必要があります。
    説明:
    ペイロードに無効なデータソースが含まれています。
    解決:
    ペイロードで、テーブル [cmdb_ci] の選択フィールド [discovery_source] から有効な選択値を指定します。
    テーブル [cmdb_rel_type] に名前 [xyz] の関係は存在しません。[xyz] の初期設定の関係性が削除または名前変更されている場合は、復元する必要があります
    説明:
    ペイロードが [cmdb_rel_type] テーブルに存在しない関係性を参照しています。
    解決:
    関係性への参照が正確であることを確認します。それが新しい関係性である場合、[cmdb_rel_type] テーブルに追加します。[xyz] の初期設定の関係性が削除または名前変更されている場合は、それを復元します。
    ペイロード関係「xyz」に無効な親レコードのインデックス [0] があります
    説明:
    ペイロードは無効な親インデックスを参照しています。
    解決:
    ペイロードのインデックスをチェックし、それらがすべて有効であることを確認します。
    ペイロード関係「xyz」に無効な子レコードのインデックス [0] があります
    説明:
    ペイロードは無効な子インデックスを参照しています。
    解決:
    ペイロードのインデックスをチェックし、それらがすべて有効であることを確認します。

    エラー:DUPLICATE_RELATIONSHIP_TYPES

    メッセージ 説明と解決
    重複する関係性タイプ レコードが、sys_ids [xyz] を持つテーブル [cmdb_rel_type] 内に名前 [abc] で存在します。
    説明:
    関係性の [rel_ci_type] テーブルに重複レコードがあります。
    解決:
    重複したレコードを削除します。

    エラー:DUPLICATE_PAYLOAD_RECORDS

    メッセージ 説明と解決
    ペイロード (インデックス 0 および 1) に、className [xyz] とフィールド [abc] を使用する重複アイテムが見つかりました。ペイロードから重複アイテムを削除します
    説明:
    ペイロードに、基準属性の値が同一の 2 つのアイテムが含まれています。
    解決:
    重複したアイテムの 1 つを削除します。

    エラー:LOCK_TIMEOUT

    メッセージ 説明と解決
    xyz の同期ロックの取得に失敗しました
    説明:
    システム ミューテックス ロックの取得に失敗しました。
    解決:
    glide.identification_engine.mutex_expiration_time システム プロパティを追加し、デフォルト値 (15 分) より大きい整数値を設定することによって、ミューテックスの有効期限を延長します。

    エラー:MULTIPLE_DUPLICATE_RECORDS

    メッセージ 説明と解決
    テーブル [xyz] にフィールド [abc] を使用する重複レコードが見つかりました
    説明:
    指定されたテーブルに重複レコードが見つかりました。
    解決:
    識別エンジンによって検出された重複レコードを修正します。すべての重複については、重複排除タスクを確認してください。

    エラー:REQUIRED_ATTRIBUTE_EMPTY

    メッセージ 説明と解決
    テーブル [abc] に必須フィールド [xyz] がありません。ペイロードに必須フィールドの入力値を追加します
    説明:
    ペイロードに必須の属性がありません。
    解決:
    ペイロードに、テーブル [abc] の必須フィールド [xyz] の入力値を追加します。

    エラー:MISSING_DEPENDENCY

    メッセージ 説明と解決
    ペイロードに、格納/ホスティング ルール [abc] に一致する依存クラス [xyz] に対して定義された関係性がありません。ペイロードに「def」に対して適切な関係を追加します。
    説明:
    依存クラスにそのメタデータ ルールに一致する関係性が定義されていません。
    解決:
    ペイロードに、格納/ホスティング ルール [abc] に一致する依存クラス [xyz] に対して適切な関係性を追加します。

    エラー:METADATA_RULE_MISSING

    メッセージ 説明と解決
    依存クラス [xyz] に対して定義された格納ルールまたはホスティング ルールがありません。「abc」の格納/ホスティング ルールを追加します。
    説明:
    依存クラスに対して定義された格納ルールまたはホスティング ルールがありません。
    解決:
    依存クラス [xyz] の格納ルールまたはホスティング ルールを追加します。

    エラー:MULTIPLE_DEPENDENCIES

    メッセージ 説明と解決
    ペイロードに複数の依存関係性アイテム [xyz] および [abc] が見つかりました
    説明:
    複数の依存関係性アイテムが存在します。
    解決:
    複数の依存関係性アイテム [xyz] または [abc] の 1 つを削除します。
    同じ指定先へのパス xyz -> abc が複数あります
    説明:
    同じ指定先へのパスが複数あります。
    解決:
    xyz -> abc の間に存在する可能性のある重複した関係性/修飾子チェーンを削除します。

    エラー:ABANDONED

    メッセージ 説明と解決
    ペイロードアイテム「abc」にエラーがあるためペイロードアイテム「xyz」の処理を破棄します
    説明:
    依存ペイロード アイテムにエラーがあるため処理を破棄します。
    解決:
    依存ペイロード アイテム「abc」のエラーを解決します。
    テーブル [abc] に sys_id [xyz] と一致するレコードが見つかりません
    説明:
    一致する sys_id が対応するテーブルに存在しません。
    解決:
    一致するレコードが入力ペイロードに基づく有効なレコードであるかどうかテーブル [abc] で確認します。
    識別エンジン API が再帰的に呼び出され、中断されました...
    説明:
    識別エンジン API が再帰的に呼び出されました。
    解決:
    識別エンジン API を再帰的に呼び出すことは避けてください。
    xyz からのペイロードの処理中にエラーが検出されました
    説明:
    ペイロードの処理中にエラーが発生しました。
    解決:
    xyz からの出力ペイロードに記載されているすべてのエラーを解決します。
    関係性を処理中にペイロード アイテム xyz でエラーが発生しました
    説明:
    ペイロード アイテムにエラーがあります。
    解決:
    ペイロード アイテム「xyz」のエラーを解決します。
    入力 json ペイロード xyz の解析中にエラーが発生しました
    説明:
    JSON ペイロードの解析中にエラーが発生しました。
    解決:
    入力 JSON ペイロードに正しい JSON 形式が設定されていることを確認してください。

    エラー:MULTI_MATCH

    メッセージ 説明と解決
    同じ CI (className:[abc]、sysId:[def]) と関係性 [xyz] がある重複した依存レコードが見つかりました
    説明:
    重複した依存 CI が見つかりました。
    解決:
    すべての重複についての情報の重複排除タスクをチェックし、重複したレコードを削除します。
    ペイロード アイテム「xyz」と「abc」の間に複数の関係性が見つかりました。
    説明:
    ペイロード アイテム間に複数の関係性が見つかりました。
    解決:
    存在する可能性のある重複した関係性チェーンと修飾子チェーンを確認します。
    フィールド [abc] と参照フィールド [def] を使用するルックアップ テーブル [xyz] に重複レコードが見つかりました
    説明:
    ルックアップ テーブルに重複レコードが見つかりました。
    解決:
    すべての重複についての情報の重複排除タスクをチェックし、重複したレコードを削除します。

    エラー:QUALIFICATION_LOOP

    メッセージ 説明と解決
    検定チェーンに、関係性「xyz」を含むループがあります
    説明:
    検定チェーンにループがあります。
    解決:
    関係性「xyz」を持つ検定チェーンからループを削除します。

    エラー:TYPE_CONFLICT_IN_QUALIFICATION

    メッセージ 説明と解決
    ペイロードが無効です。検定チェーンに、ペイロード アイテム「xyz」および「abc」の複数の可能なパスがあります。
    説明:
    複数の検定パスが見つかりました。
    解決:
    アイテム「xyz」と「abc」間の複数の可能な検定パスを削除します。

    エラー:RECLASSIFICATION_NOT_ALLOWED

    メッセージ 説明と解決
    クラス [xyz] から [abc] へ CI の再分類はできません。
    説明:
    CI の再分類はできません。
    解決:
    再分類に関する情報を再分類タスクで確認し、クラス [xyz] から [abc] への再分類が有効かどうかを確認します。

    エラー:DUPLICATE_RELATED_PAYLOAD

    メッセージ 説明と解決
    フィールド xyz を使用しているペイロード インデックス 1 に重複した関連アイテム (0 と 1) が見つかりました
    説明:
    重複した関連アイテムが存在します。
    解決:
    ペイロードに存在する重複した関連アイテムの 1 つを削除します。

    エラー:DUPLICATE_LOOKUP_PAYLOAD

    メッセージ 説明と解決
    フィールド xyz を使用しているペイロード インデックス 1 に重複したルックアップ アイテム (0 と 1) が見つかりました
    説明:
    重複したルックアップ アイテムが存在します。
    解決:
    ペイロードに存在する重複したルックアップ アイテムの 1 つを削除します。

    INSERT_NOT_ALLOWED_FOR_SOURCE

    メッセージ 説明と解決
    [xyz] への挿入は、IRE のデータソースルールによってデータソース [abc] に対してブロックされています。
    説明:
    IRE のデータソースルールは、データソース [abc] が [xyz] クラスの CI を挿入しないように設定されています。
    解決:

    適切な IRE のデータソースルールを削除または更新して、データソース [abc] が [xyz] クラスの CI を挿入できるようにします。

    または、許可された別のデータソースが同じ CI を作成するまで待ちます。