监控 apache2

监控 apache2

我正在尝试使用 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 verify 时,收到的错误消息是这样的:

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

有人有什么想法吗?非常感谢

答案1

除非您有实际帐户,否则您无法配置其他公司的电子邮件服务器来发送电子邮件。即使您有帐户,monit 也不是处理提交电子邮件的最佳程序。我建议安装本地 MTA 来监听 127.0.0.1,然后像这样配置 monit:

set mailserver 127.0.0.1

在这种情况下,monit 会将电子邮件传递给实际的 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(在本例中为亚马逊)为您更改 rDNS。

答案2

您可以使用远程邮件服务器。以下是我的示例配置,效果不错。它通过远程 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

监控 apache2

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"

答案3

在装有 Monit 5.26.0 的 Ubuntu 20.04 LTS 上,我尝试让 Monit 使用 Mailgun 发送邮件,但它不起作用的原因应该是tlsv1tls根据此维基页面,monit 5.17 或更高版本应该tls与 Gmail 或类似的电子邮件提供商一起使用。

答案4

Google 有烦人的“不太安全的应用程序”安全机制,会阻止连接到该应用程序。烦人是因为他们喜欢在你已关闭该功能后将其重新打开。

看这里https://support.google.com/accounts/answer/6010255?hl=en

相关内容