特定のサブクラスのハードウェアルール CMDB 識別子をコピーして、異常なハードウェアを正しく識別する方法、または異なるデバイスが名前/シリアルを共有していることがわかっている場合Issue <!-- /*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: #7057C7; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: block; max-width: ; width: auto; height: auto; } } すぐに利用可能な「ハードウェアルール」CMDB 識別子は、いくつかの一般的な仮定を行い、デバイスの特定のメーカーやモデルの特定の特性は正常に機能しません。たとえば、名前、IP、または MAC アドレスが常に一意であるとは限りません。シリアル番号も、同じシャーシ内のサーバー間、または仮想環境間で共有される場合があります。 これは、特定の CI クラスのハードウェアルールをコピーする手順です。その後、前提条件に適合しない異常なデバイスに対処するために変更できます。 これが完了すると、新しい識別子は、ハードウェアルールではなく、その特定のクラスの CI に対してのみ使用されます。 Release<!-- /*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: #7057C7; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: block; max-width: ; width: auto; height: auto; } } すべてのリリース Cause<!-- /*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: #7057C7; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: block; max-width: ; width: auto; height: auto; } } 例 - 多くのプリンターが同じ名前を持つ SNMP を介して同じデフォルトの「名前」を返す類似のデバイス/モデルが多数ある場合があります。例:APC PDU(名前 = RACKPDU)、および Ricoh Afficio ネットワークプリンター (名前 = <モデル番号> 例:「MP 2550」) これらのデバイスのうち 2 つがネットワーク上に存在する場合、デフォルトの「ハードウェアルール」はこのように破られます。 ディスカバリーは 1 番目のデバイスを認識し、SNMP が開いていることを確認して、分類プローブと ID プローブを実行します。データには、名前とシリアル番号に加えて、その第 1 デバイスの IP アドレスと MAC アドレスを含むネットワークアダプタ情報が含まれます。識別および調整エンジン (IRE) は既存の CI と照合できないため、新しい CI を作成しますディスカバリーは 2 台目のデバイスを認識するようになります。これは同じ名前(例:「RACKPDU」)ですが、他のすべての識別データは異なります。識別および調整エンジンにより、ハードウェアルールの各ルールが実行され、CMDB 内の確認内容と既に確認された内容が順番に比較されます。 一致する serial_number serial_number_type - 一致なし cmdb_serial_number を検索 を検索します。メインのハードウェア [cmdb_ci_hardware] レコードの シリアル番号フィールド - 一致なしを検索します。メインのハードウェア [cmdb_ci_hardware] レコードの [名前] フィールドを検索します。 第 1 CI と一致します。良くありません。 第 1 デバイスの CI と一致し、第 2 デバイスの属性で誤って更新されます。これらのデバイスのいずれかが再検出されるたびに 同じ CI が更新され重複するcmdb_ci_serial_number、cmdb_ci_network_adapterおよびcmdb_ci_ip_addressレコードが毎回作成され、その単一のメイン CI にリンクされます。同様のデバイスが何百台もある場合、それらの関連テーブルが本当に混乱してしまいます。CMDB 内の唯一の CI はデバイスの 1 つをランダムに表し、最後にスキャンされたものと一致するように定期的に属性を変更します。他のすべての CI には CI は存在しません。 Resolution<!-- /*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: #7057C7; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: block; max-width: ; width: auto; height: auto; } } 複数のプリンターが同じ名前であることがわかっている上記のプリンターの例: CI クラスマネージャーを開きます: Configuration - CI Class Manager左側の クラス階層 リストで、カスタム識別子が必要な CI クラスを選択します。例:ハードウェア>プリンター右側の列で CI ID を選択します。[Identification] リストにハードウェアルールが表示されます。その識別リストのヘッダーにある 新規 をクリックします。名前 新しい識別子。例:「カスタム - プリンター」で 送信。ナビゲーションに戻り、[識別子] のリストを開きます。 Configuration - CI Identifiers「ハードウェアルール」を開きます[識別子エントリ] 関連リスト内のアクティブなレコードごとに次の操作を行います。 レコードを開く「識別子」をテーブル名に変更します (例:cmdb_ci_printer[検索対象テーブル] が [ハードウェア] の場合: どのフィールドが「基準属性」にリストされているかに注意してください。すぐに元に戻す必要があるためです。例:「IP アドレス、MAC アドレス」、「シリアル番号」テーブルで検索を自分のテーブルに変更します。例:プリンター。上記でメモしたフィールドを [基準属性] に追加し直します ヘッダーを右クリックし、[挿入] をクリックして、そのエントリが独自の識別子の場合はコピーを作成します。(保存したり送信したりしないでください。そうしないと、ハードウェアルールを変更することになります! [関連エントリ ] 関連リスト内のアクティブなレコードそれぞれについて: レコードを開く「識別子」をテーブル名に変更します (例:cmdb_ci_printerヘッダーを右クリックし、[挿入] をクリックして、そのエントリが独自の識別子の場合はコピーを作成します。(保存したり送信したりしないでください。そうしないと、ハードウェアルールを変更することになります! 新しい識別子を開きます。新しくコピーした識別子エントリが一覧表示されます。この時点では、ハードウェアルールのストレートコピーであるため、機能的には同一です。面倒なエントリを非アクティブ化します。たとえば同じ名前を共有することがわかっている CI がある場合は、基準が [名前] であるエントリの [アクティブ] をオフにします。また、特定のデバイス モデルの癖を回避するために必要な 他の条件を持つ新しいエントリを追加する こともできます。 上記のプリンターの例のように、プリンターの名前ルールを非アクティブ化する場合、既存のデータでは一致がないため、次回のディスカバリー実行時に多くのプリンター CI が作成されることが予想されます。その後のディスカバリー実行時に、新しい識別子に他のエントリが残っているため、個々の CI はシリアル番号で識別され、正しく更新されます。プリンター以外のユーザーは変更の影響を受けず、ハードウェアルールが引き続き使用されます。 関連エントリもコピーされる理由は、一部のディスカバリーパターンがハードウェアルールを使用するように記述されているためです。たとえば、サーバーの新しいカスタム識別子が作成された場合、Linux サーバーパターンは、想定される関連エントリがないと正しく機能しません。 より厄介な例 - AIXサーバーは同じシリアル番号を共有します 基本的には上記と同じ操作を行うことができますが、今回は AIX サーバー [cmdb_ci_aix_server] の独立した識別子を作成します。シリアル番号のみで一致しないように、[シリアル番号] フィールドと [シリアル番号] テーブルのエントリを無効にする必要があります。名前とシリアル番号の新しいエントリをシリアル番号に追加できますが、一致する名前がある場合に限ります。 これを厄介なものにしているのは、シリアル番号のルールがない場合 識別エンジンエラーです。この場合、シリアル番号のルールが誤認の原因ですが、これらを無効にすると、パターンログに次のようなエラーが表示され、パターンは何も更新できません。 Identification CI Errors:Identity Rule for table [cmdb_ci_aix_server] missing Lookup Rule for class [cmdb_serial_number],Abandoned due to too many errors... このエラーを回避する秘訣は、これらのエントリをアクティブに保ち、決して発生しないフィルタ条件を追加して、ルールがそのエントリを使用して一致しないようにすることです。現在は事実上無効になっていますが、公式にはまだアクティブです。例:シリアル番号 IS NeverGoingToMatchOnThis 参照用に更新セットとして添付されている AIX の例のスクリーンショット。これは、Paris パッチ 4 インスタンスで行われました。 レコードを直接開きます。このビットは、CI クラスマネージャーから簡単に実行できません。 エントリをコピーする場合、ハードウェアテーブルのエントリは2つのステップ(編集、挿入、さらに編集、更新)で実行する必要があります。他の識別子エントリと関連エントリは、1つのステップ(識別子を編集して挿入)で実行できます。 まず [識別子] を変更し、[Insert & Stay] を実行します。次に、[検索対象テーブル] を変更します。これにより基準属性がクリアされるため、これらの属性を再入力してから更新します 名前 + シリアル番号の新しいエントリを追加: シリアル番号エントリを編集して不可能な条件を追加します: 新しい識別子を次のように残します。 Related Links<!-- /*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: #7057C7; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: block; max-width: ; width: auto; height: auto; } } 新しい識別子を作成すると、副作用が生じる可能性があります。多くの機能は、インポートまたは検出されたデータを既存の CMDB レコードと照合するためにこれを使用します。変更を加えた後、準本番インスタンスでディスカバリーソースまたはインポートを完全にテストすることをお勧めします。具体的には、特定の CMDB クラスにカスタム識別ルールを定義すると、親クラスからのそのクラスのすべての識別ルールの継承が解除されます。これには、関連エントリルールが含まれます。したがって、クラスに新しい識別ルールが導入された場合、クラスにまだ適用可能なすべての関連するエントリ ルールを再作成し、継続的な方法で監視/保守する必要があります。たとえば、新しいアプリケーションのインストールでは、アプリ固有の関連エントリ ルールを導入でき、必要に応じてそれらもレプリケートする必要があります。特定の CMDB クラスにカスタム識別ルールを導入すると、クラス階層内の異なるポイントに存在する重複 CI が作成されるリスクがあるという副作用もあります。これは、識別ルールのデフォルトの IRE 動作では、その識別ルールを使用する特定の CMDB クラスでのみ一致を検索するためです。したがって、そのクラスの親クラスに既存の CI が存在する場合、IRE によって 検出されません 。代わりに、新しい CI が特定のクラスに挿入され、重複する可能性があります。たとえば、cmdb_ci_serverに対してカスタム識別ルールが定義され、名前とシリアル番号を照合して識別を定義するとします。cmdb_ci_computer (cmdb_ci_server の親) に存在し、名前とシリアル番号が同じ CI がある場合、IRE によってこのcmdb_ci_serverルールで見つからないか照合されません。代わりに、同じ名前とシリアル番号を持つ別の CI が cmdb_ci_server に挿入されます。cmdb_ci_server は cmdb_ci_computer の子であるため、cmdb_ci_computerテーブルには、同じ名前とシリアル番号を持つ 2 つの異なる CI が存在することになります。 コピー後にすぐに使用できる識別子でエントリが追加または変更された場合は、それらの変更を手動で行う必要があります。一致する独自の識別子を維持できるように、アップグレードの一環として行われた識別子の変更に注意する価値があります。 ディスカバリーパターンやその他の機能は、IRE ペイロードをまとめるときにすぐに利用可能な識別子を使用することを前提としています。挿入/更新中にこれらのペイロードによって識別エンジンでエラーが発生した場合は、カスタマイズされた識別子にエントリが欠落しているか、継承していたすぐに使用できる識別子と一致するように更新する必要があります。 カスタムクラスに追加された名前識別子エントリに関する最近の観察事項があります。子クラスの識別子が条件によって制限され、同様の識別子が親クラスに存在する場合、IRE は親クラスの対応する識別子エントリを評価します。