2014-01-09 40 views
2

我在各種服務器上有幾個cron-jobs和後臺任務。這些任務可能會失敗的原因有很多:用於監控cron作業和自動化任務的系統?

  • 磁盤空間不足
  • 處理奇怪,不可讀文件類型
  • 邏輯錯誤/在程序中的bug
  • 無效cron項
  • 無效JSON收到
  • 網絡連接失敗
  • db鎖
  • s系統庫更新中斷程序

爲什麼它們運行失敗很重要,但最重要的是知道它們無法運行。

是否有一種統一的方式來監視多個作業,並在出現任何原因時無法在預定時間運行時收到警報?我使用Ubuntu,腳本主要是在Ruby中。

注:

我專門找了一個框架或系統跨多個服務器協同工作,並已通過電子郵件或者內置的文本,一個可以生存有限的磁盤空間警報。因此, How can I setup a system to tell me if a cron job is NOT running fine?中提出的解決方案似乎不適用。

+0

我們使用http://www.clowder.io這種類型的服務 – keithhackbarth

回答

1

http://www.pushmon.com滿足您的需要?它主要是爲了讓你知道一個cron作業或計劃任務是否運行失敗。你可以把它放在你的任何服務器上,並有電子郵件和文本警報。這個想法是,當你的工作成功運行時,你「ping」PushMon,如果PushMon沒有收到ping,PushMon會提醒你。

4

Cronitor(https://cronitor.io)是我爲此設計的工具。它基本上歸結爲使用http請求作爲ping的跟蹤信標(類似於pushmon)。

但是,我的一個需求(以及pushmon和類似的工具無法提供)在cron作業開始運行時間過長(或相反,如果它們開始過快完成)時收到警報。 Cronitor通過允許您可選擇觸發開始事件和結束事件來解決這個問題,以便跟蹤持續時間。

持續時間跟蹤對我來說是必須的,因爲我有一個計劃每小時一次的cronjob,但隨着時間的推移開始需要花費一個多小時才能運行。這是一場災難;)