最初に
データ分析基盤である Splunk のアラート抑制方法を説明します。
- Splunk Enterprise での検証結果です
- Splunk のアラートについての説明は割愛します
TL;DR
- 同じアラートを一定時間抑制できる
- 特定フィールドの値が同じイベント、についてのアラートも抑制できる
このページで話すこと
Splunk には便利なアラート機能があります。
ただ、対応が遅れたり夜間休日だと、同じようなアラートが何度も鳴り続けます。
Splunk にはこの対策として、
同じアラートを抑制する方法が二種類あります。
検証環境
- Splunk Enterprise バージョン9
- クライアントPC: Windows11
- ブラウザ: Google Chrome でサーチヘッドを使用
※テキスト上のサンプル画像は、docker の splunk/splunk
image より作成
アラート抑制について
同じアラートの抑制
-
アラート設定の生成条件を以下のようにする
- 生成条件: 1回
- 抑制: チェックを入れる
- 次に対する生成を抑制: 抑制したい時間
-
抑制の仕様
- 同じアラートについては、次回以降の通知で抑制される
- 「次に対する生成を抑制」の時間が経過すると、再通知されるようになる
- 例: 抑制期間が1時間なら、1時間後の通知までが抑制され、それ以降の通知は通知されるようになる
- ただ、この判定は少し微妙で、1時間後でも通知されたり、されなかったりする
特定フィールドでの抑制
-
アラート設定の生成条件を以下のようにする
- 生成条件: 各結果に対して
- 抑制: チェックを入れる
-
フィールド値を含む結果を抑制: 抑制したい値を含むフィールド
- 例:
user_id
フィールドが同じIDの通知を抑制したいのなら、user_id
を指定
- 例:
- 次に対する生成を抑制: 抑制したい時間
-
抑制の仕様
- 同じフィールド値を持つイベントについては、次回以降の通知で抑制される
- 前回と異なるフィールド値を持つイベントについては、次回以降の通知で通知される
- 「次に対する生成を抑制」の時間が経過すると、再通知されるようになる
-
備考
- 生成条件が 結果数、カスタム の場合のみ検証
- おそらく ホスト数、ソース数 でも機能するはず
抑制がリセットされるタイミング
- 「抑制」のチェックをオフにすると、抑制期間がリセットされる
- 再度オンにすると、次の通知を1回目として抑制が再開される
- 「次に対する生成を抑制」の数字か単位を変えると、抑制期間がリセットされる
- 時間を延ばしてもリセットされる(例: 24時間 を 2時間 に変更)
- ただ、ここの判定は微妙で、リセットされないこともある
抑制期間の変更
- 「次に対する生成を抑制」の数字か単位を変えると、前述の通り、抑制期間がリセットされたうえで、新しい抑制期間が有効になる
- ただ、判定が微妙なので、確実に変更を反映したいのなら以下のようにすると安全
- 一度「抑制」をオフにして保存
- 「次に対する生成を抑制」の内容を変更し、「抑制」をオンにして保存
検証例
「特定フィールドでの抑制」の場合の検証。
通知タイミングを1時間ごと、生成条件を結果数(0より大きい)、抑制フィールドを user_id
、抑制期間を12時間で定義。
- 9:00 に user_id=A が通知閾値を超え、通知を送信
- 10:00 に user_id=A が通知閾値を超えたが、抑制のため通知されない
- 11:00 に user_id=A が通知閾値を超えたが、抑制のため通知されない
-
11:00 に user_id=B が通知閾値を超え、通知を送信
- 異なるIDなので通知される
- 12:00 に user_id=C が通知閾値を超え、通知を送信
- 21:00 に user_id=A が通知閾値を超えたが、抑制のため通知されない
- 抑制期間の終了時刻ちょうどだと、通知されないことがある
-
22:00 に user_id=A が通知閾値を超え、通知を送信
- 抑制期間が過ぎたため、通知が再開された
- 次に user_id=A の通知が実施されるのは、最速で翌日11:00
所感
「特定フィールドでの抑制」が結構優秀です。
実際の業務でも、
同じユーザに関する通知は大体継続して続きます。
ユーザIDなどのフィールドで抑制することで、
アラート対応中(もしくは休暇中)のノイズ軽減に役立っています。