zabbixのWindowsイベントログ監視で特定時間帯のトリガーを無効にする方法
お世話になります。
Zabbix 2.2.10 を使用して、監視を行っておりますが、
特定の日時(日曜日 5:00-6:00)に発生する
Windowsイベントログ監視のトリガーを抑止したいのですが、
うまく動かない状況です。
-----------------------------
・条件
検知対象:Windows applicationログ
深刻度:Warning
ソース:sys_test
除外日時:日曜日 5:0-6:00
設定してみたトリガー条件式
1.
({host:eventlog[application,,Warning,^sys_test$].logseverity()}=2) & ({host:eventlog[application,,Warning,^sys_test$].dayofweek(0)}=7 <060000 >050000)=0
-----------------------------
上記設定を行うと、時間外に発生した際30秒おきにトリガー発動しメールが飛んでしまいます。
除外が可能な設定方法をご教授いただけますでしょうか
lilith relic - 投稿数: 15
メールを送信するアクションにメンテナンス「期間外」を設定し、
メンテナンス機能から該当の監視対象ホストを毎週日曜日の05:00~06:00をメンテナンス状態にするとかでは駄目なのでしょうか?
syaraku - 投稿数: 6
その方法でもよいですね。
トリガーが複数あり、メール送信アクションが一つだけの設定なので、
煩雑にしたくないということもあり、トリガー設定側で抑止できればと
考えているのですが難しいでしょうか。
lilith relic - 投稿数: 15
個人的にはアクションの実行条件で調整する方なのでメンテナンスを提示しましたが、
トリガーだけでやるとなると・・・
dayofweek(0)}=7 <060000 >050000)=0
dayofweekはそもそも「1~7までの範囲で曜日を返します。月曜 - 1、日曜 - 7 」なので、
time 「現在の時刻をHHMMSS形式で返します。例:123055 」を使用する必要が有るような気がします。
.logseverity()}=2 &
( dayofweek()=7 & time()>050000 & time()<060000 )=0
省略しすぎですが上記のような感じになるのでは・・・
yk_taiko - 投稿数: 184
30秒おきに飛ぶのは、
時間に関する関数(今回ですと dayofweek) を使っているため
毎分0秒と30秒に判定されているからだと思います。
nodata(30)=0 も & でつなげば、判定時に 30 秒以内にデータがなければ
通知されなくなるかと思います。
syaraku - 投稿数: 6
下記設定で検証を行ってみました。
({host:eventlog[application,,Warning,^sys_test$].logseverity()}=2) & ({host:eventlog[application,,Warning,^sys_test$].dayofweek()}=3 >050000 <060000)=0 & ({host:eventlog[application,,Warning,^sys_test$].nodata(30)}=0)
結果として、
設定時間内の障害メールは発砲されませんが、
時間外の障害情報で、障害メール発砲後の30秒後にOKメールが発砲されてしまいました。
その後、メールは飛びませんが、ステータスは正常となってしまうこともあり、
やはり制御は難しいでしょうか。
yk_taiko - 投稿数: 184
正常(リカバリ?)のメールを飛ぶようにしている場合、時間系の関数(dayofweek や nodata)を使ったら絶対に飛んでしまう気がします。
時間系の関数を使っているトリガーについては OK のメールが飛ばないよう、アクションを分けるなどされてはいかがでしょうか。