Назад | Перейти на главную страницу

monit send email не работает

Я пытаюсь использовать 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

монитор apache2

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"