ArcSightの初心者と経験者は、ユースケースにおいてアクティブリストを自動でクリアする必要がある状況に非常に頻繁に直面します。以下のシナリオが考えられます:各ユーザーの今日のログインをリアルタイムでカウントする、または指定された時刻にアクティブリスト内のカウンターをリセットする。ArcSightがまだESMにそのような機能を追加していないのは、説得力のある理由があると信じたいです。
アクティブリストを自動でクリアするために考えられる方法はいくつかあります:
- カスタムスクリプトを使用したssh経由;
- ルールを使用する;
- トレンドを使用する。本日はこのバリアントを説明します。
メインアイデアは、一時リストとルールを通してスケジュールされたトレンドを使用してアクティブリストのエントリを削除することです。
キーのフィールドを持つリストの場合:
- メインアクティブリスト(1)に対してクエリ(1)を作成します。クエリを実行するためにキーのフィールドのみを選択します。
- クエリ(1)を用いて新しいトレンドを作成します。”パーティション保持期間(日数)”パラメータを短く(数日)設定します。そして例えば毎日23:59:00に実行するようにスケジュールします。
- メインアクティブリスト(1)のキーのフィールドに類似したフィールドを持つ一時アクティブリスト(2)を作成します。TTLパラメータを1分に設定します。このリストはメインアクティブリスト(1)からクリアする必要があるエントリ用のバッファとして使用されます。
- ポイント2で作成したトレンドを編集します。アクション‘Add to Active List’を追加し、‘Temporary Active List(2)’を選択。
- 新しいルールを作成し、条件を追加します:
& AND
デバイスイベントクラスID = activelist:104
ファイル名 = Temporary Active List(2)
タイプ = ベース
アクション‘Remove From Active List’を追加し、メインアクティブリスト(1)を選択し、キーのフィールドに沿って‘Device Custom String4’フィールドを選択します。
キーのフィールドが複数ある場合、ローカル変数‘EvaluateVelocityTemplate’を使用して‘Device Custom String4’フィールドのキー値を分割する必要があります。
ルールをリアルタイムにデプロイします。
このトレンドは毎日23:59:00に実行され、メインアクティブリストにあるすべてのエントリを取得し、一時アクティブリストに追加します。一時アクティブリストのすべてのエントリは1分で期限切れとなり、ルールは全てのエントリを捕まえてメインアクティブリストから削除します。したがって、新しい日の始まりには空のアクティブリストを得ることができます。
クリアしたい各アクティブリストに対して新しいトレンドを作成する必要があります。この方法はあまり便利ではありませんが、アクティブリスト自動クリアリングのタスクを解決します。次の投稿では、このような結果を達成するための他の二つの方法を説明します。