ディスカバリーがサーバーとデバイスのモデル ID とメーカーを取得する方法Issue この記事では、ディスカバリーのプローブとパターンがネットワークデバイス、Linux、および Windows サーバーの model_id と manufacturer を更新する方法について説明します。 model_id と manufacturer は参照フィールドです。一般に、プローブはデバイスから model_id と manufacturer の両方を収集し、その文字列値を model_type とともに MakeAndModelJS.fromNames() 関数に渡します。model_type によって、model_id の取得に使用されるテーブルが決まります。model_type が空の場合は、[cmdb_model] テーブルが使用されます。 model_id の検索に使用されるテーブルの一部を次に示します。 ハードウェア cmdb_hardware_product_model 消耗品 cmdb_consumable_product_model ソフトウェア cmdb_software_product_model アプリケーション cmdb_application_product_model 注意:CI のモデルとメーカーのフィールドに実際には値が入力されているのに、空のように見える場合があります。どちらのフィールドも参照フィールドであり、値を直接入力するのではなく、sys_ids を入力する必要があります。この問題を解決するには、センサー/パターンが MakeAndModelJS を呼び出して参照値を取得するようにする必要があります。レコードの xml を表示すると、このことを確認できます。 ネットワークデバイス (SNMP ディスカバリー) ネットワークデバイスの場合、model_id と manufacturer は SNMP 分類プローブによるディスカバリーの分類フェーズで収集されます。 次の重要な OID によって、使用されるモデルとメーカーが決まります。 mgmt.mib-2.entityMIB.entityMIBObjects.entityPhysical.entPhysicalTable entPhysicalModelNamemgmt.mib-2.entityMIB.entityMIBObjects.entityPhysical.entPhysicalTable entPhysicalMfgNamemgmt.mib-2.system.sysObjectID sysObjectID が返される場合は、[ディスカバリー定義] > [分類] > [SNMP システム OID ] のモデルとメーカーが使用されます。sysObjectID 値が返されない場合や SNMP システム OID の下に sysObjectID に一致するレコードがない場合は、entPhysicalModelName と entPhysicalMfgNam から返された値が使用されます。 注意:entPhysicalModelName と entPhysicalMfgName の値がそれぞれ SNMP システム OID 値と一致せず、sysObjectID が一貫して返されない場合は、model_id と manufacturer が入れ替わっている可能性があります。そのため、可能であれば、SNMP システム OID の値をデバイスから返される値と一致するように更新する必要があります。model_id と manufacturer を取得するためのオプションを 2 つ用意すると、冗長性を実現できます。 UNIX/Linux UNIX/Linux のさまざまなディストリビューションがそれぞれ独自のプローブ/センサーを使用して、model_id と manufacturer を収集します。 そうしたモデルとメーカーを収集するためにすぐに利用可能なプローブ/センサーは、次のとおりです。 プローブ コマンド/スクリプト Linux :ハードウェア情報 dmidecode; echo dummy > /dev/null HP-UX:ハードウェアモデル* model AIX:ハードウェアモデル* lsattr -El sys0 -a modelname -F value Solaris:ハードウェアモデル* suntype.sh Windows Windows デバイスの model_id と manufacturer の情報は、 Windows - OS 情報プローブによって収集されます。 モデルとメーカーに使用される WMI フィールドは次のとおりです。 Win32_ComputerSystem.ManufacturerWin32_ComputerSystem.Model Windows OS サーバーパターン取得ステップ: ステップ 1:Windows 分類でデータセットを取得する ステップ 1.35:Win32_ComputerSystem からデータを取得する--> ここで WMI クエリが実行されます。「SELECT Name,Domain,Manufacturer,Model,UserName FROM Win32_ComputerSystem」--> テストするには、ホストサーバーにログインし、PowerShell で次のコマンドを実行してみてください。Get-WmiObject -query "SELECT Name,Domain,Manufacturer,Model,UserName FROM Win32_ComputerSystem" 「model_id」が含まれている結果が返されます。 上記のステップからデータを取得すると、手順 9「システム、OS、および CPU データを [cmdb_ci_win_server] テーブルに挿入する」の一部になります。ここで、model_id は $computerInfo{1].Model です。したがって、ホストサーバーから取得されるのは、CMDB に設定されているものになります。 次の例は、PowerShell コマンドを実行してモデルとメーカーを収集した場合の結果を示しています。 その他 検出できるデバイスクラスは他にも多数あり、カスタムクラスを作成できます。いずれのクラスもそれぞれ、こうしたフィールドのターゲットデバイス/アプリケーションを照会し、MakeAndModelJS スクリプトを使用してレコードを更新できる適切な参照値を取得します。 パターン パターンは、「パターンデザイナー > 前処理/後処理」スクリプト、特に「OS:プリセンサー」スクリプトを介して MakeAndModelJS を呼び出します。「パターン」列によって、どのパターンがこの前処理/後処理スクリプトを使用してペイロードを変更するかが決まります。