swatch threshold設定のtypeパラメータ
swatchのthreshold設定
swatchでログを監視する場合、同じログが何度も出てくる場合に備えて間引き設定を行うことが多い。
指定時間の間、同じアクションの再実行を抑止するthrottle指定や、アクション実行を行うしきい値を指定するthreshold指定がある。ここではthresholdを使う場合に指定するtypeパラメータの意味について説明する。
以下にswatchのconfigのエントリ例を示す。ssh等による認証失敗のログを見つけたら、アクション(メール送信)を実行する動作を想定している。
swatchのconfig例
watchfor /authentication failure/ mail=foo@dummy.com,subject="Swatch detected authentichation failure" threshold track_by=/authfail/,type=both,count=3,seconds=300
この設定では、しきい値は3、Intervalは300secを指定している。typeにはlimit,threthold,bothが設定できるが、各設定ごとにどのような動作になるかを以下に示す。
◎ limit指定時の動作
secondsで指定したtime intervalの間、最初のcount回だけ毎回アクションを実行。その後はtime intervalが切れるまで無視される。
図1 type=limit指定時の動作(count=3)
◎ threthold指定時の動作
time intervalの間にcount回イベントが発生した時点でアクションを実行。アクション実行後にcountはリセットされるので、time intervalの間にcount*2回のイベントを発生させても再度アクションが実行される。count回ごとにアクションを実行する形式。
図2 type=threthold指定時の動作(count=3)
◎ both指定時の動作
time intervalの間にcount回イベントが発生した時点でアクションを実行。その後はtime intervalが切れるまで無視される。thresholdと違い、アクション実行後にcountはリセットされないので、time_intervalの間に再度アクションが実行されることはない。
図3 type=both指定時の動作(count=3)
以上、manを読んでもtypeパラメータの動作がいまいち分かりづらかったのでメモ。