次の方法で共有


ソフトウェア インベントリ ログのトラブルシューティング

SILについて

SIL のトラブルシューティングを開始する前に、そのコンポーネントとその動作について十分に理解しておく必要があります。 次のビデオでは、SIL アグリゲーターと SIL アグリゲーターの概要と、それらを使用してインベントリデータを転送および報告する方法について説明しています:

  1. ソフトウェアインベントリログ (SIL) の概要 (10:57)

  2. ソフトウェアインベントリログ: SIL アグリゲーターの設定 (14:34)

  3. ソフトウェアインベントリログ: SIL 転送の有効化 (7:20)

SIL データフローのしくみ

SIL フレームワークには、2つの主要なコンポーネントと2つの通信チャネルがあります。 SIL 配置を成功させるには、両方のチャネルでのデータの Flow と、両方のコンポーネント間のデータの両方が必要です (これは仮想化された環境またはクラウド環境であることを前提としています。純粋な物理環境では、いずれかの通信チャネルのみが必要です)。 正しくデプロイするには、SIL のコンポーネントとデータフローを理解する必要があります。 上の概要ビデオを視聴すると、コンポーネントと、両方のチャネルのデータフローを示すアーキテクチャ図が表示されます。 オレンジ色の矢印は、WinRM に対するリモートクエリを示し、緑の破線の矢印は各 WS 終了ノードの SIL から SIL アグリゲーターへの HTTPS ポストを示しています。

SIL フレームワーク図

SIL で問題が発生した場合は、チャネル上のデータフローとコンポーネント間の中断に関連している可能性があります。 データフローに関連する最も一般的な問題を次に示します。次のセクションでは、3つの問題のそれぞれを解決するためのトラブルシューティングの手順について説明します:

  • データフローの問題 1Publish-SilReport コマンドレットを使用している場合 (または一般にデータが欠落している場合)、レポートにデータがありません

  • データフローの問題 2 -レポートの 不明なホストにあるサーバーが多すぎ ます。

  • データフローの問題 3レポートで不明な OS として表示されている物理ホストの下にある VMs が多すぎます。または、SILを実行している Windows サーバーで公開データを使用しているときに発生したエラーが発生します。

データフローに関する問題のトラブルシューティング

開始する前に、SIL アグリゲーターが 開始単位のアグリゲーター コマンドレットで開始された時間を把握しておく必要があります。

重要

SQL データキューブがローカルシステムの午前3時に処理されるまで、レポートにデータは表示されません。 キューブがデータを処理するまでは、トラブルシューティングの手順に進まないでください。

キューブが最後に処理された日時よりも新しい場合、またはキューブが処理される前 (新規インストールの場合) にデータをトラブルシューティングするには、次の手順に従って、SQL データキューブをリアルタイムで処理します。

  1. SQL Server の管理者としてログインし、コマンドプロンプトでSSMSを実行します。
  2. データベース エンジンに接続します。
  3. [SQL Server エージェント]を展開し、 [ジョブ]を展開します。
  4. SILStagingRefreshを右クリックし、[Start Job at StepJob at Step] を選択します。
  5. [ 開始 ] をクリックして、更新の進行状況バーが完了するまで待ちます。
  6. 管理者として PowerShell を開き、 publish-silreport -openreport コマンドレットを実行します。

レポートにデータが残っていない場合は、3つのデータフローの問題のトラブルシューティングに進みます。

データフローの問題1

データフローの問題 1 – Publish-SilReport コマンドレットを使用している場合 (または一般にデータが欠落している場合)、レポートにデータがありません

データが欠落している場合は、SQL データキューブがまだ処理されていないことが原因である可能性があります。 データが最近処理されていて、不足しているデータがキューブ処理の前にアグリゲーターに到着したと思われる場合は、逆の順序でデータのパスに従います。 トラブルシューティングのために、一意のホストと一意の VM を選択します。 逆方向のデータパスは、SILA レポート<SILA データベース<SILA ローカル ディレクトリ<のリモート物理ホストまたは SIL エージェント/タスクを実行している WS VM となります。

データがデータベースに存在するかどうかを確認します

データを確認するには、 PowershellまたはSSMSの2つの方法があります。

重要

SILAがデータをデータベースに挿入した後、キューブが少なくとも1回処理されている場合、このデータはレポートに反映されるべきです。 データベース内にデータが存在しない場合は、物理ホストのポーリングに失敗しているか、HTTPS 経由で、またはその両方が受信されていません。

