ファイル ディスカバリー調査
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
5 hours ago
ServiceNow のディスカバリー(Discovery)では、インストーラを持たないソフトウェア、特にコピーして利用する単体の exe ファイルは、そのままでは検出されません。
さらに、常駐アプリケーションのように常に起動しておらず、Running Process にも表示されない場合には、プロセスベースの検出も行えません。
このようなケースでは、配置されている exe ファイルのパス情報を基にソフトウェアを検出できる ファイルベース ディスカバリー(File-based Discovery) を利用します。
ここでは、その実施手順について説明します。
ITOM ライセンスとITOMプラグインがインストールされている必要があります。
ネットをくまなく探しましたが、具体的な手順が見つからずServiceNow 技術者の方から情報共有してもらい手順作成しましたのでこちらに共有します。
ただ・・・まだ100%ではありません。
参考:
File based Discovery tips and tricks (ただし、つまずきポイント等に関する情報が少ないです。)
ファイルベースの ディスカバリー • チューリッヒ IT Operations Management (ITOM) • 製品ドキュメント | ServiceNow (こちらの手順では実現できないと読み取っています。)
File Based Discovery - Support and Troubleshooting
■File Based Discovery 手順
1.機能を有効化します。
sys_properties.list より glide.discovery.file_discovery.enabled をtrue にします。
2.ナビゲーションメニューから Discovery Definition → Configuration Console を選択します。
以下の説明を参考に設定します。
項目 | 設定内容 | 説明 |
File Based Discovery | 有効 |
|
Folders To Scan | 検出したいファイルがあるフォルダを指定します。 | 検出したいファイルがあるフォルダを指定します。 その他、デフォルトにある %PATH% や C:\Windows 等々は削除します。 検出されるファイル数が多いと、時間もかかり、最悪はファイル数が多くなりエラーとなります。最小限のフォルダに絞ります。 |
Extensions Wildcards | *.exe | 検出したいファイルのファイルパターンを指定します。 |
Frequency | Everyday | ファイル ベース ディスカバリー を実行する間隔を指定します。 |
Configuration Console から 以下画像のように変更します。
D:\Tools\WinShot\ フォルダに配置した、 WinShot.exe を検出する例とします。
3.Discovery を実行します。 つまずきポイント その1 CDS 問題
実行後、Discovery Log から以下の内容があるか確認します。
「Not triggering FBD since its probes have not been built (CDS content has probably not been synched yet)」
こちら
ある場合 こちらの記事を参考に対策が必要です。
File Based Discovery - Support and Troubleshooting
該当記事
Error: Not triggering FBD since its probes have not been built (CDS content has probably not been synched yet) Cause: Properties file_discovery.unix_filename.timestamp and file_discovery.windows_filename.timestamp under table discovery_private_properties have value of 1970-01-01 12:00:00, which means the CDS content has not been downloaded yet. Solution: By default, the content is downloaded once every week. Navigate to table cds_client_schedule and search for records where field "table" value are one of samp_file_name, samp_file_map, samp_file_set . Click on the records and then on "Execute Now" to trigger an immediate download from the CDS. Note: It can take a while for the content do be fully downloaded. Navigate to "System Logs > Outbound HTTP Requests" to review the download of the content and ensure that the "Response status" is 200 for http logs where the "URL hostname" is sncdataservices.service-now.com. |
日本語訳
エラー: FBD(File-Based Discovery)は、そのプローブがまだ作成されていないため実行されません(CDS コンテンツがまだ同期されていない可能性があります)。 原因: テーブル discovery_private_properties にある file_discovery.unix_filename.timestamp とfile_discovery.windows_filename.timestamp の値が 1970-01-01 12:00:00 になっている場合、CDS コンテンツがまだダウンロードされていないことを意味します。
解決方法: CDS コンテンツはデフォルトでは 週 1 回ダウンロードされます。 手動で即時ダウンロードしたい場合は、次の手順を実行してください: テーブル cds_client_schedule に移動します。 フィールド table の値が samp_file_name samp_file_map samp_file_set のいずれかであるレコードを検索します。 レコードを開き、「Execute Now」 をクリックして CDS からのコンテンツダウンロードを即時実行します。
注意: コンテンツのダウンロードが完全に終了するまでに時間がかかることがあります。 進行状況を確認するには:
System Logs → Outbound HTTP Requests に移動してログを確認し、 “URL hostname” が sncdataservices.service-now.com の HTTP ログで Response status が 200 になっていることを確認してください。 |
ナビゲーションメニューに cds_client_schedule.list と入力し、cds_client_schedule テーブルを表示します。
一覧の中に Last Updated Time が空欄(Empty) のレコードがありますので、それらを開いて 「Execute Now」 をクリックします。
ServiceNow には、各インスタンスで登録されたソフトウェア(プロダクト)情報を収集し、ServiceNow 社側で統合・精査した上で再配布する仕組みがあります。
つまり、ユーザーが入力したソフトウェア情報をクラウド側で一元管理し、精度の高いソフトウェア情報として整理したうえで、各インスタンスに配布しています。
ここで実行するスケジュールは、ServiceNow のデータセンターから再配布されたソフトウェアメタデータ(CDSコンテンツ)を取得するためのものです。
この CDS コンテンツの同期が実行されていないため、
「Not triggering FBD since its probes have not been built (CDS content has probably not been synched yet)」
というエラーが発生している、という状況になります。
参考画面
記事には、Outbound HTTP Requests から sncdataservices.service-now.com への通信履歴を確認することで、ダウンロードスケジュールが完了したかどうかを確認できると記載されています。
しかし、私が検証した Zurich Patch 4 の環境では、ダウンロード自体は正常に完了したものの、Outbound HTTP Requests にログは記録されませんでした。
また、上記 3 つの CDS コンテンツのダウンロードには 約 15 分程度 を要しました。
私は cds_client_schedule.list のページを定期的にリフレッシュし、Last Updated Time に日時が入ったことを確認してダウンロード完了と判断しました。
ダウンロード完了後、MID Server に対して「Pattern Sync to MID」を実行してください。
(これは“おまじない”のようなもので、実行しなくてもエラーが解消される可能性は高いですが、念のため実行を推奨します。)
4.Discovery を実行します。 つまずきポイント その2
Discovery Log に以下が表示されるケース。
「File discovery is still running on the target.」
これは、File Discovery はDiscovery 実行時に パワーシェルスクリプトを以下のフォルダに配置します。
\\127.0.0.1\admin$\Temp\unregistered
初回は配置を行い、パワーシェルスクリプトを実行しますがパワーシェルスクリプトは同期実行されず、並列処理されます。
そのため、結果を待たず Discovery は終了します。
そして、File Based Discovery は2回目の実行時に、上記フォルダに .result ファイルがあるか確認します。
.result にパワーシェルスクリプトの実行結果が記録されるためです。ただ、このメッセージが表示されるのは、パワーシェル スクリプトの配置は成功しているが、
.result ファイルが無い事になります。
何度もDiscovery を実行しても結果が変わらない場合、以下の内容を確認してください。
・ Discovery Definition → Configuration Console で File Based Discovery を設定した際に、%PATH% や C:\Windows などデフォルト設定されているフォルダが残っていないか。残っていたら削除してください。
探索対象フォルダにファイルが大量にあると、File Based Discovery のシェルスクリプトは時間がかかり 「File discovery is still running on the target.」 が継続します。
・Mid Server で以下のパワーシェルスクリプトを管理者権限で実行してください。
MID サーバー は、これらのサーバーがこの MID サーバー のための信頼できるホストとして構成されていない限り、WinRM プロトコルを使用してサーバーにアクセスすることはできません。 MID サーバー または サービスマッピング によって使用される ディスカバリー ごとにこの手順を実行します。 手順
|
これにより、解消されるケースが多いにあります。
5. Discovery が成功後、CI 項目の関連リストから File Informations を開きます。
関連リスト より 「File Information」を選択して Selected に移動させ、「Save」します。
これにより、File Information が表示され、File Based Discovery で検出されたファイルが表示されます。
5.SAM Pluginがあれば、さらにSoftware Installations に移行させる事もできます。(できないファイルもあります。)
Unidentified File Sets テーブル(cmdb_unidentified_file_set)に、検出したいソフトウェアの情報を登録します。
ナビゲーションメニューに cmdb_unidentified_file_set.list と入力し、Unidentified File Sets テーブルを表示します。
テーブルが表示されたら 「New」ボタン をクリックして、新規レコードを作成します。
検出対象の exe ファイルのプロパティ情報をベースに 値を設定します。
WinShot の場合、以下となります。
WinShot.exe のプロパティ構成
6.Discovery を 2回実行します。
これで、 CI の Software Installations に記録されます。
ただ、WinShot は記録されずでした・・。継続調査中。 もしわかる方いましたら・・・情報共有お願い申し上げます。
- Labels:
-
CMDB. ITOM
- 186 Views
