Monitを使用し、Gmailを使用してメールサーバーをセットアップしようとしています。設定ファイルは次のようなものです:
set mailserver smtp.gmail.com port 587
username "[email protected]" password "password"
using tlsv1
with timeout 30 seconds
そして、私はテストするアラートを設定しました:
check file alerttest with path /.nonexistent
alert [email protected] with reminder on 500 cycles
しかし、monit validateを使用すると、次のエラーメッセージが表示されます。
Sendmail: error receiving data from the mailserver 'smtp.gmail.com' -- Resource temporarily unavailable
Alert handler failed, retry scheduled for next cycle
'alerttest' file doesn't exist
Sendmail: error receiving data from the mailserver 'smtp.gmail.com' -- Resource temporarily unavailable
'alerttest' trying to restart
誰かがアイデアを持っていますか?どうもありがとう
そこに実際のアカウントがない限り、メールを引き渡すように他の会社のメールサーバーを構成することはできません。アカウントを持っている場合でも、monitは電子メールの送信を処理するのに最適なプログラムではありません。私が提案するのは、ローカルMTAをインストールして127.0.0.1でリッスンし、monitを次のように構成することです。
set mailserver 127.0.0.1
その場合、monitは実際のMTAにメール配信を引き渡し、実際のMTAがそれを送信することができます。MTAは、monitとは異なり、リモートサーバーが利用できない場合に完全に対応できます(そのために作られていないため)。
MTAの設定方法はこの質問の範囲外ですが、MTAに直接メールを送信する場合は、静的IP、rDNS、およびmxレコードを用意するのが最適です。または、リモートのスマートホスト/ゲートウェイを使用できます。
編集:postfixのインストール方法の簡単な説明
実行:
apt-getインストールpostfix
選択してください:
インターネット・サイト
システムメール名:
あなたのシステムが持っているどんなホスト名
これで、インターネットとの間で電子メールを送受信するようにpostfixが構成されました。これで、上記のようにmonitを構成すると、電子メールを送信できるようになります。
重要、配信可能性を向上させるために、IPアドレスにドメインに解決される逆引きDNSレコードがあることを確認する必要があります。
たとえば、ドメインがexample.orgでサーバーがmonit.example.orgの場合、次のように解決されます。
Host monit.example.org
monit.example.org has address 192.0.43.10
Host 192.0.43.10
10.43.0.192.in-addr.arpa domain name pointer monit.example.org
ドメインが同じである限り、別のホスト名に解決される可能性があります。これは、多くの電子メールサーバーが有効なrDNSを持っているかどうかをチェックするためです。 ISP(この場合はAmazon)にリクエストして、rDNSを変更することができます。
リモートメールサーバーを使用できます。これがうまくいった私のサンプル設定です。リモートのSMTPサーバーを介してGmailにアラートを送信します。私はまだGmailをSMTPリレーとしても使用していると思います。
#configure remote smtp server in monitrc
/etc/monit/monitrc
set mailserver mail.yourmailserver.com port 587
username "[email protected]" password "mypassword"
using tlsv1
with timeout 30 seconds
#set the from email which should be same as the one above
set mail-format { from: [email protected] }
//
/etc/monit/conf.d/monit.services
check process Apache with pidfile /var/run/Apache2/Apache2.pid
alert [email protected] only on { timeout,nonexist,resource,pid,connection }
start program = "/etc/init.d/Apache2 start" with timeout 60 seconds
stop program = "/etc/init.d/Apache2 stop"