Я пытаюсь использовать monit и настроить почтовый сервер с помощью Gmail. Конфигурационный файл выглядит так:
set mailserver smtp.gmail.com port 587
username "someuser@gmail.com" password "password"
using tlsv1
with timeout 30 seconds
И я установил оповещение для проверки:
check file alerttest with path /.nonexistent
alert address@gmail.com 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
У кого-нибудь есть идеи? большое спасибо
Вы не можете настроить почтовый сервер другой компании для передачи писем, если у вас нет действующей учетной записи. Даже если у вас есть учетная запись, мониторинг - не лучшая программа для отправки электронной почты. Я бы посоветовал просто установить локальный MTA для прослушивания 127.0.0.1, а затем настроить monit следующим образом:
set mailserver 127.0.0.1
В этом случае monit передаст электронную почту фактическому MTA, который затем может позаботиться об отправке, MTA отлично справляется с недоступностью удаленного сервера, в отличие от monit (поскольку он не предназначен для этого).
То, как вы устанавливаете и настраиваете MTA, выходит за рамки этого вопроса, однако, если вы хотите, чтобы он отправлял почту напрямую, было бы лучше иметь статический IP, записи rDNS и mx. Или вы можете использовать удаленный смарт-хост / шлюз.
Изменить: краткое объяснение, как установить postfix
бегать:
apt-get install 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. Вы можете попросить своего интернет-провайдера (в данном случае Amazon) изменить rDNS за вас.
Вы можете использовать удаленный почтовый сервер. Вот мои примеры конфигураций, которые работали. Он отправляет оповещения на мою почту Gmail через удаленный SMTP-сервер. Я думаю, вы все еще используете Gmail в качестве smtp-реле.
#configure remote smtp server in monitrc
/etc/monit/monitrc
set mailserver mail.yourmailserver.com port 587
username "me@yourmailserver.com" password "mypassword"
using tlsv1
with timeout 30 seconds
#set the from email which should be same as the one above
set mail-format { from: me@yourmailserver.com }
//
/etc/monit/conf.d/monit.services
check process apache with pidfile /var/run/apache2/apache2.pid
alert username@gmail.com 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"