アラートメール内の日付表示について
いつもお世話になっております。
アラートメール内の日付表示について質問があります。
現在、トリガーのアクションにて障害検知したアイテムのアラートメール通報を行っております。
既存のシステムにメールの中身を見て連携するRedmineのようなチケット管理システムがあり、
マクロの{ITEM.KEY}や{DATE}などを利用してエラー内容や発生日時をメール本文にいれています。
ただ、メール連携しているシステムが対応できる日付のフォーマットがYYYY/MM/DDとなっており
zabbix内で利用できる(標準)マクロの{DATE}ではフォーマットが YYYY.MM.DD になってしまいます。
メール本文内にエラー発生日時を YYYY/MM/DD のフォーマット でいれたいのですが、
別マクロや何らかの方法で実現することは可能でしょうか?
また、上記が不可能の場合、リモートコマンドでカスタムスクリプトによるメール送信などを
検討することになると思うのですが、エラー内容等を渡すことは可能でしょうか?
(試しにカスタムスクリプトを実行してみて環境変数や引数を確認したのですが、見当たりませんでした)
zabbixバージョン:2.2.2
ご存知の方がいらっしゃればご教授いただけると幸いです。
TNK - 投稿数: 4717
すぐにYYYY/MM/DDのフォーマットでいれる方法が思いつかなかった
ので、スクリプトを利用した場合の方法を書かせていただきます。
メール送信であれば、日本語アラートメールの送信方法をご参照く
ださい。
http://www.zabbix.jp/node/1441
スクリプトの内容を確認していただければご理解いただけると思い
ますが、メディアとして登録したスクリプトは、アクションのメッ
セージの送信を利用して呼び出したときに、
・宛先のメールアドレス
・件名
・本文
が引数としてスクリプトが呼び出されることになります。
https://www.zabbix.com/documentation/2.2/manual/config/notifications/med...
本文を加工してもよいでしょうし、スクリプトで日付を取得するよう
な方法でもよいと思います。
KAZ - 投稿数: 1085
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 - 投稿数: 3
返信ありがとうございます。
教えていただいた"メール送信としてスクリプトを呼び出す方法"で YYYY/MM/DD
フォーマットでメール送信できることを確認しました。
定型メッセージを利用しない場合は、リモートコマンドでやるしかないと
思い込んでました。。
早々に返信していただきありがとうございました。
ststake - 投稿数: 3
>>KAZさん
ソースの部分まで教えていただき、丁寧な回答ありがとうございます。
無事にフォーマット変換できました。
> sendmessage_smtp_php.shを改造して、日付変換するシェルを組んでみてはどうでしょう?A(^^;
はい、勉強がてらにPHPでやってみたいと思います。