ログ監視にてトリガーの条件に該当する行をメールで飛ばしたい

ログ監視にてトリガーの条件に該当する行をメールで飛ばしたいです。
(監視文字列を含まない最新行ではなく、監視文字列を含む行だけ取得してメールを飛ばしたいです)

以下スレッドを拝見しましたが、
http://www.zabbix.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=418&forum=6
http://www.zabbix.jp/modules/newbb/viewtopic.php?topic_id=646&forum=6

ITEM.VALUEを利用していますが、トリガーで引っ掛けた行と関係ないログが記載されてる事があります。

やはり皆さんアイテムで
log[/tmp/test.log,error]
と監視文字列(error)を含めて設定しておき、トリガーで
{hostname:log[/tmp/test.log,error].str(error)}=1
というトリガー条件以外を除外するという対処で運用されているのでしょうか。

つきましては、質問が2点ございます。

【質問1】
以下に示す環境にて、アイテムのキーを
log[/var/log/messages]
とだけ設定し、
{hostname:log[/var/log/messages].str(error)}=1
というトリガーにて「error」を含む行だけ取得することは可能でしょうか。

【質問2】
1.8以降のバージョンで上記条件を満たすMacroが実装される予定がありますでしょうか。

■環境
・OS:CentOs 5.5
・zabbixサーバ:1.8.4
・ZABBIX-JPのyumリポジトリを利用してインストールしました
・Zabbix_Server 1台 + Zabbix_Proxy 1台

■アイテム設定
==============================
タイプ:Zabbixエージェント(アクティブ)
キー:log[/var/log/messages]
データ型:ログ
更新間隔:300秒
ステータス:有効
==============================

■トリガー設定
==============================
条件式:{テンプレート名:log[/var/log/messages].nodata(300)}=0 &{テンプレート名:log[/var/log/messages].str(error)}=1
イベント生成:ノーマル
==============================

■アクション設定
==============================
イベントソース:トリガー
デフォルトの件名:{HOSTNAME}:{ITEM.NAME}
デフォルトのメッセージ:{EVENT.DATE} {EVENT.TIME} {HOSTNAME} {ITEM.NAME}:{ITEM.VALUE}
リカバリメッセージ:チェック無し
ステータス:有効
==============================

どなたかアドバイスを頂けると助かります。
よろしくお願い致します。 :-)

コメント表示オプション

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

回答を書き込んだつもりが正しく送信できていなかったようです。。。

【質問1】
以下に示す環境にて、アイテムのキーを
log[/var/log/messages]
とだけ設定し、
{hostname:log[/var/log/messages].str(error)}=1
というトリガーにて「error」を含む行だけ取得することは可能でしょうか。

いまのところ1.8系でログ監視で検知した行を確実にメールに記載する方法はありません。
上記に書かれている通り、{ITEM.VALUE}を利用してもログが多く出力されると
マクロで置き換えられる行が実際に障害を検知した行とは異なる場合があります。

この問題はバグというよりもZabbixの仕様に関わる問題でして、
修正にはかなり根本的なところから見直す必要があります。

完全には対処できないのですが回避方法としては、
アクションのメッセージに以下のように設定を行い直近のログ数行をメールに記載する方法があります。

{{HOSTNAME}:{TRIGGER.KEY}.last(#1)}
{{HOSTNAME}:{TRIGGER.KEY}.last(#2)}
{{HOSTNAME}:{TRIGGER.KEY}.last(#3)}
{{HOSTNAME}:{TRIGGER.KEY}.last(#4)}
{{HOSTNAME}:{TRIGGER.KEY}.last(#5)}

【質問2】
1.8以降のバージョンで上記条件を満たすMacroが実装される予定がありますでしょうか。

時期メジャーバージョンであるZabbix 2.0ではこの問題が解決される予定で、
すでに2.0の開発バージョンである1.9で修正が入っています。

ユーザー Maki の写真

こちらこそレスが遅くなり申し訳ありません。。
ご回答ありがとうございます :-) !

早速ご提示頂いた方法の通り、アクションのメッセージに以下の内容を追記致しました。
{{HOSTNAME}:{TRIGGER.KEY}.last(#1)}
{{HOSTNAME}:{TRIGGER.KEY}.last(#2)}
{{HOSTNAME}:{TRIGGER.KEY}.last(#3)}
{{HOSTNAME}:{TRIGGER.KEY}.last(#4)}
{{HOSTNAME}:{TRIGGER.KEY}.last(#5)}

しかしながら、ログ監視の場合、以下のようなメッセージがメールに表示されてしまいました。
*UNKNOWN*
*UNKNOWN*
*UNKNOWN*
*UNKNOWN*
*UNKNOWN*
データ型がログ以外の監視においては、正常に5つ前の値まで取得できております。
ちなみに、以下のように単体で記載した場合の値の取得は以下の通りで、{TRIGGER.KEY}の取得ができていないようでした。

{HOSTNAME} → 値の取得OK
{TRIGGER.KEY}.last(#1) → 値の取得NG

つきましては、恐れ入りますが、以下の質問についてご確認頂けますでしょうか。

【質問1】
ログ監視にて、他に値を取得できる記述、もしくは方法等ございますでしょうか。
もし、あるようでしたらご教示頂けますでしょうか。

【質問2】
また、質問1の方法等がない場合、ログ監視の結果がzabbixのWEB画面で確認できるよう、URLをメールに記載しようと考えております。
以下の例で示したとおり、URLに含める情報としてアイテムのIDを取得したいのですが、こちらを取得することは可能でしょうか。

例)https://(zabbix_serverの値)/history.php?action=showgraph&itemid=(アイテムのID)

お忙しいところ申し訳ありませんが、ご回答お待ちしております。
よろしくお願い致します。

ユーザー kodai の写真

しかしながら、ログ監視の場合、以下のようなメッセージがメールに表示されてしまいました。
*UNKNOWN*
*UNKNOWN*
*UNKNOWN*
*UNKNOWN*
*UNKNOWN*
データ型がログ以外の監視においては、正常に5つ前の値まで取得できております。
ちなみに、以下のように単体で記載した場合の値の取得は以下の通りで、{TRIGGER.KEY}の取得ができていないようでした。

こちらの問題には合致しないでしょうか?
http://www.zabbix.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=738&forum=2

【質問2】
また、質問1の方法等がない場合、ログ監視の結果がzabbixのWEB画面で確認できるよう、URLをメールに記載しようと考えております。
以下の例で示したとおり、URLに含める情報としてアイテムのIDを取得したいのですが、こちらを取得することは可能でしょうか。

アイテムIDを取得できるマクロはなさそうですね。。。
少し面倒にはなりますが、たとえばトリガーのコメントやURL、ホストプロファイル
にURLを記載しておき、{TRIGGER.COMMENT}や{TRIGGER.URL}、{PROFILE.***}などのマクロを使ってメールにURLを記載することはできると思います。

ユーザー Maki の写真

kodaiさん、ご回答ありがとうございます!

質問1の、メールのメッセージが「*UNKNOWN*」になってしまう件については、ご提示頂いた内容の通りでした。
アイテム取得時にマクロを使用しているため、「*UNKNOWN*」になってしまっていたようで、マクロを外したところ正常に取得することができました。

質問2の件についても、ご回答&アドバイスを頂きありがとうございました。トリガーのコメントやURLを使用するという発想がなかったため、大変参考になりました!ぜひ活用させて頂きたいと考えております。

ご丁寧なご回答ありがとうございました^^!!!