識別および調整エンジンペイロードのビルド方法<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 説明 このナレッジベース記事では、CMDB モデル、IRE、および IRE に渡されるペイロードに含めるべき内容の概要について説明します。 目次 CMDB モデル CMDB モデルとはクラスの構成を確認するにはどうすればよいですか 怒り IRE とは ペイロード 識別シミュレーションを使用してペイロードに含める内容を決定するペイロードエラー 概要追加情報/トラブルシューティング CMDB モデル CMDB モデルとは クラスの説明、識別ルール、識別子エントリ、包含ルール、調整ルール、および依存関係 (該当する場合) クラスの説明識別ルールと識別子エントリ CI がデータベースに既に存在するかどうかを判断するために IRE が使用する一連のルール 調整ルール 調整ルールは、クラス属性を更新できるディスカバリーソースと、これらのディスカバリーソース間の優先順位を指定します 依存関係 クラスの識別子によって、このクラスが独立しているのか従属しているのかが決まります。独立したクラスは、関係なしで IRE に送信できます。依存クラスには、依存するCI上の関係性と情報を同じペイロードで送信する必要があります。 包含ルール 独立 CI の重複検出では、IRE は ID 包含ルールを満たす CI のみを処理します。 クラスの構成を確認するにはどうすればよいですか? [CI クラスマネージャー>構成] に移動します目的のクラスを検索します。次の例では、クラスは「Windows Server」ですUI はこのクラスのオプションをロードします[識別ルール] を選択すると、この CI の識別ルールが表示されます「調整ルール」をクリックして、このクラスの調整ルールを表示します依存クラスに必要な関係を確認するには、前の手順に従って [依存関係] をクリックします。次の例では、クラスは [ネットワークアダプタ] です IRE IRE とは何ですか? 識別および調整エンジン (IRE) は、識別および調整の基礎となる主要コンポーネントであり、さまざまなデータソース間で識別および調整プロセスを実行できる一元化されたフレームワークを提供します。IRE は、受信データを処理する際に、識別ルール、調整ルール、および IRE のデータソースルールを使用してから、データを CMDB に挿入します。IRE プロセスは、CMDB 内のデータの完全性を維持するのに役立ちます。IRE は CI を一意に識別することで、CI の重複を防止します。IRE は、信頼できるデータソースのみに CMDB への書き込みを許可することにより、CI 属性を調整します。 ペイロード 識別シミュレーションを使用してペイロードに含める内容を決定する [Configuration >識別/調整>識別シミュレーション] に移動します。[CI クラスから開始] ボックスから [開始] を選択しますデータソース、クラス、属性、およびコンテナを入力します「スクリプトの生成」をクリックします。以下の例を参照してください右側のタブには、必要なデータを含む識別シミュレーションによって構築されたペイロードが表示されますこの時点で [シミュレーションを実行] をクリックすると、このペイロードが IRE に渡され、ペイロードが処理されます 識別シミュレーションを使用する場合、挿入や更新は行われないことに注意してください ペイロードエラー 次のドキュメントには、識別エンジンのエラーのエラーと解決策が含まれています IRE エラーメッセージ 識別エンジンを debugVerbose に設定 ペイロードをシステムログ (syslog テーブル) に記録するには、次のシステムプロパティを追加できます。 プロパティ名 = glide.cmdb.logger.source.identification_engineプロパティ値 = info,warn,error,debug,debugVerbose 警告:デバッグが完了したら、プロパティを OOB 設定の info,warn,error に戻します。 問題 01:ペイロードエラー 識別エンジンを介して次のペイロードを実行してみましょう。 { "items": [ { "className": "cmdb_ci_network_adapter", "lookup": [], "values": { "mac_address": "08:00:27:66:50:99", "name": "ETH8" } }, { "className": "cmdb_ci_win_server", "lookup": [], "values": { "serial_number": "ABC123!ABC123!" } } ]} 次のエラーが返されます。 In payload no relations defined for dependent class [cmdb_ci_network_adapter] that matches any containment/hosting rules: [cmdb_ci_network_adapter >> Owned by >> cmdb_ci_hardware]. Add appropriate relations in payload for '{\"className\":\"cmdb_ci_network_adapter\",\"values\":{\"discovery_source\":\"ServiceNow\",\"mac_address\":\"08:00:27:66:50:99\",\"name\":\"ETH8\"},\"internal_id\":\"8e099f85a04881905c4bda8445bd7eee\",\"sys_object_source_info\":{\"source_name\":\"ServiceNow\"},\"settings\":{},\"sys_ire_info\":{\"ire_received_time\":\"2021-11-24 14:05:13\"}}'' エラーメッセージの最初の部分では、依存クラスに必要な関係 (格納/ホスティングルール) がないためペイロードを処理できなかったことが説明され、ペイロードを適切に処理するためにペイロードで渡される可能性のある関係もリストされています。 In payload no relations defined for dependent class [cmdb_ci_network_adapter] that matches any containment/hosting rules: [cmdb_ci_network_adapter >> Owned by >> cmdb_ci_hardware]. メッセージの 2 番目の部分は、この問題を解決する方法を提案します。 Add appropriate relations in payload for <payload> 識別エンジンによって返される情報/エラーに基づいて、ペイロードを自分で調整するか、識別シミュレーションを使用して適切なペイロードを構築することができます。識別エンジンのシミュレーションを使用して、次のペイロードをビルドしますが、関係が欠落しています。 { "items": [ { "className": "cmdb_ci_network_adapter", "lookup": [], "values": { "mac_address": "08:00:27:66:50:99", "name": "ETH8" } }, { "className": "cmdb_ci_win_server", "lookup": [], "values": { "serial_number": "ABC123!ABC123!" } } ], "relations": [ { "type": "Owns::Owned by", "parent": 1, "child": 0 } ]} エラーは返されなくなります。このネットワークアダプタは存在しないため、新しいネットワークアダプタが作成されます。 { "className": "cmdb_ci_network_adapter", "operation": "INSERT", "identificationAttempts": [ { "info": "sys_object_source SKIPPED", "identifierName": "", "attemptResult": "SKIPPED", "attributes": [], "hybridEntryCiAttributes": [] }, { "identifierName": "Network Adapter", "attemptResult": "NO_MATCH", "attributes": [ "mac_address", "name" ], "searchOnTable": "cmdb_ci_network_adapter", "hybridEntryCiAttributes": [] } ], "info": [], "errorCount": 0, "mergedPayloadIds": [], "warningCount": 0, "inputIndices": [ 0 ], "markers": [] } 問題 02:CI フィールドが更新されていません。 この例では、Windows サーバーのフィールド「name」を更新しようとしています。ただし、ペイロードを使用して IRE を呼び出す場合、このフィールドは更新されません。 まず、識別エンジンに渡されるペイロードにフィールドが入力されていることを確認します。これは、識別エンジンを debugVerbose に設定することで実行できます。IRE をデバッグに設定すると、フィールドが更新されなかった理由を特定するのにも役立ちます。 syslogでは、次の情報が表示されます。 上記は、フィールド「name」が入力されたことを確認します。上記の場合、値は「NameToChangeTo」でした。ただし、レコード名が更新されていないことがわかります。上の画像では、このペイロードのソースが「ServiceWatch」であったこともわかります 識別エンジンがデバッグに設定されたままで、更新が失敗した時点でソースが「identification_engineのシステムログを確認します。次のことがわかります。 上記は、IRE がデータソース (この場合は ServiceWatch) を指定してこのフィールドを更新しないことを決定したことを説明しています。上記のメッセージが表示されるため、このクラスの構成、具体的には調整ルールを確認する必要があります。 上の画像は、データソース「ServiceNow」のみがこのクラスを更新できるようにする、Windows Server クラスの調整ルールがあることを示しています。このデータソースペイロードがターゲット CI を更新できるようにするには、次のいずれかを行います。 この調整ルールを確認このデータソースがこのテーブルを更新できるようにするルールを作成/追加 問題 03:IRE 関連ではない ペイロードに必要なデータが含まれていて、更新を「ブロック」する調整ルールがない場合、問題は識別エンジンではなく、ビジネスルールまたは ACL が原因である可能性があります。このような場合、さらに調査するために、スクリプトバックグラウンドを介して識別エンジンを直接呼び出す必要がある場合があります。その方法については、次のドキュメントを参照してください。 スクリプトバックグラウンドでのスクリプトを使用した識別および調整エンジンのデバッグ サマリー CMDB の基本コンポーネント、CI クラスマネージャー、および識別シミュレーションの使用方法を理解することで、CMDB クラスのペイロードに何が必要かを確認できます。 追加情報/トラブルシューティング スクリプトバックグラウンドでのスクリプトを使用した識別および調整エンジンのデバッグ重複する CMDB CI レコード識別ルール包含ルール調整ルール