ZabbixのアラートメールをSESから送信してみた

前回の記事の続き。

やったこと。

  • SESにIAMユーザー作成
  • 送信用アドレスを認証
  • zabbixから送信設定

本日の参考サイト様はこちら(´ω`)
http://dev.classmethod.jp/cloud/amazon-ses-smtp/
http://blog.cloudpack.jp/2011/12/aws-news-ses-smtp-support.html
http://www.zabbix.jp/node/1441

SESにIAMユーザー作成

AWS Management Consoleから SES > SMTP Settings に移動し、Create My SMTP Credentialsを選ぶ。

 
SES-smtp

適当にIAMユーザー名を入力してCreate done!
 
create-ses-user1

SMTPユーザーとパスワードをメモる。
 
create-ses-user2

これでIAMユーザー作成完了です。

送信用アドレスを認証

AWS Management Consoleから SES > Verified Senders に移動する。Verify a New Email Addressを選び送信用アドレスを入力してVerify!  
verify-sender1

入力したアドレス宛に認証リクエストのメールが来るのでURLポチって認証。するとこんなページが!なんとなくありがとうとつぶやきましょう。
 
verify-sender2

AWS Management Consoleから SES > Verified Senders でリロードすると先ほどのアドレスのステータスがverifiedになってます。これでSESでメール送信の準備ができた!…はずです。

zabbixから送信設定

zabbix公式からスクリプトをダウンロードしてきてSMTP_USERとかPWとか設定する。
ついでに/etc/zabbix/zabbix_server.confのAlertScriptsPathを修正しておきます。

1
2
3
4
5
6
7
8
cd /usr/local/src/
sudo git clone git://github.com/zabbix-jp/plugins.git
sudo mkdir -p /var/lib/zabbix/bin
sudo cp -a plugins/notification/sendmessage-smtp-php/ /var/lib/zabbix/bin
sudo chown -R zabbix:zabbix /var/lib/zabbix/
sudo chmod 755 /var/lib/zabbix/bin/sendmessage-smtp-php/sendmessage_smtp_php.sh
sudo vim /var/lib/zabbix/bin/sendmessage-smtp-php/sendmessage_smtp_php.sh
sudo sed -ie "s/^AlertScriptsPath=.*/AlertScriptsPath=\/var\/lib\/zabbix\/bin/g" /etc/zabbix/zabbix_server.conf

sendmessage_smtp_php.sh 編集箇所

1
2
3
4
5
6
7
/* setting */
$MAIL_FROM      = "めーるふろむ(´ω`)";
$MAIL_FROMNAME  = "Zabbix 障害通知";
$MAIL_SMTP_HOST = 'ssl://email-smtp.us-east-1.amazonaws.com:465';
$MAIL_SMTP_USER = 'SMTPユーザー';
$MAIL_SMTP_PASS = 'SMTPパスワード';
/* setting */

$MAIL_SMTP_USER$MAIL_SMTP_PASSはIAMユーザー作成したときにメモったものを使います。

  • カスタムスクリプトとして登録

管理 > メディアタイプ > メディアタイプの作成 でこんな感じで保存。
 
zabbix-sendmail-php

あとはユーザーのメディアに登録してアクションとかごにょごにょ設定すればいいと思います。
(めんどくなった←

おまけ(感想)

  • SESの設定は簡単でいいね!
  • やっぱり外部スクリプトでアラートメール送信だとちょっとだけ遅い気がする。
  • zabbix-2.0はひとつのホストに複数のIP(インターフェイス)設定できて素晴らしい!

Comments