监视Ubuntu上的Postfix Server和Ruby响应

时间:2009-08-19 16:05:18

标签: ruby ubuntu monitoring postfix-mta mta

我正在构建一个ruby应用程序,它抓取发送到服务器的电子邮件并将它们记录到数据库中。现在我没有办法完全测试(电子邮件 - > Ruby - >数据库)堆栈的停机时间。我正在使用服务来测试ruby运行的服务器的停机时间,我正在使用monit来确保ruby守护程序不会长时间停机。除了定期手动检查外,还有我可以用来验证的服务:

1)我的后缀是否仍在运行并接收/发送邮件

2)消息是否仍然从我的守护进程到数据库

如果没有,是否有任何最佳实践可以监控和发送这两种方案中的任何一种,或任何可以可靠运行的家酿方法?

3 个答案:

答案 0 :(得分:1)

您可以通过cron作业发送“canary”消息,然后进行另一个cron作业测试,以查看是否已将预期的canary消息写入数据库。 (可选择删除它等)

答案 1 :(得分:0)

如果您正在寻找商业工具,www.logicmonitor.com可以做到这一点。 它具有Postfix监控(监控状态,以及排队,交付,退回,拒绝等的图形消息)。 还有数据库监控(Mysql,oracle,postgres,sql server) - 因此它会对数据库发出警报和趋势,并在需要时提供一些调整建议。 它还可以轻松跟踪最后一次将电子邮件插入数据库的时间 - 并在比预期更长的时间内发出警报。 加上监控日志文件以跟踪应用程序响应时间。

取决于该系统的重要性,以及时间/金钱的权衡。

答案 2 :(得分:0)

我对Monit没有经验,但设置这些测试可能是可行的。如果不是,我建议您查看Nagios - 用于编写自己的测试的API非常简单。

测试:

  • SMTP服务器正在网络上响应。
  • 后缀进程正在运行。
  • 后缀队列为空。

可以使用DGMs“canary”建议来测试往返 - 如果您可以设置一个例程,它可能具有最佳精度并且可以对错误给出最快的反应。

如果流量相对频繁,则可以使用的替代方法是监视postfix和可能的数据库服务器的日志 - 检查上一条成功消息是否不早于例如30分钟(对于适当的值“30”) ......和“分钟”...)。这种方法反应较慢,但会覆盖更多可能的错误条件。