zabbixでのログ監視、アラート時のメール送信について
はじめまして
現在、zabbixにて/var/log/mesagesのログ監視と「ERROR」という文字列が入った際のメール送信設定を行っておりますがうまくいかず困っております。
まず、以下に現在の設定を記載いたします。
==========
・zabbixバージョン
Zabbix Agent (daemon) v1.8.3 (revision 13928) (16 August 2010)
・アイテム設定
log[/var/log/messages,,,60]
・トリガー設定(Defaultはテンプレート名)
(({Default:log[/var/log/messages].iregexp(error)})=1)
・アクション設定
{DATE}.{TIME}
{HOSTNAME}:{TRIGGER.NAME}: {STATUS}
{ITEM.LASTVALUE}
ERROR in /var/log/messages
==========
■実施したいこと
1.「error」という文字列が出た際に、アラートメールを送信する。そのメールの内容に「error」が出た行を埋め込む。
2.一度検知した「error」という文字列が含まれる行については再度メールは送らない。
おそらくzabbixの機能としては出来ると思うのですが。。。
■現在の状態
1分間隔で監視しているのですが、1度に60行見てそのなかの「error」というメッセージを検知します。が、アラートメールの中には60行とってきた一番最新の行が埋め込まれてしまいます。ではなくて、「error」という文字列が入った行をメールに入れたいのです。
また、60行の中に以前に見た「error」がある場合は再度メールを送信してしまいます。
こちらのフォーラムや書籍などで調べて現在の設定にしたのですがうまくいきません。
こういった際の対応をどなたか教えていただきたいです。
kodai - 投稿数: 1341
アクションに利用するマクロとして、{ITEM.LASTVALUE}ではなく{ITEM.VALUE}を利用してみてはいかがでしょう?
Zabbixはzabbix_server.confのSenderFrequencyに設定された間隔(デフォルト)でアクションを実行するため、{ITEM.LASTVALUE}を使用した場合は「アクション実行時の最新のヒストリデータ」をメールに記載することになり、ログ監視の場合はずれが発生することがあります。
mori - 投稿数: 20
回答頂きありがとう御座います。
ITEM.VALUEに変更しましたが、以下のようになってメールが飛んできます。
・エラーメール内容
2010.10.14.19:06:03
log monitor: PROBLEM
Oct 11 22:21:19 ****** xinetd[2483]: START: nrpe pid=2084 from=*******
・リカバリメール内容
2010.10.14.19:06:03
log monitor: OK
Oct 11 22:20:22 ****** xinetd[2483]: START: nrpe pid=2080 from=******
・実際に検知されたと思われるログ
Oct 8 16:02:39 pbx11 nrpe[12969]: Error: Could not complete SSL handshake. 5
エラーメールの内容、リカバリともに「error」という文字列ははいっておりません。
設定が何か間違っているのでしょうか?
kodai - 投稿数: 1341
ログの内容とエラーメールを見て疑問に思ったのですが、
- {DATE}.{TIME}マクロで変換されている日時 (2010.10.14 19:06:03)
- ログ内の記録日時 (Oct 11 22:21:19)
- 検知されたと思われるログの記録日時 (Oct 8 16:02:39)
のそれぞれの日時にかなりずれがあるのですが、監視をして1度に受信したログの中に上記の行が含まれているという認識で合っているでしょうか?
また、ログの監視間隔はどのくらいに設定されているのでしょう?
mori - 投稿数: 20
ありがとうございます。
ご認識のとおり、一番下から100行を取得し、その中に検知した内容やメールの入っている内容があります。最近(というか3日ほど前)から監視を開始し、間隔は1分間隔で監視を行っております。
kodai - 投稿数: 1341
遅くなりました。
1.8.3で試してみましたが、やはりアクションに記載されるメッセージはずれますね。
これはZabbixの仕様上の制限でして、アクションは30秒毎に実行されるようになってるのですが、ログ監視などで30秒の間に複数メッセージを受け取った場合に、障害として検知されたメッセージと、実際にメールに記載される(マクロが展開される)メッセージがずれてしまうことがあります。(というか、一度に複数行を受信するとほぼ確実にずれます)
先日、開発元の人が「その問題は最近対応したよ」と言っていたので1.8系で対応されているのかと思っていたのですが、どうやら2.0系で対応されるようです。
2.0系の開発バージョンである1.9では修正が入っていることを確認できました。
mori - 投稿数: 20
回答頂きありがとうございます。
大変参考になりました。
現在は1.8.3を使用しており、2.0はまだ導入は早いかなと思いますのでメールにログ内容は入れずに、「ERROR」が入っていた事のみを通知します。
ありがとうございました。