アラートメール内の日付表示について

いつもお世話になっております。

アラートメール内の日付表示について質問があります。

現在、トリガーのアクションにて障害検知したアイテムのアラートメール通報を行っております。
既存のシステムにメールの中身を見て連携するRedmineのようなチケット管理システムがあり、
マクロの{ITEM.KEY}や{DATE}などを利用してエラー内容や発生日時をメール本文にいれています。
ただ、メール連携しているシステムが対応できる日付のフォーマットがYYYY/MM/DDとなっており
zabbix内で利用できる(標準)マクロの{DATE}ではフォーマットが YYYY.MM.DD になってしまいます。

メール本文内にエラー発生日時を YYYY/MM/DD のフォーマット でいれたいのですが、
別マクロや何らかの方法で実現することは可能でしょうか?
また、上記が不可能の場合、リモートコマンドでカスタムスクリプトによるメール送信などを
検討することになると思うのですが、エラー内容等を渡すことは可能でしょうか?
(試しにカスタムスクリプトを実行してみて環境変数や引数を確認したのですが、見当たりませんでした)

zabbixバージョン:2.2.2

ご存知の方がいらっしゃればご教授いただけると幸いです。

コメント表示オプション

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

すぐにYYYY/MM/DDのフォーマットでいれる方法が思いつかなかった
ので、スクリプトを利用した場合の方法を書かせていただきます。

メール送信であれば、日本語アラートメールの送信方法をご参照く
ださい。
http://www.zabbix.jp/node/1441

スクリプトの内容を確認していただければご理解いただけると思い
ますが、メディアとして登録したスクリプトは、アクションのメッ
セージの送信を利用して呼び出したときに、

 ・宛先のメールアドレス
 ・件名
 ・本文

が引数としてスクリプトが呼び出されることになります。
https://www.zabbix.com/documentation/2.2/manual/config/notifications/med...

本文を加工してもよいでしょうし、スクリプトで日付を取得するよう
な方法でもよいと思います。

ユーザー KAZ の写真

ststakeさん


メール本文内にエラー発生日時を YYYY/MM/DD のフォーマット でいれたいのですが、
別マクロや何らかの方法で実現することは可能でしょうか?

Zabbix2.2.2のソースでは日付の変換は以下でやってます。
なので、yyyy.mm.dd固定ですね。

/Users/kazuo/Desktop/Zabbix/zabbix-2.2.2/src/libs/zbxcommon/str.c

char *zbx_date2str(time_t date)
{
static char buffer[11];
struct tm *tm;

tm = localtime(&date);
zbx_snprintf(buffer, sizeof(buffer), "%.4d.%.2d.%.2d",
tm->tm_year + 1900,
tm->tm_mon + 1,
tm->tm_mday);

return buffer;
}


また、上記が不可能の場合、リモートコマンドでカスタムスクリプトによるメール送信などを
検討することになると思うのですが、エラー内容等を渡すことは可能でしょうか?
(試しにカスタムスクリプトを実行してみて環境変数や引数を確認したのですが、見当たりませんでした)

sendmessage_smtp_php.shを改造して、日付変換するシェルを組んでみてはどうでしょう?A(^^;

sendmessage_smtp_php.shは当サイトの[HOME]、左側メニューの[ダウンロード]から入手できます。

設定方法は以下を参考にしてください
http://www.zabbix.jp/book/export/html/1441
http://www.zabbix.jp/node/1479

変数$MAIL_MESSAGEにメール本文の内容が入ってきますので、キーワードや正規表現で日付を検索して置換すればよいかと。

ユーザー ststake の写真

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

教えていただいた"メール送信としてスクリプトを呼び出す方法"で YYYY/MM/DD
フォーマットでメール送信できることを確認しました。

定型メッセージを利用しない場合は、リモートコマンドでやるしかないと
思い込んでました。。

早々に返信していただきありがとうございました。

ユーザー ststake の写真

>>KAZさん

ソースの部分まで教えていただき、丁寧な回答ありがとうございます。
無事にフォーマット変換できました。

> sendmessage_smtp_php.shを改造して、日付変換するシェルを組んでみてはどうでしょう?A(^^;

はい、勉強がてらにPHPでやってみたいと思います。