Я настраиваю monit для наблюдения за некоторыми службами, работающими на моих серверах. На одном из серверов у меня также работает почтовый сервер, который обрабатывает почтовый транспорт для моих доменов (в данном случае, например, example.com). Долгое время monit был настроен на отправку электронного письма на мой адрес электронной почты (myname@example.com) всякий раз, когда служба больше не отвечает.
Теперь, с некоторого времени (я, к сожалению, не знаю, когда именно), monit больше не отправляет электронные письма. В своих журналах я обнаружил примерно такие строки:
[CEST Oct 11 11:10:50] debug : Processing postponed events queue
[CEST Oct 11 11:10:50] debug : monit: processing queued event /var/lib/monit/events/1476176912_a2e860
[CEST Oct 11 11:10:50] debug : Timestamp failed notification is sent to myname@example.com
[CEST Oct 11 11:10:50] error : monit: Cannot get the SSL server certificate!
[CEST Oct 11 11:10:50] error : Sendmail: Cannot switch to SSL
[CEST Oct 11 11:10:50] error : Alert handler failed, retry scheduled for next cycle
(журнал отладки включен)
Конфигурация почтового сервера в файле monitrc выглядит так:
set mailserver bits.example.com port 587 username "monit@example.com" password "secret" using tlsv1 with timeout 30 seconds
Поскольку я ничего не менял, и конфигурация в monit мне нравится, я думал, что мой почтовый сервер больше не работает так, как ожидалось (даже если я не обнаружил никаких проблем с другими пользователями сервера (некоторые веб-проекты) ). Однако я попытался отправить электронное письмо напрямую, используя openssl (поскольку сервер разрешает только tls-соединения):
myuser@server:~$ openssl s_client -connect bits.example.com:587 -starttls smtp -CApath /etc/ssl/certs
CONNECTED(00000003)
depth=2 C = IL, O = StartCom Ltd., OU = Secure Digital Certificate Signing, CN = StartCom Certification Authority
verify return:1
depth=1 C = IL, O = StartCom Ltd., OU = StartCom Certification Authority, CN = StartCom Class 1 DV Server CA
verify return:1
depth=0 CN = bits.example.com
verify return:1
---
Certificate chain
0 s:/CN=bits.example.com
i:/C=IL/O=StartCom Ltd./OU=StartCom Certification Authority/CN=StartCom Class 1 DV Server CA
1 s:/C=IL/O=StartCom Ltd./OU=StartCom Certification Authority/CN=StartCom Class 1 DV Server CA
i:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
<removed for a shorter code snippet>
-----END CERTIFICATE-----
subject=/CN=bits.example.com
issuer=/C=IL/O=StartCom Ltd./OU=StartCom Certification Authority/CN=StartCom Class 1 DV Server CA
---
No client certificate CA names sent
---
SSL handshake has read 3485 bytes and written 456 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-GCM-SHA384
Session-ID: 0B22EB3DDF1E0693E4A6152CEF26206572185112A7C9353397BFADAB5CB552E0
Session-ID-ctx:
Master-Key: 29348D1D2EC0819321B1B98C910EB9737BEF54699998ACD2BCB5687D22ED320F42E086D2B263A7DB82661C56AE7A6235
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1476177537
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
250 DSN
EHLO bits.example.com
250-example.com
250-PIPELINING
250-SIZE 51200000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
MAIL FROM:monit@example.com
250 2.1.0 Ok
rcpt to:myuser@example.com
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: Test mail
This is a test.
.
250 2.0.0 Ok: queued as 50C965FAE9
QUIT
DONE
и, как вы видите, он работает нормально. Итак, теперь я исчерпал свои знания :( Почему я больше не могу контролировать отправку электронной почты с помощью моего собственного почтового сервера. Кто-нибудь знает, в чем проблема? Если мне нужно предоставить дополнительную информацию, не стейсняйся спросить! :)
Заранее спасибо!
После обновления monit с 5.6 (поставляется с исходными кодами Ubuntu 14.04 apt) до 5.20 (последняя версия, обновление вручную) отправка писем снова работает без проблем. Конфигурация пока не менялась, так что это действительно похоже на ошибку в старой версии monit.