【问题标题】:Monitor Postfix Server and Ruby response on Ubuntu在 Ubuntu 上监控 Postfix 服务器和 Ruby 响应
【发布时间】:2010-11-21 00:29:51
【问题描述】:

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

1) 我的 postfix 是否还在接收/发送邮件

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

如果没有,是否有针对这两种情况的任何一种监控和发送警报的最佳做法,或者任何可以可靠工作的自制方法?

【问题讨论】:

    标签: ruby ubuntu monitoring postfix-mta mta


    【解决方案1】:

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

    测试一下:

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

    可以使用 DGM 的“金丝雀”建议来测试往返行程 - 如果您可以设置这样的例程,它可能具有最好的精度并让您对错误做出最快的反应。

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

    【讨论】:

      【解决方案2】:

      如果您正在寻找商业工具,www.logicmonitor.com 可以做到。 它具有 Postfix 监控(监控状态,并绘制排队、传递、退回、拒绝等消息)。 还有数据库监控(Mysql、oracle、postgres、sql server)——所以它会对数据库发出警报和趋势,并在需要时提供一些调整建议。 它还可以轻松跟踪诸如上次将电子邮件插入数据库的时间之类的信息 - 如果时间超过预期,则发出警报。 加上监控日志文件以跟踪应用程序响应时间。

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 我在考虑这个,但不知道这种方法有多骇人听闻……我越想越喜欢它。任何额外的想法表示赞赏
        • 如果你愿意,你可以从远程系统发送金丝雀……如果有足够的时间戳,你可以跟踪系统的延迟……如果你有消息的统计信息,你可能希望编程它忽略金丝雀。然后你需要一个系统来寻找金丝雀,如果它们没有出现,就给你发邮件。
        猜你喜欢
        • 2016-02-02
        • 1970-01-01
        • 2017-12-20
        • 1970-01-01
        • 1970-01-01
        • 2018-05-08
        • 2013-02-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多