アクションで送信するメール中にログを出力させたい
お世話になっております。
ログの監視設定を現在勉強中です。
やりたいこと:
アクションで送信されるメールの中に、
ログファイルの本文を挿入したい。
・現在、ログファイルを監視させています。
・ログファイルに「ERROR」という文字列が
あった場合、トリガーが起動するところまでは
できています。
・トリガーに対して、メールを送るというアクション
も定義してあって、
{TRRIGER}:{STATUS}
はメールで送れるようになっています。
それに加えて、検出したログの本文もメールに
挿入したいのですが、どのようにすればよろしいでしょうか?
[例]
あるログが、「YYYY/MM/DD HH:MM SS ERROR:(AAAAAAAA)」
という文字列を吐き出した場合、アクションで送信される
メールに
YYYY/MM/DD HH:MM SS ERROR:(AAAAAAAA)
という行を出力させたい。
よろしくお願いします。
kodai - 投稿数: 1341
メール本文にログを挿入する設定は行ったことがない&今すぐに試せる時間が取れないのですが、アクションのメッセージの設定に、{ITEM.VALUE}を設定するとどうなるでしょう?
hiroshi - 投稿数: 12
お世話になります。
設定したところ、
{ITEM.VALUE}
という文字がそのまま出ました。。。。
ログの出力部分をメールで送る、というニーズは
あまりないのでしょうか・・・?
kodai - 投稿数: 1341
失礼しました、確認したところ{ITEM.VALUE}はトリガー名にのみ利用できるマクロでした。
{ITEM.LASTVALUE}を使用してみるとどうなるでしょう?
メール文面やトリガー名に利用できるマクロの情報は開発元マニュアルの78ページに記載されていますので、参考にしてみてください。
hiroshi - 投稿数: 12
表示できました。ありがとうございます。
こちらも、今後参照させていただきます。
今回、やりたかったことが実現できましたので、
全体をサマリとして載せます。
こういった「事例集」みたいなのが、今後増えていくと
いいですね。
(「テンプレートがあるじゃないか」という意見もあるでしょうが。。。)
[前提条件]
/var/log/example.log には、あるアプリケーションで
エラーが発生したときに行が追記される。
しかし、ログには、「ERROR」などの共通なキーワードが
ないため、log[file].str(ERROR)などで抽出ができない。
[やりたいこと]
上記ログに対する追記が発生したとき、zabbixで検知し、
ログの追記分をメールの本文に挿入して送信する。
(送信先はzabbixに登録されているユーザーとする)
[設定したこと]
1.アイテムの設定
(1)vfs.file.size[/var/log/example.log]
(2)log[/var/log/example.log]
の2つをアイテムとして登録する。
2.トリガーの設定
アイテム 1-(1)に対して、トリガー
{targethost:vfs.file.size[/var/log/autolog/example.log].diff(0)} > 0
を「example.log appended]として設定する。
これにより、追記されたときにトリガーで検知できる。
3.アクションの設定
(1)Conditions
(A)トリガー = "example.log appended"
(B)Trigger value = "障害"
とする。
(2)Type of calculation
(A) and (B)
とする。
(3)Operations
メールを送信するように設定する。
そのとき、本文に
{targethost:log[/var/log/example.log].last(0)}
を入れておくと、送信時に、ログの追記分に置き換えられる。
[現状、まだできていないこと]
メールの本文に
{targethost:log[/var/log/example.log].last(0)}
で挿入しているため、最後の1件しか挿入できない。
N行追記されていた場合、N行をメールに挿入する
方法がまだわかっていない。
今のところ、こんな感じです。