システムリストア時にイベントログの再読み込みが発生して大量のアラートが発生される
Zabbix 3.0.7
イベントログを監視しているWindows Serverのメンテナンスを実施していましたが、
上手くいかなかったため、作業前の状態にシステムリストアを実施しました。
すると数か月前~現在までのイベントログが再度最新データとして追加(再読み込みが発生して)され、
大量のアラートメールが通知されました。
色々調べているとおそらくシステムリストア時にイベントログのファイルサイズが小さくなったため、
イベントログの再読み込みが発生したのだと思っています。(原因が異なる場合はご指摘いただけますと幸いです)
http://www.oss-kanri.org/siryou/study2_MLmiyashita.pdf
そこで、本事象を解決するために、以下どちらかの設定を実施することは可能でしょうか。
1.アイテムの設定:イベントログの再読み込み発生を防ぐ方法
2.トリガーの設定:過去に発生したイベントログは障害として検知しない(無視する)
====================================
アイテム
eventlog[System,,"Error"]
eventlog[System,,"Warning"]
トリガー
{ホスト名:eventlog[System,,"Error"].strlen()}>0
{ホスト名:eventlog[System,,"Warning"].strlen()}>0
====================================
また、上記の解決方法が難しい場合、以下の設定を行うことは可能でしょうか。
・単位時間あたりに送信できるアラートメールの上限を設ける。
(本事象は15分の間に数万件のアラートメールが送信されメールサーバの障害に繋がったため)
お手数をお掛けしますが、よろしくお願い致します。
Yasumi - 投稿数: 380
Zabbixサーバのバージョンがかなり古いですね。
最新のZabbixでは、ログファイルの読み込み処理にも変更があるのでバージョンアップをぜひご検討ください。
その上で、現時点でできる対応を記載します。
①アイテム設定
イベントログのアイテムにskip処理を追加してください。
eventlog[System,,"Error",,,,skip]
eventlog[System,,"Warning",,,,skip]
②トリガー設定
大量検知を抑制したいのであれば、nodataを検討すると良いでしょう。
※nodata…(秒数)の間、データno=無しになるまでトリガーを「障害」ステータスにさせ続ける処理
(秒数)間、同じトリガーを発生させない処理と=になる。
nodataの扱いは非常に難しい面がありますので、事前検証を念入りに行うことをおすすめします。
{ホスト名:eventlog[System,,"Error"].strlen()}>0 and {ホスト名:eventlog[System,,"Error"].strlen()}.nodata(900)}=0
{ホスト名:eventlog[System,,"Warning"].strlen()}>0 and {ホスト名:eventlog[System,,"Error"].strlen()}.nodata(900)}=0
※障害イベント生成モード:単一
kenya - 投稿数: 13
ご回答いただき、ありがとうございます。
本来でしたら、バージョンアップ後の読み込み処理の挙動を確認して、
バージョンアップで対応すべきなのですが、設定変更で対応したいと思っています。
そこで、ご提案いただきました以下の方法で対応したいと考えておりますが、
1つskip処理の挙動についてご存知でしたら教えていただけますでしょうか。
>①アイテム設定
>イベントログのアイテムにskip処理を追加する
イベントログのパラメータとして、modeをデフォルトのallからskipに変更すると思いますが、
allとsikipのパラメータの挙動は以下のようになると思います。
=====
イベントログの初回読み込み時の動作を変更【all (先頭から読み込む)、skip(末尾から読み込む)】
※書籍「Zabbix統合監視 実践入門」改訂3版 520ページより参照
=====
この場合、skipの処理はイベントログの初回読み込み時のみで、
例えばアイテムを有効にしてから1年程度経過しているサーバについては
システムリストアした際にはログサイズの減少を検知して再度読み込み処理が
発生してしまうのでしょうか。
TNK - 投稿数: 4720
skipが有効なのは、アイテムを新規に作成した時のみです。
アイテムが設定されたまま、ファイルサイズが小さくなってしまう
と、再読み込みが発生してしまうと思います。
Yasumiさんが書かれている通り、メンテナンス期間の設定を行って、
メンテナンス中はアクションを実行しないようにすると良いのでは
ないでしょうか?
Yasumi - 投稿数: 380
>kenyaさん
skipの処理ですが、監視対象側にどのような対応をするかにもよると思います。
リストアをすると、打ちどころが悪ければ、すべて読み込み処理をすることもあると思います。
なので、そもそもリストアのような作業をする際には、
ホストを一時メンテナンスモードや無効化にしておくのがベストだと思います。
kenya - 投稿数: 13
>Yasumi様、TNK様
Skip処理の挙動につきまして承知いたしました。
なんとか設定変更で再発防止を実施しようと思っていましたが、難しそうですね。
リストア作業をする前にはメンテナンスモードあるいはトリガーやホストの無効化を実施するよう
運用手順を見直すことにしたいと思います。
ご回答いただき、ありがとうございました。