代码之家  ›  专栏  ›  技术社区  ›  Schneems

在Ubuntu上监视postfix服务器和ruby响应

  •  1
  • Schneems  · 技术社区  · 16 年前

    我正在构建一个Ruby应用程序,它可以获取发送到服务器的电子邮件,并将其记录到数据库中。现在我还没有一种方法可以完全测试(email->ruby->数据库)堆栈的停机时间。我使用的服务测试ruby运行的服务器是否有停机时间,我使用m on i t来确保ruby守护进程不会停机太久。除了定期手动检查之外,我还可以使用任何服务来验证:

    1)我的邮箱是否还在运行并接收/发送邮件?

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

    如果没有,是否有针对这两种情况监控和发送警报的最佳实践,或任何可以可靠工作的家庭BREW方法?

    3 回复  |  直到 16 年前
        1
  •  1
  •   DGM    16 年前

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

        2
  •  0
  •   user159682    16 年前

    如果您正在寻找商业工具,www.logicmonitor.com可以做到这一点。 它具有修复后监视(监视状态,以及将消息排队、传递、反弹、拒绝等图形化)。 另外,数据库监控(mysql、oracle、postgres、sql server),所以它会在数据库上发出警报和趋势,并在需要时提供一些关于调优的建议。 它还可以很容易地跟踪诸如上次将电子邮件插入数据库的时间之类的事情,如果时间比预期的长,还可以发出警报。 加上监视日志文件来跟踪应用程序响应时间。

    取决于这个系统的关键性,以及时间/金钱的权衡。

        3
  •  0
  •   Anders Lindahl    16 年前

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

    测试:

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

    测试往返可以用DGMS的“金丝雀”建议来完成-如果你能建立这样的一个程序,它可能有最好的精度,并给你最快的错误反应。

    如果通信相对频繁,另一个有用的方法是监视postfix日志,可能是数据库服务器-检查最后一条成功消息是否不早于30分钟(对于适当的值“30”)…还有“分钟”…)。这种方法反应较慢,但会涵盖更多可能的错误情况。

    推荐文章