ログ監視の検知内容を通知する際、ログの情報が途切れる

はじめまして、fu784と申します。
下記環境にて構築を行っております。
使用OS:CentOS5.5
Zabbix-server:zabbix-server-1.8.4-1
Zabbix-agent:zabbix-agent-1.8.4-1
メールサーバ:postfix-2.7.2-1

現在、Zabbixで監視の仕組みを実装しているのですが、表題の通り
ログ監視の検知内容を通知する際、ログの情報が途切れるという事象が発生しています。

通知されるログの内容は下記通りとなります(見辛くて申し訳ありません)。
---
Jan 12 17:22:49 hogesrv1 VCENTER_ALARM: ID:alarm-1,NAME:ホストの接続とパワー状態,TARGET_NAME:targetsv,ALARMVALUE:メトリックまたは状態の現在の値,TRIGGERINGSUMMARY:状態 = 接続中 および 状態 = パワーオン,OLDSTATUS:

Jan 12 17:22:44 hogesrv1 VCENTER_ALARM: ID:alarm-1,NAME:ホストの接続とパワー状態,TARGET_NAME:targetsv,ALARMVALUE:メトリックまたは状態の現在の値,TRIGGERINGSUMMARY:状態 = 接続中 および 状態 = パワーオン,OLDSTATUS:

Jan 12 17:11:48 hogesrv1 VCENTER_ALARM: ID:alarm-1,NAME:ホストの接続とパワー状態,TARGET_NAME:targetsv,ALARMVALUE:メトリックまたは状態の現在の値,TRIGGERINGSUMMARY:状態 = 接続中 および 状態 = パワーオン,OLDSTATUS:赤,NEWSTATUS:緑
---
本来は3行目のログと同じよう、1,2行目も
OLDSTATUS:赤,NEWSTATUS:緑
で終了しているはずとなります(実機のログファイルで確認済み)。

通知の設定内容は下記通りです。
---
アイテムキー:log[/var/log/test.log]
トリガーキー:({hogesrv1:log[/var/log/test.log].regexp(赤)})#0
通知メッセージ:
{{HOSTNAME}:{TRIGGER.KEY}.last(#1)}

{{HOSTNAME}:{TRIGGER.KEY}.last(#2)}

{{HOSTNAME}:{TRIGGER.KEY}.last(#3)}
---

どうやらlast(#1)、last(#2)のみログが途切れているようなのですが
同じような事象に遭遇されている方はいらっしゃいませんか。
原因、対応策等をご存知の方がいらっしゃいましたらご教示いただけないでしょうか。
よろしくお願い致します。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー kodai の写真

回答が遅くなりました。

Zabbixは収集したデータをhistoryテーブルに保存するようになっているのですが、直近2件のデータについてはより早くアクセスできるようにitemsテーブル(アイテムの設定が保存されているテーブル)に保存されるようになっています。

このitemsテーブルのデータ保存用のカラムがvarchar(255)となっていますので、おそらくこの容量を超えてしまった部分が削られているのだと思います。

回避策としては、コードを軽く見ただけなので実際には試していないのですが、アクションのマクロでlast()関数を利用するときに、以下のようにtimeshiftオプションを指定すると正しく表示されないでしょうか?

<code>{{HOSTNAME}:{TRIGGER.KEY}.last(#1,1)}</code>

ユーザー fu784 の写真

ご返信ありがとうございます。

そのような仕様になっているんですね…
last関数にオプションを付与できることも知りませんでした。
回避策を実際に試したところ、ログ全文が送信されるようになりました!

追加でお尋ねしたいことがあるのですが、timeshiftオプションを設定することで
動きにどのような変化があるのでしょうか。
マニュアル、ドキュメント等に記載があるのでしたら、その情報も
ご教示いただけると大変助かります。

すみませんが、よろしくお願い致します。

ユーザー kodai の写真

timeshiftはその名の通り、時間をずらすオプションです。

例えばlast(1,3600)と設定すると、3600秒前からカウントして最新1つめのデータを返します。

内部の仕様としてはtimeshiftが設定されている場合はitemsテーブルを参照しないようになっていましたので、今回の問題の場合1を設定しておけば事実上弊害はないと思います。

ただし、毎回historyテーブルを見に行きますのでパフォーマンスには多少影響が出るかもしれません。

英語ではありますが本家の1.8のマニュアルにはtimeshiftオプションの記載もありますので、こちらもご参考ください。
http://www.zabbix.com/documentation/1.8/manual/config/triggers

ユーザー fu784 の写真

ご丁寧に説明してくださり、ありがとうございました。
ドキュメントも確認させていただきます。