ログ監視機能について(検知→復旧の連携方法)
初めましてZETTONと申します。
現在ZABBIX導入検討をしており、
当フォーラムの情報を大変参考にさせて頂いております。
ログ監視機能の検証を行っており下記事象に困っています。
解決方法がありましたらご教授願います。
■事象
トリガーで設定した文字列がログに出現するとステータスが障害となるが、
設定文字列以外の文字が出現すると即時ステータスが復旧となってしまう。
【質問】
下記動作をさせたいのですが実現方法はありますでしょうか?
(1)一定期間経過後に復旧とする。
例えば、30分間トリガー文字が出現しなければ、ステータスを復旧とする。
(2)”復旧トリガー文字列”出現によって、障害を復旧ステータスに変更する。
例えば、下記(a)検知により障害ステータスになり、(b)検知で復旧ステータスにしたい。
(a)トリガー文字列 :”SERVERA Service_Down”
(b)復旧トリガー文字:”SERVERA Service_Up”
■参考までに利用環境は以下となります
○Zabbixサーバ
【OS】Red Hat Enterprise Linux Server release 5.4 (Tikanga)
【Zabbixバージョン】v1.9.4
【インストール方法】ソースからコンパイル
○Zabbixエージェント
【OS】Red Hat Enterprise Linux Server release 5.3 (Tikanga)
【Zabbixバージョン】v1.9.4
【インストール方法】ソースからコンパイル
よろしくお願いします。
TNK - 投稿数: 4731
トリガーの条件式にnodata()を利用されてみてはいかがでしょうか。
例えば、log[]を利用して/var/log/test.logファイル内の「SERVERA
Service_Down」という文字列を監視している場合ですと以下のように
条件式を書けばよいと思います。
<code>
({サーバ名:log[/var/log/test.log].nodata(1800)}=0)&
({サーバ名:log[/var/log/test.log].str(SERVERA Service_Down)}=1)
</code>
※見やすくするため改行を入れています。
ただし、この場合ですと、常に何らかのログが出力されている場合
には、nodata()の条件に当てはまらずに長時間障害のままとなる可
能性があります。
ログファイルの中でも「Service_Down」と「Service_Up」だけを見
ればよいのであれば、アイテム取得時からパターンを指定してトリ
ガーで判断するものをフィルタリングし、以下のようにすることで
多少は改善するかもしれません。
<code>
({サーバ名:log[/var/log/test.log,Service].nodata(1800)}=0)&
({サーバ名:log[/var/log/test.log,Service].str(SERVERA Service_Down)}=1)
</code>
※見やすくするため改行を入れています。
以下のようなトリガーの条件式はいかがでしょうか?
<code>
({サーバ名:log[/var/log/test.log].str(SERVERA Service_Down)}=1)|
(({TRIGGER.VALUE}=1)&({サーバ名:log[/var/log/test.log].str(SERVERA Service_Up)}=0))
</code>
※見やすくするため改行を入れています。
簡単に説明すると、ログに「SERVERA Service_Down」があったら障
害発生とみなし、障害発生中に「SERVERA Service_Up」以外が出力
されたのなら障害のままとみなす、といった感じです。
ご要望を満たせているかわかりませんが、ご確認下さい。
ZETTON - 投稿数: 5
TNKさん。ご回答ありがとうございます。
ご提案頂いたトリガー(若干変更しましたが)にて検証を行った結果、(1)(2)共に目的を達成出来ましたのでご報告いたします。
(1)一定期間経過後に復旧とする。
例えば、30分間トリガー文字が出現しなければ、ステータスを復旧とする。
【検証での設定値】
({サーバ名:log[/var/log/test.log,"SERVERA Service_Down"].nodata(180)}=0)&
({サーバ名:log[/var/log/test.log,"SERVERA Service_Down"].str(SERVERA Service_Down)}=1)
結果、アイテム指定でのフィルタリングパターンにトリガー設定と同様の文字列を設定することで
意図した動作を確認できました。
(2)”復旧トリガー文字列”出現によって、障害を復旧ステータスに変更する。
トリガー設定にて「ノーマル + 障害イベントを継続して生成」にチェックが入っていたため、
障害検知中に復旧トリガー文字列以外の文字列が出力されるたびにメールが発報していましたが
チェックを外すことで意図した動作を確認することができました。
以上から全ての条件が満たせることが確認できました。
大変参考になるご回答誠にありがとうございました。