Qualys インポートジョブのパフォーマンス調整のヒントSummary<!-- /*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: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: block; max-width: ; width: auto; height: auto; } } Qualys 側から脆弱性データをインポートすると、Qualys インポートジョブの実行が遅い、または途中で完了し、エラーステータスになることがあります。さまざまな要因が速度低下につながる可能性があります。ここでは、根本原因のトラブルシューティングを行い、Qualys データインポートのパフォーマンスを向上させるためのヒントをいくつか紹介します。 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: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: block; max-width: ; width: auto; height: auto; } } すべてのリリースに適用されます。 Instructions<!-- /*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: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: block; max-width: ; width: auto; height: auto; } } Qualys ホスト検出統合ジョブ Qualys ホスト検出統合ジョブでは、通常、Qualys ホストデータと脆弱性データの両方を含む最大のデータ量が得られます。以下のヒントは、主にこの仕事のみを対象としています。 1.遅いスクリプトやクエリを確認する 遅いスクリプトは sys_script_pattern から検索できます。LIST テーブルと遅いクエリーを sys_query_patternから検索できます。LIST テーブル。[平均実行時間 (ミリ秒)] および [Execution count] フィールドから、Qualys インポート中に実行頻度が最も高く、遅いビジネスルール、データベースクエリ、スクリプトなどがわかります。 また、localhost ログの脆弱性テーブル (テーブル名が「sn_vul_」で始まる) で実行されている遅いビジネスルールがないか確認することもできます。 以下は、「sn_vul_third_party_entry」で実行されている遅いビジネスルールを示すログスニペットのサンプルです。LIST' テーブル。 ======================yyyy-mm-dd hh:mm:ss (567) worker.1 worker.1 txid=14fbc5761b44 Slow business rule '<business_rule_name>' on sn_vul_third_party_entry:<span class = "session-log-bold-text"> QID-13497</span>, time was: 0:00:00.1242020-10-27 15:03:35 (568) worker.4 worker.4 txid=61bd893a1b44 WARNING *** WARNING *** (82)ExceptionHandler - exception at service ImpactManager: com.snc.cmdb.CmdbRuntimeException: Internal Error: expected record 'b642ada5b01c4909fb7ba8f1090203ce' is missing from table 'svc_model_obj_service' at com.snc.cmdb.service.modeling.persistence.BaseBlob$BaseLazyFetcher.load(BaseBlob.java:555) at com.snc.cmdb.service.modeling.persistence.BaseBlob$BaseLazyFetcher.getRaw(BaseBlob.java:445)... ... ...====================== 遅いビジネスルールまたはクエリが見つかった場合は、まず以下の基本チェックを終了し、根本原因がまだ不明な場合は、パフォーマンスチームを関与させてタスクを作成し、さらにチェックします。 a.OOTB (Out-Of-The-Box:すぐに利用可能な) インスタンスと比較して、脆弱性テーブルに欠落しているインデックスがないかどうかを確認しますb.そのビジネスルールで最適化できる、負荷の高いデータベースクエリやスクリプトロジックがあるかどうかを確認します 2.遅い脆弱性ルールを確認 Qualys インポートの実行中、関連する脆弱性ルールは脆弱性データがインポートされた後に実行されます。以下は、3つの典型的な脆弱性ルールです。 Vulnerability Risk Rules (table: sn_vul_calc_risk.LIST) Vulnerability Assignment Rules (table: sn_vul_assignment_rule.LIST) Vulnerability Group Rules (table: sn_vul_grouping_rule.LIST) 以下の手順に従って、Qualys 統合実行レコードのボトルネックを確認できます a.テーブル sn_vul_integration_runを開きます。LIST を開き、対応する Qualys 統合実行レコードを開きます または メニュー Qualys Vulnerability Integration > プライマリ統合 に移動し、Qualys 統合レコード (例:Qualys ホスト検出統合) を開きます。[脆弱性統合実行] タブで Qualys 統合実行レコードを確認できます b.[脆弱性統合プロセス] のリストビューに以下のフィールドがない場合は、追加します Assignment rules time Group rules time Risk rules time [インポートキュー処理時間]、[VI 作成時間」、「CI ルックアップ時間」などの他のフィールドを追加して、速度低下が発生する場所を診断するのに役立つ処理情報を増やすこともできます。 これは、Qualys データの処理中の速度低下の場所を把握するのに役立ちます。以下は、フィールド情報を示すスクリーンショットです。 特定のアサインルールで処理に時間がかかることが見つかった場合は、それを無効にして Qualys 統合を再実行してください。 複数のアサインルールの実行が遅い場合は、以下のオプションを試してください。 a.ビジネスルール「アサインルールの実行」を無効にし、Qualys 統合を再実行します。b.すべてのアサインルールとグループルールを非アクティブとしてマークし、初期インポートを再実行します。これにより、すべての脆弱性一致アイテムが初めてインポートされます。その後、これらのルール(グループ+アサインルール)をすべて有効にし、これらのルールの[Apply Changes]ボタンをクリックします。これにより、インポートされた脆弱性一致アイテム (インスタンスに存在) にルールが適用され、初期インポート時の作業負荷が軽減されます。 このオプションについては、以下のスクリーンショットを参照してください。 最初のインポートと後続のインポート以降が完了すると、新しいデルタレコードの数が少なくなり、処理が高速化されます。 いずれかの脆弱性ルールがカスタマイズされていることが判明した場合は、ロジックをさらに確認するために開発チームを関与させるタスクを作成してください。 3.データソースを増やす データソースは、Qualys データを処理するスレッドの数です。ノードは、空きスケジューラーワーカーに基づいて複数のスレッドを持つことができます。 以下の手順に従って、インスタンスで利用可能なノードが多い場合は、特定の Qualys 統合のデータソースを増やしてみてください。 a.メニューから移動 Qualys Vulnerability Integration > プライマリ統合 b. Qualys Integration レコードを開く (例:Qualys ホスト検出統合) c.タブ [データソース] に移動し 新規 ボタンをクリックして、この統合レコードのデータソースを追加します 詳細については、以下のスクリーンショットを参照してください。 詳しくは KB0995003をご覧ください。 4.スケジュール済みインポートプールを増やす スケジュール済みインポートテンプレートは、データソースを介してデータを処理するために使用されます。Qualys、Rapid、Tenable など、同じインスタンス上のすべてのアクティブな脆弱性対応アプリケーションで共有されます。ServiceNow では、デフォルトで 10 個のインポートスケジュールテンプレートが提供されます。これは、10 個の添付ファイルを処理するために一度に 10 個の並列スレッドが実行されていることを意味します。Qualys ジョブのパフォーマンスに影響を与えているシステムリソースを競合させるために複数の脆弱性対応アプリケーションが実行されていることをユーザーが確認した場合、ユーザーはさらにインポートテンプレートを増やすことを検討できます。 詳しくは KB0995644をご覧ください。 注: 各スケジュール済みインポートテンプレートは、ノード上のスケジューラワーカーを消費することに注意してください。スケジュール済みインポートプールを増やす前に、お客様のインスタンスのノード数を注意深く確認してください。 5.切り捨て制限を引き下げる 切り捨て制限は、OOTB (Out-Of-The-Box) インスタンスで 500 に設定されている Qualys データインポートのページネーションに使用されます。この値を調整することで、一度にインポートできる Qualys レコードの数を制御できます。システムが過負荷になっている場合はこの値を減らし、パフォーマンスを向上させるために再度慎重に値を増やしてください。以下の手順で変更できます。 a.メニューから Qualys Vulnerability Integration > Integration インスタンス へ移動します。 b. Qualys レコードを開き、[Integration Instance Parameters] タブへ移動します。 c.「truncation_limit」の値を変更します。 詳細については、以下のスクリーンショットを参照してください。 6.Qualys 添付ファイルの評価時間の増加 Qualys インポート中に、脆弱性データは実際には Qualys サーバーから取得され、XML 添付ファイルとしてテーブル sn_vul_ds_import_q_entryに保存されます。LIST。 添付ファイルの評価時間は、デフォルトで 3600 秒 (60 分) に設定されています。スクリプトインクルード「VulnerabilityDSAttachmentManager」。処理に問題が発生した場合、処理時間を超えると、「sn_vul_ds_import_q_entry」レコードの「処理メモ」欄に以下のようなエラーが出力されます。 エラー:「ジョブが処理時間を超過し、ステータスを完了させられました」 この場合、大量の Qualys データを処理するために、以下の手順に従って評価時間を長くすることができます。 a.インスタンスで以下のスクリプトインクルードを開きます (URL のインスタンス名に置き換えます) https://<instance_name>.service-now.com/nav_to.do?uri=sys_script_include.do?sys_id=aa1b81669f31020034c6b6a0942e7014 b. デフォルトのハードコード制限である 3600 秒を増やす (可変 _MAX_PROC_TIME_S:3600) この設定については、以下のスクリーンショットを参照してください。 スクリプトインクルード「VulnerabilityDSAttachmentManager」のタイムアウト値を変更した後に、別のスクリプトインクルード「VulnerabilityIntegrationUtils」の同じ値も変更する必要があります。以下のスクリーンショットを参照してください。 Qualys ナレッジベース統合ジョブ Qualys ナレッジベース統合ジョブは KB データのみを取得するため、データ量は比較的少なくなります。ただし、顧客の使用状況が原因でパフォーマンスの問題が発生する可能性があります。たとえば、一部の顧客は、Qualys サーバーから 10 年から 20 年以上の KB データを取得すると、ペイロード添付ファイルが非常に大きくなり、メモリの問題が発生する場合があります。 ServiceNow では、Qualys 統合インスタンスページに「max_delta_days」パラメーターが導入されています。以下のスクリーンショットを参照してください。デフォルト値は 365 で、ジョブが最大 365 日分のデータを取得できることを意味します。Qualys から大量の KB データを取得する場合、ユーザーはこの数を 6 か月 (184 日) に減らしてペイロードファイルサイズを小さくし、各要求のメモリの問題を回避できます。ジョブは、前回の実行が完了すると、ジョブを実行して次の 6 か月のデータを取得する開始日時を 6 か月後の日付に自動的に設定します。