ログ監視にて指定時間帯に再検知した場合に通知する方法に関して
Zabbixのログ監視について質問です
以下の設定を実施したいのですが、書き方が不明の為ご教授をお願いできればと思います
①/var/log/messagesに1回目のERRORを検知した場合はアクションを実行しない
②15分以内に検知した場合はアクション(メール送信)を実行
③15分以内に検知しない場合は正常ステータスに戻す
下記トリガーを作成したのですが、1回目からアクションを実行されてしまう状況となっており
書き方がわからない為、ご教授をお願いいたします。
{Log_Templates:logrt["/var/log/messages","@messages","sjis",,skip].iregexp(ERROR)}=1&
※変な風に表示されるため、わけておりますが、実際はつながっております。
{Log_Templates:logrt["/var/log/messages","@messages","sjis",,skip].iregexp(ERROR)].nodata(900)}=0
/var/log/messagesに1回目のERRORを検知した際にアクションを実行せずに
15分以内に再検知した場合にアクションを実行する方法は可能なのでしょうか?
fripper - 投稿数: 495
>1回目のERRORを検知した場合はアクションを実行しない
・1回めのエラーログ検知時点で、Zabbix としては「エラーを検知した」としてトリガーにて「障害」ステータス扱いとしたい
でもメール発送等のアクションは実行させたくない
そのうえで2回め以降のログ検知で、初めてアクションを実行させたい
・1回めのエラーログ検知時点ではZabbixとしては「正常」ステータスで良く、
15分以内の時間範囲で2度以上のログ検知があって、初めてトリガーにて「障害」ステータスとした上で
同時にメール発送等のアクションを実行させたい
1度めのログ検知時点で、ダッシュボード等、Web画面上でのステータスを「障害」「正常」のいずれに
しようとお考えなのかによって、アイテムの設定や、トリガーの設定等は変化してくると思います
どちらをお考えでしょうか?
heya - 投稿数: 319
ログが出る
↓
アイテムの値として保存する
↓★
トリガーの判定を行う
この場合、トリガーの判定を行うタイミングでは、900秒以内に、少なくともきっかけとなったログは取得しているはずなので(★はどう考えても900秒より小さい)、 {~nodata(900)} は必ず 0 になります。
fripper さんも書かれた通り、何をしたいかにもよりますが、場合によっては nodata の代わりに count を使うといいかもしれません。
Toshihiko - 投稿数: 2
fripperさん
ご質問の件ですが、1回目のステータスに関しては「障害」にして
15分以内に再度検知をしなければ「正常」にステータスを戻し、再度検知した場合に関しては
障害ステータスとしてアクションを実行する形にしたいと思っております。
なので記載頂きました、内容は下記状態に出来ればと思っております。
・1回めのエラーログ検知時点で、Zabbix としては「エラーを検知した」としてトリガーにて「障害」ステータス扱いとしたい
でもメール発送等のアクションは実行させたくない
そのうえで2回め以降のログ検知で、初めてアクションを実行させたい