お世話になっております。
ログ監視で検知したメッセージのクローズを一定秒数後に自動で行いたいと考えております。
nodata()は一定時間メッセージの検知が無ければ自動クローズされると調べたのですが、
追加のメッセージ検知に関わらずメッセージをクローズしてしまいたいです。
now()やtime()では、現在の時刻が取得できますが、障害メッセージが発生した時刻との比較が出来ないように思います。
何か良い方法がありましたらご教授いただけますと幸いです。
==========
OS:RHEL7.6
zabbix:4.4
==========
TNK - 投稿数: 4731
現在どのようなトリガーを設定されているのか、可能な範囲で情報
をご提供ください。
ama - 投稿数: 76
TNK様
以下が現在設定しているトリガーとなります。
=============================================
障害の条件式:{test001:log[/var/log/messages,,,,skip].regexp(test)}=1
正常イベントの生成:条件式
障害イベント生成モード:複数
正常時のイベントクローズ:すべての障害
=============================================
トリガーで検知した障害メッセージをアクション機能を使用して、上位監視サーバへ転送しています。
障害メッセージは、アクションが実行されてしまえば不要となるため、一定秒数後に自動クローズするような
仕組みを実装できればと考えております。
TNK - 投稿数: 4731
一例です。
アイテムで正規表現を指定していれば、以下のような設定が考えら
れます。
条件式:{test001:log[/var/log/messages,"test",,,skip].regexp("test",300)}=1
正常イベントの生成:復旧条件式
復旧条件式:{test001:log[/var/log/messages,"test",,,skip].nodata(300)}=1
障害イベント生成モード:複数
正常時のイベントクローズ:すべての障害
この設定で、ログが出力されなければ5分後に自動的にトリガーの
状態は正常に戻ると思います。
regexp()に第2引数を設定し、同じ値(時間)をnodata()の引数とし
た復旧条件式を組み合わせる方法で、この設定例では300秒(5分)間、
ログが出力されなければ、トリガーが自動的に正常に戻ります。
これは、昨年のZabbixカンファレンスで発表された資料内で紹介さ
れていたものです。
ご参考:「サポート最新動向」 P.13参照
https://www.zabbix.com/jp/events/conference_japan_2020_agenda#day2_1200
アイテムで正規表現を指定しなかった場合は、ログに何らかの出力
がされ続けるとトリガーの状態が正常に戻らないのと、それ以外の
問題がないか確認が必要です。
ama - 投稿数: 76
TNK様
ご回答ありがとうございます。
上記内容を参考にさせていただき、検証を実施しようと思います。