Zabbixはとても便利なのですが、デフォルトではSMTP-Authによるメール送信ができません。SMTP-Authが必要なメールサーバ経由でのメール送信方法を紹介します。
■プラグインを導入する
Zabbix-JP公式でgithub上にプラグインを公開してくれています。https://github.com/zabbix-jp/pluginsのサイトから、zipでダウンロード、またはgit cloneしてプラグインを取得してください。zipを展開したら、notification/sendmessage-smtp-phpディレクトリを、zabbixサーバが動いているサーバの以下のディレクトリに配置します。
/usr/lib/zabbix/alertscripts
配置したら、sendmessage-smtp-php/sendmessage_smtp_php.shを編集し、SMTP-AUTHの設定を記述します。以下のように記述をします。
/* setting */
$MAIL_FROM = "ここにメールのFROMを記述";
$MAIL_FROMNAME = "Zabbix 障害通知";
// sample: using gmail smtp
// $MAIL_SMTP_HOST = 'ssl://smtp.gmail.com:465';
// sample: using smtp
// $MAIL_SMTP_HOST = 'smtp.example.com:25';
$MAIL_SMTP_HOST = 'SMTPサーバのホスト名 or IP:ポート番号';
$MAIL_SMTP_USER = 'ユーザ名';
$MAIL_SMTP_PASS = 'パスワード';
/* setting */
これで、設定は完了です。
■メール送信テスト
次に、上記の設定が正しく動いているか確認します。スクリプトを直接実行して、対象のメールアドレスに正しくメールが送信されるか確認します。以下のように実行すると、メールが送信されます。もし、メールが正しく送信されないようであれば、設定が間違っている可能性があります。
cd /usr/lib/zabbix/alertscripts/sendmessage-smtp-php
./sendmessage_smtp_php.sh 送信先メールアドレス test test
これで、送信先メールアドレスにタイトル test 内容 testのメールが送信されるはずです。
■zabbixに設定する
スクリプトが動くところまで確認したら、最後にzabbixに設定します。
[管理]→[メディアタイプ]と移動して、以下の様なメディアタイプの作成をします。もし、今まで使っていた設定を更新する場合は、次の設定を参考に更新してください。
- 【名前】 わかりやすい文字列
- 【タイプ】スクリプト
- 【スクリプト名】sendmessage-smtp-php/sendmessage_smtp_php.sh
最後に、ユーザにメディアタイプをひも付けて完了です。ひも付けの方法は以下のとおりです。
- [管理]→[ユーザ]と移動してユーザ一覧を出します。
- メディアタイプを変更したいユーザを選択します。
- [メディア]タブを選択し、先ほど追加したメディアタイプを選択し、更新します。
これで、SMTP-Auth経由でZabbixの監視メールが送信されるようになります。参考にしてみてください。