PowerShell

  1. 管理者として PowerShell を開き、get-silvmhost コマンドレットを実行してから、get-silaggregator コマンドレットを実行します。

    Excel レポートの Windows Server 詳細タブは、常にget-silaggregatorの出力を模倣します。 別の結果は想定しません。

  2. get-silvmhostを実行します

    • ホストが表示されていない場合は、 add-silvmhost コマンドレットを使用してホストを追加します。
    • ホストが [ 不明] と表示されている場合は、[問題 2] にアクセスします。 d-ホストが一覧表示されていても、[最近のポーリング] 列にDatetimeがない場合は、下の「問題 2 」に進んでください。

関連するその他のコマンド

Get-SilAggregator -Computername <データをプッシュしている既知のサーバーのfqdn>:これにより、キューブが処理される前であっても、コンピューター(VM)に関する情報がデータベースから生成されます。 したがって、このコマンドレットを使用すると、午前3時にキューブ処理を行う前にあるいは使用せずに、またこのセクションの冒頭で説明したようにリアルタイムでキューブを更新していない場合、HTTPS経由でWindowsサーバーにSILデータをプッシュしているデータベース内のデータをチェックできます。

Get-SilAggregator -VmHostName <Get-SilVmHost コマンドレットの使用時に [最近のポーリング] 列に値があるポーリングされた物理ホストの fqdn>>: これにより、キューブが処理される前であっても、物理ホストに関する情報がデータベースから生成されます。

SSMS

nポーリング対象のホストからデータを確認する:

  1. SSMSを開き、データベースエンジンに接続します。

  2. データベースを展開し、SoftwareInventoryLogging データベースを展開し、次にテーブルを展開して、HostInfo テーブルを右クリックして、[上位 1000 行] を選択します。

    テーブルに1つ以上のホストのデータがある場合は、そのホストまたはホストのポーリングが少なくとも1回成功しています。

    HTTPS 経由でデータをプッシュした VMs またはスタンドアロンサーバーからのデータを確認します:

  3. SSMSを開き、データベースエンジンに接続します。 A2. はい。 [データベース] を展開し、SoftwareInventoryLogging データベースを展開します。次に、[テーブル] を展開し、VMInfo テーブルを右クリックして、[上位1000行] を選択します。

    一意の VM の各行は、HTTPS 経由で正常にプッシュされ、SIL アグリゲーターによって処理された1つの処理済みの bmil ファイルを表します。 Bmil ファイルは SIL によって使用される独自のファイルであり、SILインスタンスごとに1つ作成されます。これは、仮想環境で SIL と占有 SILAが使用される場合にのみ必要であることに注意してください。 それ以外の場合は、HTTPS トラフィックだけが必要/予想されます)。

    データベース内のすべてのデータは、キューブの処理後に SIL レポートに反映される必要があります。

データフローの問題2

不明なホストのサーバーが多すぎます

これは、SIL アグリゲーターが仮想マシンをホストしている物理ホストを正常にポーリングしない場合に、仮想環境で発生する可能性があります。

  1. 管理者として PowerShell を開き、 get-silvmhost コマンドレットを実行します。

    • ホストが [ 不明] と表示されている場合、 add-silvmhost コマンドレットは正常に機能しませんでした。通常は、これらのホストにアクセスするために正しくない資格情報が追加された (したがって、不明) ことが原因です。 ただし、資格情報が検証された場合は、 add-silvmhostコマンドレットでhosttypehypervisortypeの自動検出がプラットフォームを認識できなかったことを意味する可能性があります。 このような状況では、高度なトラブルシューティング手順を使用できますが、ここでは説明しません (EventViewer SIL アグリゲーターチャネルを確認してください)。

    • ホストが一覧表示されており、hosttypeおよびhypervisortypeに「不明」でない値、例えば Windows と HyperV、または Ubuntu と Xen などが指定されています。しかし、「最近のポーリング」列に datetime が存在しない場合、ポーリングはまだ正常に実行されていないことを意味します。

      • ホストを追加してからポーリングが行われるようにするためには、1時間待つ必要があります(この間隔が既定の設定であるかどうかは、get-silaggregator コマンドレットを使って確認できます)。

      • ホストが追加されてから1時間経過した場合は、ポーリングタスクが実行されていることを確認します。タスクスケジューラで、MicrosoftWindows>ソフトウェアインベントリログアグリゲーター を選択し、タスクの履歴を確認します。

    • ホストが一覧表示されていても、 RecentPollhosttype、または hypervisortypeに値がない場合は、これがほとんど無視される可能性があります。 これは、HyperV 環境でのみ発生します。 このデータは、実際には、HTTPS 上で実行されている物理ホストを識別するために Windows サーバー VM から取得されます。 これは、レポートを作成している特定の VM を識別する場合に役立ちますが、データベースのマイニングには、 Get-SilAggregatorData コマンドレットを使用する必要があります。

