BigFix Insights のトラブルシューティング

このトピックは、BigFix 10 Insights で発生したさまざまな問題のトラブルシューティングに役立ちます 。

アプリのログの場所

BigFix Insights アプリケーションとは、ETL サーバーとして構成されている WebUI サーバーのアプリのことです。そのため、ログはネイティブの WebUI の場所に配置されています。これは通常、次のディレクトリー内に配置する必要があります。

<Installation Drive>:\Program Files (x86)\BigFix Enterprise\BES WebUI\WebUI\logs
Note: WebUI アプリケーション・ログは、代替ディレクトリーに格納するように構成されています。WebUI アプリケーション・ログが代替ディレクトリー内に配置されるように構成されている場合、BigFix Insights アプリケーション・ログは代替ディレクトリーに配置されます。

BigFix Insights はログ・ディレクトリー内のログを保持します。アプリケーション名は Insights です。したがって、ログはこのディレクトリー内で insights.log と呼ばれます。ログは、ログ・イベントが拡張するにつれて丸められるように構成されます。ログ・セットの合計サイズによっては、整数表現 (insights.log.1insights.log.2 など) 内にサフィックスの付いたログ・ファイルが表示されることがあります 。ログ・ファイルを評価する際には、ログがロールフォワードされるため、ファイルの修正時間に注意してください。

詳細なロギング

詳細なロギングを有効にするには、WebUI 設定 _WebUI_Logging_Filter を変更して、bf:insights* (アスタリスクを含む) を含める必要があります。変更を反映するため、アプリケーションまたは WebUI サービスを再起動する必要があります。このログ出力は非常に大きいため、デバッグ・セッションが終了したら、設定を以前の値に戻すことをお勧めします。

Insights アプリケーションのログ出力は冗長になります。

Note: ETL ログは、メインの Insights アプリのログと同じログ・ファイルに含まれるようになり、bf:insights-ETL というプレフィックスが付いています。

対象の SQL テーブル

ETL_Metrics

BigFix Insights 実行中の ETL と完了した ETL のすべてのテーブル・ログを保持します。このデータは、ETL_Metrics テーブル内でキャプチャーされます。このテーブルは、手動で変更または修正しないでください。このテーブルは、Insights SQL Server データベースの ETL_Metrics テーブル内に配置できます。次の SQL クエリを使用して、このテーブルから情報を選択できます。
SELECT TOP 1000 [id]
      ,[datasource_id]
      ,[start_time]
      ,[end_time]
      ,[duration_ms]
      ,[status]
      ,[detail_log]
,[preflights]
  FROM dbo].[etl_metrics]
