識別および調整の基礎 目次 概要IRE の概要IRE コンポーネント依存なし VS 依存重複再分類部分的なアイテムIRE フローIRE ツール片付けるプロパティ 概要 このナレッジベースの記事の目的は、識別および調整エンジン (IRE) の主な概念を説明し、新しいユーザーがすぐに理解できるようにすることです。 IRE の概要 識別および調整エンジンとは 識別および調整エンジンは、構成管理データベース (CMDB) を維持するためにペイロードを処理するフレームワークです。これには、新しい構成アイテム (CI) の作成や既存の CI の更新が含まれます。 しかし、なぜIREが必要なのでしょうか? 一元化されたフレームワークを使用せずに複数のソースが独自のロジックで CMDB を更新すると、CI の重複、望ましくない更新、および属性フラッピング (複数のソースが同じフィールドを異なる値で継続的に更新すること) が発生する可能性があります。 CMDB に重複がなく、最も関連性の高い情報が最新であることを保証するには、一元化されたフレームワークが必要です。 注: CMDB への更新を直接ブロックして IRE をバイパスするロジックはありません。ただし、CMDB を直接更新すると、IRE を使用するメリットが失われます。このため、CMDB に対する更新は IRE を介して行うことをお勧めします。 IRE コンポーネント 識別子 識別子は、CI が CMDB にすでに存在するかどうかを判断するために IRE が使用するクラスの一連のルールです。クラスに識別子がない場合は、階層から継承されます。たとえば、cmdb_ci_hardware の子ブランチの 1 つにあるほとんどのクラスは、"Hardware" 識別子を継承します。 識別ルール 識別ルールは、IRE が CMDB 内の CI を見つけるために使用するものです。各識別ルールは、CMDB での一致を検索するために使用される一連の属性で構成されます。 IRE は受信したペイロードを分析し、識別ルールを優先度順に使用して CMDB 内の CI を検索します。CI が見つからない場合は、新しい CI が作成されます。 包含ルール 包含ルールは、識別プロセスに含まれる CI の範囲を絞り込むために使用されます。 包含ルールで設定された基準に一致しない CI は、IRE で使用されません。 したがって、最初に識別ルールを使用して CMDB 内の CI を検索し、次に包含ルールを使用してそれらの CI を使用できるかどうかを確認します。 しかし、そもそもなぜインクルージョンルールがあるのでしょうか? たとえば、CMDB 内の廃止された Windows サーバーをデータソースで更新してはならないという環境要件があるとします。包含ルールを使用して、廃止されたサーバーが IRE によって使用/更新されないようにすることができます。包含ルールの欠点は、適切に構成しないと CI が「重複」する可能性があることです。 注: クラス別に CI を除外するように包含ルールを構成すると、重複が発生します。 識別ルール、包含ルール、およびそれらの設定方法の詳細については、以下を参照してください。 識別ルール 調整ルール IRE は調整ルールを使用して、優先するデータソースを決定します。優先度が最も高いデータソースによって、属性値が決まります。これにより、信頼性の低いデータ ソースがクラス内のフィールドを更新できなくなります。調整ルールがないと、データソースは互いの更新を上書きします。 これにより、複数のデータソースが同じ CI 属性を何度も更新するのを防ぐことができます。 調整ルール、およびさまざまなタイプの調整ルール (動的と静的) の詳細については、以下を参照してください。 調整ルール データ更新ルール CI を最後に更新した優先度の高いデータソースからの更新がなくなった場合はどうなるでしょうか? 時間が経つにつれて、そのデータは関連性がなくなる可能性があります。このような状況になったときに、他のソースがこれらのレコードを更新できるようにする方法が必要です。 データ更新ルールは、CI のデータが古くなったかどうかを指定します。これが発生すると、優先度の低い他の許可されたデータソースがそれらの CI を更新できるようになります。 注: 動的調整ルールが有効な場合、データ更新ルールは影響を与えません。データ更新ルールは、静的調整ルールと組み合わせて使用されます。 データ更新ルールの詳細については、以下を参照してください。 データ更新ルール マルチソース CMDB マルチソース CMDB は、CI 属性の更新に関連するディスカバリーソースと提案された値に関する完全な履歴を保持します。マルチソース CMDB データを使用して、さまざまなディスカバリーソースによって CMDB がどのように入力されているかを CI 属性レベルで追跡できます。また、特定の検出ソースからの CI の更新を元に戻したり、更新された調整ルールを使用して属性値を再計算したりすることもできます。 複数の検出ソースが同じ CI 属性を更新しようとすると、識別および調整エンジン (IRE) は調整ルールを使用して、更新を行う検出ソースを 1 つ選択します。マルチソース CMDB がない場合、値が却下された優先度の低い検出ソースに関する詳細は破棄されます。また、マルチソース CMDB がない場合は、属性値のソースを特定することも難しくなります。 マルチソース CMDB を使用すると、すべての検出ソースと CI の組み合わせの生の詳細が、更新に選択された検出ソースとそうでない他のすべての検出ソースの両方について保持されます。各検出ソースと CI の組み合わせのレコードで構成されるマルチソース CMDB データは、CMDB マルチソースデータ [cmdb_multisource_data] テーブルに格納されます。このマルチソース CMDB データストアは、調べたり、照会したり、レポートしたりすることができます。 マルチソース CMDB とその設定方法の詳細については、以下を参照してください。 マルチソース CMDB 独立 VS 依存 CI の依存関係は、CI クラスマネージャーで CI のクラスの依存関係ルールによって指定されます。 独立型 CI 独自に存在し、他の CI に依存しないサーバー CI などの CI です。 依存型 CI 別の CI との関係に依存し、依存関係がないと単独では存在できない CI です。 例: ネットワークアダプター CI は、それらを含むハードウェア CI なしでは意味のある存在にはなりません。 アプリケーション CI は、ホストされているサーバー CI がなければ単独では存在できません。 次の画像は、Tomcatクラスに必要な「依存関係」を示しています。 依存 CI を識別する手順は、独立 CI を識別する手順とは異なる場合があります。この違いは、依存識別ルールと独立識別ルールの違いに反映されます。 必要な関係がない依存 CI ペイロードが処理された場合、IRE はエラーを返します。上の図では、Tomcat ペイロードにハードウェア CI との「Runs on」関係が必要であることがわかります。 IRE フレームワークを直接操作する場合は、ペイロードにコンポーネントが欠落していないかどうかを確認するツールとして識別シミュレーションを使用できます。以下をご覧ください。 識別および調整エンジンペイロードのビルド方法 識別ルール: 独立型識別子 他の CI または関係とは無関係に、CI 自体の属性に基づいて CI を識別する識別子。 依存型識別子 CI を識別するには、最初に独立した CI を識別する必要がある識別子。CI は 1 つ以上の CI に依存することができ、依存 CI は 1 つの親 CI のみと依存関係を持つことができます。CI とその依存 CI 間の関係タイプも識別プロセスに含まれます。依存 CI の識別プロセスを支援するため、CI タイプ内の依存関係チェーンを定義する従属関係を作成します。 依存 CI の識別に使用されるペイロードには、修飾子チェーンとの関係を含めることができます。このような関係では、一致する親子ペアが存在する場合、ペイロード内の修飾子チェーンはデータベース内の CI の修飾子チェーンと比較されます。相違がある場合、データベース内の修飾子チェーンは、その関係のペイロード内の修飾子チェーンと一致するように更新されます。 次の画像は、ペイロードの作成に識別シミュレーションが使用されていることを示しています。 作成されたペイロードには次の内容があることに注意してください。 独立型 CI、これはcmdb_ci_win_serverです。依存 CI、これはcmdb_ci_network_adapter です。関係。これはネットワークアダプタに必要な「Owns::Owned by」関係です。 重複 IRE API が呼び出されると、重複が見つかる場合があります。重複が見つかった場合は、重複排除タスクが作成されます。 重複排除タスクを使用して重複 CI を解決する方法については、以下を参照してください。 重複排除タスクのレビュー重複排除タスクの修正重複排除タスクを手動で作成する重複 CI の検出 重複 CI のトラブルシューティングについては、以下を参照してください。 重複する CMDB CI レコード 重複は、CMDB ヘルス正確性ジョブによっても検出される場合があります。このジョブの詳細については、次のドキュメントを参照してください。 CMDB ヘルス - 重複するメトリクス - アルゴリズム 再分類 CI はアップグレード、ダウングレード、および切り替えが可能です。 アップグレードの例 (階層の上位): サーバー→ Windows Server ダウングレードの例 (階層を下へ進む) Linux サーバー→サーバー 注: CI クラスのダウングレード操作や CI クラスの切り替え操作は、データ損失につながる可能性があるため避けてください。自動 CI 再分類が有効 (デフォルト) になっている場合、識別プロセスの結果として自動再分類が行われ、データが失われる可能性があります。 スイッチの例 (階層の別の分岐に完全に移動) プリンター→スイッチ ターゲットクラスに存在しないフィールドのデータは失われます。 この動作を制御する詳細とプロパティについては、以下を参照してください。 IRE 処理中の CI の再分類 部分的なアイテム ペイロードアイテムは、一意の識別に必要なデータが含まれており、次のいずれかのエラーがある場合、部分的なアイテムであると判断されます。一意の識別では、ペイロードアイテムにsource_name値とsource_native_key値を含むsys_object_source_infoセクション、または CI クラスに指定された識別基準属性の完全なセット、またはその両方が必要です。 部分的なアイテムの IRE エラー: MISSING_MATCHING_ATTRIBUTES:アイテムに、1 つ以上の識別子エントリで照合に使用するための識別基準属性がありません。REQUIRED_ATTRIBUTE_EMPTY:必要な属性が欠落しており、CI を作成できません。MISSING_DEPENDENCY:依存型 CI に、ペイロードで指定された依存関係がありません。INSERT_NOT_ALLOWED_FOR_SOURCE:IRE のデータソースルールにより、指定されたデータソースは指定されたクラスの CI を作成できません。 ペイロードアイテムが部分的なアイテムであると判断されたために処理が失敗した場合、部分的なアイテムは、以後に行われる可能性がある処理のために、部分的ペイロードとして CMDB IRE 部分のペイロード [cmdb_ire_partial_payloads] テーブルに JSON 形式で保存されます。IRE は識別子キーを使用して、受信ペイロードと保存された部分的ペイロードとの照合を試みます。 後でデータソースが部分的なアイテムから欠落していたデータを送信した場合、IRE は受信ペイロードを保存された部分的ペイロードと照合します。次に、IRE は、一致する部分的ペイロードを受信ペイロードと結合します。競合する属性を解決するために、IRE はsource_recency_timestamp (source_native_key と source_name が同一の場合) またはクラスに指定された静的調整ルールのいずれかを使用します。結果は完全かつ有効なペイロードで、その後 IRE が処理してそれぞれの CI を作成または更新します。 90 日より古い部分的ペイロードは、CMDB IRE 部分のペイロード [cmdb_ire_partial_payloads] テーブルから削除されます。 IRE フロー CI を渡すときの CMDB 識別および調整エンジンの動作 IRE ツール CI Class Manager (CI クラスマネージャー) CI クラスマネージャーは、IRE で利用可能なツールを構成するためのワンストップショップです。 CI クラスマネージャーを開くには、 [Configuration] > [CI Class Manager] 次の画像は、CI クラスマネージャー、識別ルールの構成、およびクラス「Windows Server」の包含ルールを示しています。 識別シミュレーション 識別シミュレーションを開くには、次の場所に移動します。 構成>識別/調整>識別シミュレーション 識別シミュレーションを使用して IRE ペイロードを作成する方法については、次の KB を参照してください。 識別および調整エンジンペイロードのビルド方法 識別および調整のデバッグ 識別および調整エンジンのデバッグ方法の詳細については、次を参照してください。 スクリプトバックグラウンドでのスクリプトを使用した識別および調整エンジンのデバッグ IRE エラーのリスト: https://docs.servicenow.com/bundle/rome-servicenow-platform/page/product/configuration-management/concept/identification-simulation.html#id-engine-error-messages 片付ける 重複した CMDB CI 関係レコード、または孤立関係があるレコードや親/子関係がないレコードを特定して削除する方法 Properties (プロパティ) IRE プロパティの包括的なリストについては、以下を参照してください。 識別および調整のプロパティ