アラートグループ化のための複数のスケジュール済みジョブの実行

  • リリースバージョン: Australia
  • 更新日 2026年06月17日
  • 所要時間:6分
  • 複数のスケジュール済みジョブを並行して実行して、アラートをグループ化します。これにより、急増 (アラートストーム) 時にシステムが過負荷になるのを防ぐことができます。

    始める前に

    必要なロール:admin

    このタスクについて

    現在のスケジュール済みジョブは、シングルスレッドで動作します。アラートの急増 (アラートストーム) 時には、処理にかなりの時間がかかります。この影響に対処するために、複数のジョブがスケジュール済みジョブ内でアラートを処理できるようになりました。これにより、拡張性が向上し、大量の処理が発生する期間の全体的なパフォーマンスが向上します。

    アラート処理で実行するジョブの数は、新しいプロパティ sa_analytics.agg.alert_grouping.num_of_jobs で定義されます。ジョブ番号は、関連するメソッドにパラメーターとして送信されます。

    注:
    このシナリオでは、スケールアウトをスケールアウトなし (単一ジョブ) から 2 つのジョブに増やす手順を示します。
    複数のスケジュール済みジョブを効率的に管理して並列実行し、特定のプロパティを使用してアラートをグループ化できます。これらのプロパティを使用すると、ニーズに合わせてグループ化クライテリアを調整し、アサイン先グループ、ドメインセパレーション、またはグループ化フィールドに基づいてアラートが確実に処理されるようにすることができます。使用可能なプロパティは次のとおりです。
    • sa_analytics.agg.group_alert_with_same_assignment_group_only:同じアサイン先グループを共有するアラートをグループ化します。デフォルトでは、値は false に設定されています。このプロパティを true に設定する場合は、同じ名前のプロパティを作成し、値を true に設定します。
    • sa_analytics.agg.group_alert_with_same_domain_only:同じドメインに属するアラートをグループ化します。デフォルトでは、この値は true に設定されています。
    • sa_analytics.agg.group_alert_with_same_group_by_fields:[グループ化 (Group by)] プロパティ。アラートのグループ化を可能にするために、アラート間で一致する値を持つ必要があるフィールド名のカンマ区切りリストを使用します。プロパティには、アラートフィールド名 (assignment_group など)、CI フィールド名 (alert_cmdb_ci.location など)、アラート追加情報フィールド名 (additional_info.state など)、またはアラートタグ (t_data_center など) を含めることができます。指定されたフィールド値がアラート間で互いに一致する場合、それらのアラートをグループ化できます。
    注:
    効率的なスケールアウトを確実に行うには、これらのプロパティの少なくとも 1 つを定義して、何らかの形式の分離またはグループ化ロジックを確立する必要があります。これは、同じグループに属するすべてのアラートが特定のジョブによって正しく処理され、アラートの論理的な区分が作成されるようにするために必要です。

    これらのプロパティの少なくとも 1 つを true に設定しないと、アラートは適切に分離されません。たとえば、グループ化ロジックを定義せず (任意のプロパティを true に設定)、アサイン先グループとドメインセパレーションの両方が false に設定されている場合、スケールアウトは機能せず、すべてのアラートが単一のスケジュール済みジョブによって処理されます。

    手順

    1. 移動先 すべて > システム定義 > スケジュール済みジョブ.
    2. スケジュール済みジョブ [RCA/アラートアグリゲーションを使用したサービス分析グループアラート (Service Analytics group alerts using RCA/Alert Aggregation)] を検索します。
    3. 既存のスケジュール済みジョブ [RCA/アラートアグリゲーションを使用したサービス分析グループアラート (Service Analytics group alerts using RCA/Alert Aggregation)] のすべてについて、[アクティブ] 列の値を false に設定します。
      図 : 1. スケジュール済みジョブの非アクティブ化
      スケジュール済みジョブの非アクティブ化
    4. 新しいプロパティ sa_analytics.agg.alert_grouping.num_of_jobs を作成します。既に存在する場合は、アラートグループ化に必要な複数のスケジュール済みジョブの数 (2 や 4 など) にプロパティを更新します。
    5. スケジュール済みジョブ [sys_auto] テーブルのスケジュール済みジョブ定義を、アラートグループ化に必要な複数のスケジュール済みジョブの数だけクローンします。
    6. 新しいジョブの [このスクリプトを実行] セクションで、新しい JS 関数 queryS0 を (古い query() 関数の代わりに) 呼び出し、ジョブ番号を入力パラメーターとしてその関数に転送します。
      注:
      ジョブ番号は 0 から始まり、0、1、2、3、4... のように連続する必要があります。
    7. [sa_analytics_status] および [sa_hash] テーブルのハッシュを修正するには、同じプレフィックスを持つ最も古いハッシュを選択してクローンし、ハッシュ名のサフィックス (「_groupingX」 (X はジョブ番号) など) を追加します。
      スケールアウトなし (1 つのジョブ) から 2 つのジョブにスケールアウトし、ハッシュ名 last_alert_process_time の場合は、last_alert_process_time と同じ値を維持するようにクローンします。
      • last_alert_process_time_grouping0
      • last_alert_process_time_grouping1
      スケールアウトなし (1 つのジョブ) から 4 つのジョブにスケールアウトし、ハッシュ名 last_alert_process_time の場合は、last_alert_process_time と同じ値を維持するようにクローンします。
      • last_alert_process_time_grouping0
      • last_alert_process_time_grouping1
      • last_alert_process_time_grouping2
      • last_alert_process_time_grouping3
      表 : 1. クローンするハッシュ
      ハッシュ名 テーブル
      query_job_last_run sa_hash
      last_alert_process_time sa_analytics_status
      last_staging_table_update_time sa_analytics_status
      last_staging_table_truncate_time sa_analytics_status
      analytics_trigger_g1 sa_hash
    8. 各ジョブの [アクティブ] チェックボックスをオンにして、新しいジョブをアクティブ化します。
      図 : 2. スケジュール済みジョブのアクティブ化
      スケジュール済みジョブのアクティブ化

    タスクの結果

    スケジュール済みジョブ [RCA/アラートアグリゲーションを使用したサービス分析グループアラート (Service Analytics group alerts using RCA/Alert Aggregation)] が、アラートのグループ化のために複数のジョブを同時に実行するように設定されます。