Zabbixの監視メールをSMTP-Authが必要なメールサーバ経由で送信する

Zabbixの監視メールをSMTP-Authが必要なメールサーバ経由で送信するZabbix

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の監視メールが送信されるようになります。参考にしてみてください。