用于监控cron作业和自动化任务的系统?

时间:2014-01-09 16:15:16

标签: ruby-on-rails ruby unix monitoring watchdog

我在各种服务器上有几个cron-jobs和后台任务。这些任务可能由于多种原因而失败:

  • 磁盘空间不足
  • 处理奇怪的,不可读的文件类型
  • 程序中的逻辑错误/错误
  • 无效的cron条目
  • 收到无效的json
  • 网络连接失败
  • db locks
  • 系统库更新中断程序

为什么他们不能跑步很重要,但最重要的是知道他们没能跑。

是否有统一的方法来监控多个作业,如果因任何原因无法在预定的时间运行,则会收到警报?我正在使用Ubuntu,脚本主要使用Ruby。

注意:

我专门寻找一个跨多个服务器工作的框架或系统,它通过内置的电子邮件或文本发出警报,并且可以在有限的磁盘空间中存活。所以提出的解决方案 How can I setup a system to tell me if a cron job is NOT running fine?似乎不适用。

4 个答案:

答案 0 :(得分:4)

它仍在积极开发中,但我建议您查看https://github.com/jamesrwhite/minicron,我相信它符合您指定的所有要求以及更多!

免责声明:我是开发人员。

答案 1 :(得分:4)

Cronitor(https://cronitor.io)是我为此目的而构建的工具。它基本上归结为使用http请求作为ping的跟踪信标(类似于pushmon)。

然而,我所拥有的一个需求(以及pushmon和类似工具无法提供的)是在cron作业开始运行时间过长(或者相反,如果它们开始完成得太快)时收到警报。 Cronitor通过允许您可选地触发begin事件和end事件来解决此问题,以便跟踪持续时间。

持续时间跟踪对我来说是必须的,因为我有一个每小时安排的cronjob,但随着时间的推移开始需要一个多小时才能运行。那是一场灾难;)

答案 2 :(得分:1)

http://www.pushmon.com会满足您的需求吗?它的构建主要是为了让您知道cron作业或计划任务是否无法运行。您可以将它放在任何服务器上,并提供电子邮件和文本警报。想法是当你的工作成功运行时“ping”PushMon,如果没有收到ping,PushMon会提醒你。

答案 3 :(得分:0)

虽然它可能无法满足您的所有需求: https://github.com/javan/whenever