ホストが正しくポーリングされると、[最近のポーリング] の下にdatetimeがある場合は、これらの物理ホストのデータを格納することができます。 このデータを取得する手順については、上記の「問題1」セクションを参照してください。

データフローの問題3

不明な OS として一覧表示された VMs を含む物理ホストが多すぎます

  1. これらのホストのいずれかにあることがわかっている Windows サーバー終了ノード (VM) を1つ選択し、管理者としてログインします。
  2. PowerShell を管理者として開きます。
  3. SilLogging が実行されていることを確認するには、Get-SilLogging コマンドレットを使用します。
    • 実行している場合は、 公開データを使用して SIL データを手動でプッシュしてみてください。

    • エラーが発生した場合は、次のようになります:

      • targeturi のエントリに https:// が含まれていることを確認してください。
      • すべての前提条件が満たされていることを確認します。
      • Windows Server 用の必須の更新プログラムがすべてインストールされていることを確認してください (「SIL の前提条件」を参照)。 (WS 2012 R2 でのみ) チェックする簡単な方法は、次のコマンドレットを使用してこれらを検索することです: get-silwindowsupdate * 3060、* 3000
      • アグリゲーターでの認証に使用される証明書が、SilLogging でインベントリされるローカル サーバー上の適切なストアにインストールされていることを確認します (「はじめに」セクションを参照)。
      • SIL アグリゲーターで、アグリゲーターの認証に使用されている証明書の拇印が、 Set-SilAggregator-AddCertificateThumbprint コマンドレットを使用してリストに追加されていることを確認します。
      • エンタープライズ証明書を使用する場合、SIL が有効になっているサーバーが、証明書を作成したドメインに参加していること、あるいはルート証明機関で検証できることを確認します。 アグリゲーターへのデータの転送/プッシュを試みるローカル マシン上で証明書が信頼されていない場合、この操作は失敗しエラーが返されます。

      上記のすべてがチェックされ、確認されたが、それでも問題が続く場合:

      • 上記の項目をすべて確認したら、SIL アグリゲーターのインストールで使用される証明書が正常な状態であり、SIL アグリゲーター サーバーそのものの名前と一致していることを確認します。 また、SIL アグリゲーターをインストールするためにエンタープライズ証明書が使用される場合、証明書が作成したドメインにアグリゲーターを参加させる必要がある場合があります (この手順は、他のコンピューターが正常に同じ SIL アグリゲーターに転送している場合は、必要ありません)。

      • \Windows\System32\Logfiles\SILの場所を調べて、転送/プッシュを試みるサーバー上にキャッシュされた SIL ファイルがあるかどうかを確認します。 SilLogging が開始され、1 時間より長く実行されている場合、または パブリッシュシルデーター が最近実行され、このディレクトリにファイルが存在しない場合、アグリゲーターへのログインは成功しています。

エラーが発生せず、コンソールに出力がない場合、HTTPS 経由で Windows サーバーの終了ノードから sil アグリゲーターへのデータプッシュ/発行は成功しました。 データ転送のパスに従うには、SIL アグリゲーターに管理者としてログインし、到着したデータファイルを確認します。 Program Files (x86)>Microsoft SILアグリゲーター>ディレクトリに移動します。 リアルタイムで受信したデータファイルを監視することができます。

複数のデータファイルが、公開された データ コマンドレットを使用して転送されている可能性があります。 終了ノードの SIL は、最大30日間、失敗したプッシュをキャッシュします。 次に成功したプッシュでは、すべてのデータファイルが処理のためにアグリゲーターに送られます。 これにより、新しく設定された SIL アグリゲーターは、独自のセットアップの前に、最後のノードからのデータを表示できます。

トラフィックの少ない状況でのみ関連するディレクトリ内のデータファイルを処理するときに、次の規則が適用されます。 高トラフィックでは、常にリアルタイムで処理がトリガーされます。 既定の動作では、100ファイルがディレクトリに到着した後、または15分後に処理が開始されます。 小規模な環境でエンドツーエンドのトラブルシューティングを行う場合、多くの場合、15分間待機する必要があります。

これらのファイルが処理されると、データベース内のデータが表示されます。