2013-10-23 52 views
1

我想編寫一個庫來監控在widnows服務器/ linux服務器上運行的java cron作業。如何使用java編寫監控軟件

不知道我們如何能夠追蹤wheter

  1. 它運行
  2. 如果是一個Java cron作業,是它成功的
  3. 如果不是這樣,當它FALIED
  4. 當是最後一次它的成功
  5. 此外,維護以上信息的歷史數據

我們在我們公司設立了基礎架構來監控服務器,磁盤使用情況,內存等....但我們沒有跟蹤我們在我們部門設置的cron作業。

我打算爲這個使用java,但不知道如何做到這一點。此外,我打算使用數據庫來收集狀態並存儲,以便我們可以查看歷史數據,而不僅僅查看當前狀態。

請讓我知道如何做到這一點......基本上設計了一種描述我所有工作一次性狀態的東西。

感謝您在這方面的任何幫助。

+0

我已投票結束此問題,因爲該主題非常廣泛。你能否縮小你的問題,關注一個你被困住的特定問題?瞭解自己已經完成了什麼會很有幫助。 –

回答

0

我們創建了一些內部使用的東西,我們最終將其用於SaaS Web應用程序。它被稱爲PushMon,它幾乎完成了你上面列出的任何東西。這不是一個圖書館,但我可以很快描述我們是如何做到的。

它已經運行。你的cron作業「監聽」監視系統,告訴它它已經運行。它只是調用一個URL。

它很成功。如果你成功,你只能「平」。

失敗時。如果作業知道何時失敗,它可以執行特殊的失敗「ping」。如果作業不知道失敗,就像它從未運行過一樣,監控系統會發現缺少的ping併發送警報。

什麼時候是最後一次成功。監控系統會記錄這些「ping」。

維護歷史數據。監控系統將所有信息存儲在數據庫中,並提供一些表格和圖表。

這是一個使用Tomcat編寫的Spring MVC編寫的Web應用程序。儀表板/用戶界面是jQuery用戶界面,但如果有機會重新執行,則會使用Bootstrap。這些圖表使用Google圖表。

0

感謝您的回覆。

它的處理方式很好。也許,我們也可能會想到這個選擇。它是開源嗎?我們需要調用的URL是PushMon特定的(意味着作業狀態將存儲在您的數據庫中?我們需要將所有內容存儲在我們公司的內部存儲器中)

我們正在開發很少的選項。

  1. 使用Log4j和JMSappender和Apache ActiveMQ的JMS作爲服務器

使用上面,我們登錄狀態JMS和lsitener將讀取並插入到數據庫,這樣我們可以存儲的歷史數據。在此數據庫之上提供一個Web界面以讀取狀態並提供圖形視圖。

但是,我們在這裏預見到一個問題。 JMS是否按順序發送日誌條目,列表程序是否按順序接收它們。還沒有探索過。

最初我們想到使用JDBCAppender將條目直接記錄到數據庫。然而,很少有評論認爲它有點慢,因爲我們的應用程序和數據庫是分佈式的,可能會造成網絡開銷並影響應用程序的性能。

  1. 探索一些開源軟件的監控,可滿足我們的要求,使我們只需要在設置了監控軟件投入時間和我們是很好.....無需真正進入測試/維護自主研發監視軟件。

如果您知道更好的方法,請告訴我們。