ETL_Metrics テーブルには、各データ・ソースの各 ETL が記載されており、指定された ETL のメトリックを表す detail_log 列が保持されています。列の値は JSON 値として構造化されます。次に、ETL ごとに書き込まれる JSON 値の例を示します。
{"step1":{"entity":"DatasourcePropertyResult","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:19.463Z",
"endTime":"2020-03-28T18:26:20.363Z","durationMs":900},
"step2":{"entity":"ActionStateString","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:20.376Z",
"endTime":"2020-03-28T18:26:20.503Z","durationMs":127},
"step3":{"entity":"DatasourceSite","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:20.516Z",
"endTime":"2020-03-28T18:26:20.743Z","durationMs":227},
"step4":{"entity":"DatasourceActionsiteProperty","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:20.743Z",
"endTime":"2020-03-28T18:26:20.870Z","durationMs":127},
"step5":{"entity":"DatasourceDevice","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:20.980Z",
"endTime":"2020-03-28T18:26:21.103Z","durationMs":123},
"step6":{"entity":"DatasourceFixlet","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:21.103Z",
"endTime":"2020-03-28T18:26:24.896Z","durationMs":3793},
"step7":{"entity":"DatasourceAnalysis","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:24.910Z",
"endTime":"2020-03-28T18:26:25.053Z","durationMs":143},
"step8":{"entity":"DatasourceAnalysisProperty","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:25.053Z",
"endTime":"2020-03-28T18:26:25.210Z","durationMs":157},
"step9":{"entity":"DatasourceAction","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:25.223Z",
"endTime":"2020-03-28T18:26:25.633Z","durationMs":410},
"step10":{"entity":"DatasourceGroup","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:25.633Z",
"endTime":"2020-03-28T18:26:25.693Z","durationMs":60},
"step11":{"entity":"DatasourceComputerGroup","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510",
"startTime":"2020-03-28T18:26:25.693Z","endTime":"2020-03-28T18:26:25.756Z","durationMs":63},
"step12":{"entity":"DatasourcePropertyMap","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:25.773Z",
"endTime":"2020-03-28T18:26:25.900Z","durationMs":127},
"step13":{"entity":"StagingFixletField","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:25.913Z",
"endTime":"2020-03-28T18:26:27.510Z","durationMs":1597},
"step14":{"entity":"StagingFixletResult","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:27.526Z",
"endTime":"2020-03-28T18:26:27.590Z","durationMs":64},
"step15":{"entity":"DatasourceActionResult","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:27.590Z",
"endTime":"2020-03-28T18:26:27.763Z","durationMs":173},
"step16":{"entity":"ContentResult","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:27.780Z",
"endTime":"2020-03-28T18:26:28.030Z","durationMs":250}}
ログは JSON ビューアーで簡単に表示できます (複数のアプリケーションをオンラインで取得できます)。JSON は変数の配列として構造化され、1 つのステップは配列内の変数になります。配列内の特定のステップ変数の例は次のとおりです。
{"step1":{"entity":"DatasourcePropertyResult","startSequence":"0x000000001fc08879",
"endSequence":"0x000000001fcd3510","startTime":"2020-03-28T18:26:19.463Z",
"endTime":"2020-03-28T18:26:20.363Z","durationMs":900},"

上記の例は、ステップ 1 が DatasourcePropertyResult ステップであることを示しています。ETL はシーケンス 0x000000001fc08879 から取り込まれるように構成され、シーケンス 0x000000001fcd3510 で終了しました。ステップは 2020-03-28T18:26:19.463Z で始まり、2020-03-28T18:26:20.363Z で終了しました。この合計持続時間は、900 ミリ秒 (つまり 0.9 秒) です。同じ原理を使用して、結果のログ値全体を分析します。結果を理解することで、進行中の ETL 操作に関する何らかの情報が得られます。シーケンスの開始と終了の範囲は、ステップ内で取得されたデータを示します。シーケンスは、取り込み中の BFE サーバー内で記録され、何かが変更されたかどうかを識別するための手段となるため、インポートする必要があります。開始と終了の範囲のシーケンスが同じ値の場合、取り込みの結果として得られる BFE データベース内で何も変更が行われていないことを示します。

問題と考えられる修復方法

Table 1. 問題と考えられる修復方法
問題または問題点 一連の行動

Insights DBMS のデプロイに関する問題

Insights のセットアップで提供されたユーザー資格情報に、Insights SQL Server 上にターゲット DB を作成するための適切な許可があることを確認します。適切なターゲットの Insights SQL Server が、指定されたポートを介してアクセス可能であることを確認します (ポートが指定されていない場合は、ポート 1433 が使用されます)。簡単な検証方法として、Insights DB サーバー上の SQL ログを確認して、接続が確立されているか、および認証が行われているかを確認します (SQL Server は、ログインの成功と失敗を監査するように構成できます)。
特定のデータ・ソースのデータが更新されない Insights ライブ BigFix Enterprise サーバーのホストされたレプリカであるデータベース・ターゲットから取り込みます。レプリカが最新のデータセットで更新されたことを確認します (バックアップまたはレプリケーションなどによって)。ETL_Metrics テーブルを簡単に調べると、取り込みのターゲットでデータが変更されたかどうかを確認できます。ETL_Metrics テーブルでは、すべての ETL がすべてのデータ・ソースに記録されます。前述のセクションでは、そのテーブル内のデータを解釈する方法を説明しています。前の成功した実行ステップと最新のステップ・シーケンス ID を比較すると、データが基礎となるデータベースで実際に進化したかどうかを確認できます。データが変更されている場合、Insights はデータ・ソースから取り込み、ETL ログを確認して、ETL が正常に完了したことを確認する必要があります。ETL が繰り返し正常に完了しない場合は、サポートに連絡してください。
データ・ソースを削除できない BigFix Insights には、プライマリー・リンク項目の概念があります。プライマリー・リンク項目は、外部サイトを取り込むことを選択したときに割り当てられます。BigFix Insights では、指定されたサイトの プライマリーとして関連付けられているデータ・ソースをユーザーが削除することはできません。指定されたサイトのプライマリーは、データ・ソースを削除する前に、まず別のデータ・ソースに再割り当てする必要があります。
データ・ソースに接続できない Insights 対応するデータ・ソースから情報を取得します。提供されたユーザー資格情報が正しいこと、およびターゲット・データ・ソース DB から読み取るための適切な許可があることを確認します。適切なターゲット・データ・ソースの SQL Server が、指定されたポートを介してアクセス可能であることを確認します (ポートが指定されていない場合は、ポート 1433 が使用されます)。簡単な検証方法として、データ・ソース DB サーバー上の SQL ログを確認して、接続が確立されているか、および認証が行われているかを確認します (SQL Server は、ログインの成功と失敗を監査するように構成できます)。
Insights での「やりなおし」- 削除するデータ・ソースがあるため、「新規インストール」に戻す 完全にリセットするには、WebUI の報告先となる BFEnterprise データベースに対して次の照会を実行する必要があります。

delete from [BFEnterprise].[dbo].[webui_data] where App = 'insights'

Insights データベースは削除するか、保持することができます。Insights WebUI アプリケーションに再度アクセスする場合は、既存の Insights データベースに接続するか、新しいデータベースを作成する必要があります。以前の Insights データベースを保持する場合は、新しく作成した Insights データベースに新しい名前を設定します。