[CMDB - IRE] CI を (ペイロードとして) createOrUpdateCi() に渡す際の CMDB 識別および調整エンジンの仕組みIssue この記事では、CI が (ペイロードとして) IRE に送信されるときに、識別および調整エンジンがどのように機能するかを正確に説明します。この記事では以下の項目について説明します。 目次 識別および調整エンジンの仕組み機能の詳細 1 データソース2 ペイロードの検証3 ペイロードに基づく CI 識別4 CI 一致の処理5 関連または依存のルックアップ6 調整の適用7 データベースへのデータのコミット8 データベースへのデータのコミット トラブルシューティング 識別および調整エンジンの仕組み 以下は、識別および調整エンジン (IRE) の動作の機能図です。 機能の詳細 1 データソース ここでは、SCCM、Discovery、Service Mapping、Import Sets、Qualys 等のさまざまな統合など、さまざまなデータソースからあらゆるデータを取得します。これらのデータソースを使用して、JSON ペイロードを構築し、createOrUpdateCi() に対する CMDB API 呼び出しを利用します。 2 ペイロードの検証 このフェーズでは、IRE エンジンにデータを送信したら、最初のステップは、受信ペイロードが適切にフォーマットされているかどうかや、必要な属性が欠落している場合にエラーが発生するかどうかなど、ペイロードを検証することです。 3 ペイロードに基づく CI 識別 3.1 エラーのないペイロード ペイロードにエラーがない場合、システムは一致する CMDB識別子ルール (cmdb_identifier) を探します。(送信している特定のクラスにおける最初の独立したルールや、構成に基づく親クラスの識別など、現在、ほとんどのデバイスは cmdb_ci_hardware の「ハードウェアルール」に分類されます。)一致する識別ルールが特定されると、エンジンはそのルール内の識別子エントリを探します (一致が見つかるまで優先的に)。 3.2 エラーのあるペイロード ペイロードの検証の結果、ペイロードにエラーがある場合、ペイロードは処理を停止し、「システムログ」にエラーをスローします。いくつかのプロパティを有効にすることで、詳細な CMDB IRE ログを取得できます。 4 CI 一致の処理 IRE が一致する CI を見つけると、一致数に基づいて以下の手順が実行されます。 4.1 一致が見つからなかった (=0) 一致するものが見つからない場合、ペイロードは新しい CI の作成/挿入のために予約されます。 4.2 正確に 1 つの CI が見つかった (=1) 一致するものが 1 つだけ見つかった場合、IRE はその CI を選択し、その CI の更新のために予約します。ここで、その CI タイプまたはその親 CI タイプに対して定義されているルックアップ/関連/参照ルールが検索されます。(挿入/更新の両方)次に、CI とその属性の調整ルール/データ優先順位ルールが確認され、それに応じて CI が更新されます。 4.3 複数の CI 一致が見つかった (2 以上、skip_duplicates.threshold 未満) 識別ルールに基づいて一致する CI が複数検出されるのは特殊なケースです。IRE は、一致する CI を複数検出すると、すぐに重複排除タスクを生成します。重複タスクが作成されると、重複 CI の処理が試行されます。これらの重複処理は、Madrid の以前と以後で異なる方法で実行されます。Madrid までは、discovery_source を重複として設定することで、重複 CI が重複としてマークされます。New York 以降は discovery_source を使用せず、すべての重複のメイン CI を入力する新しいフィールド duplicate_of を使用します。詳細は以下の通りです。 4.3.1 重複のスキップ システムが重複を処理しないように設定されている場合 (プロパティ glide.identification_engine.skip_duplicates を false に設定するか)、最大しきい値 (glide.identification_engine.skip_duplicates.threshold - デフォルトは 5) が見つかった重複の数よりも小さい場合、IRE は CI を処理しません。 4.3.2 重複の処理 プロパティ glide.identification_engine.skip_duplicates が true で、重複の数が最大しきい値 (glide.identification_engine.skip_duplicates.threshold) より小さい場合、IRE では CI を重複としてマークする (Madrid リリースまで)、または duplicate_of フィールドに入力しません (New York リリース以降)。 5 関連または依存のルックアップ 構成とペイロードに基づいて、IRE は、挿入または更新する必要があるルックアップ、関連、および関係データのチェック/挿入を試みます。 6 調整の適用 CI を更新する必要がある場合は、調整ルールとデータ優先順位ルールの適用を試みます。更新のみにこの処理を実行する理由は、新しい CI (挿入) の場合、すべてをチェックする必要がないためです。 7 データベースへのデータのコミット この時点で、データをデータベースにコミットして sys_id を取得します。 8 データベースへのデータのコミット ここで、処理されたデータ/エラーの結果が API の呼び出し元に返されます。 トラブルシューティング ペイロードを使用して CI 識別をオンデマンドで実行する方法IRE に送信されるデータ/ペイロードを確認し、ペイロードの問題を確認する方法識別エンジンのエラーメッセージ重複する CMDB CI レコードスクリプトバックグラウンドでのスクリプトを使用した識別および調整エンジンのデバッグRelated LinksCMDB 識別子ルール識別エンジンのエラーメッセージ