2010-09-13 25 views
1

我是我公司非常敏感的系統上的主要開發人員。這段代碼設計得非常好,但是它有一些缺陷,使它有點不穩定。我們當然在努力解決導致穩定性問題的缺陷,但同時我們有時會出現一些問題。 「錯誤」的事情「錯誤」會對公司造成很大的負面影響,儘管如此,我們必須在此期間迅速確定並解決問題。從長遠來看,我希望有一個自動化監控系統來對數據和其他事情進行健全性檢查,以便在問題發生時通知我們。儘管在努力確保沒有發生災難性事件之前,我們正在尋求一些建議。應用程序/數據監控解決方案要求的反饋

我們有幾項檢查(主要是可以通過簡單的SQL查詢完成數據檢查)來每天運行。其他人應該每週運行一次,其他月度運行。在過去,我已經向其他人提出了這些問題,並確保他們在需要時能夠運行。不幸的是,人類是不完美的,不可避免的翻天覆地,我們似乎最終發現了一些比我們想要的更晚發生的不好的事情,因爲一個或多個這些手工檢查沒有運行。有人可以提供建議,或讓我知道可能幫助我管理這些腳本的應用程序,或者可能是現有的可能爲我做這些工作的應用程序?在這一點上,我唯一的選擇將是一個免費的應用程序,但如果有人有一個不自由的建議,我會把它放在後面要考慮的事情列表上。我知道我的公司有一個開放的NMS監控系統,但負責人不會放棄對我的任何控制權,以便我可以爲我的系統配置它,同時他們不響應我設置監控的請求在所有。我的公司在過去也使用過Nagios,但我不認爲其中的任何一個做正好是我想要的,因爲我不主要在尋找網絡監控。

感謝您的任何幫助/建議。

回答

2

你需要的是編寫使用定時器定時觸發一個動作(如運行SQL腳本,當查詢失敗時發送電子郵件非常簡單的應用程序或任何你想要的)。然後,您將這個應用程序安裝爲Windows服務或unix deamon,所以它始終在後臺運行。或者,您可以使用任務計劃程序(Windows)或cron(linux)來觸發此應用程序。

像AlertGrid這樣的工具仍然很有用,因爲即使您編寫這樣一個小應用程序並將其安裝爲服務/ deamon,您也永遠不會知道它是否因某種原因突然失敗並停止運行(最糟糕的情況是託管機器下降)。問題是:如果您自動執行重複性任務,則可以消除人爲錯誤的可能性,但是您會面對另一個敵人:「無聲」故障。

所以,監控,如果你的重複任務真正運行,你必須有東西,可以從您的應用程序收到「我還活着」的消息,並當x分鐘時,未收到消息發出警報。這個東西必須 a)在你的應用程序主機的外部 b)是可靠的(所以它本身不會下降)。

像AlertGrid這樣的工具可以做到這一點,甚至更多。 AlertGrid很好,因爲集成和使用相對容易。

但這並非全部。你寫道:「所以如果我發現一個問題,我可以發送一個通知給alert-grid.com,它會發送通知給我們已配置的所有參與方?」。訣竅是你說你想檢測問題。考慮另一種方法:配置AlertGrid以檢測事件是否是事件。並非所有事件都必須是事件,大多數情況下,您的SQL腳本將無錯地傳遞,對吧?爲什麼不報告成功呢?通過這種方式,您可以一箭雙鵰:通過定期檢查任何事件(包括成功和失敗)來監控您的應用是否在運行,如果您沒有在x時間內獲得事件,就會發出提醒,並自動檢測哪些事件是事件並通過電子郵件將短信或電話通知給適當的聯繫人。另一個好處是:如果通知規則發生變化(例如,您希望將郵件發送給X先生而不是發送給Y夫人),則您不需要重新編譯或重新部署應用程序,只需在AlertGrid中重新配置即可。

+0

非常有幫助。這正是我所尋找的信息。我本來希望找到一些易於實現的東西,它們可以爲我執行我的任務,但最終知道我會轉向更加可定製的Windows服務或類似的東西。儘管我沒有考慮過這個失敗的解決方案,但是我非常感謝你的幫助和建議,以便將它與alertgrid等解決方案集成在一起。 – omatase 2010-09-14 15:14:54

1

你可以嘗試AlertGrid - 這個程序可以建立像輕易通知規則「如果我的計劃任務沒有及時完成 - >發送短信」

我們還使用AlertGrid監控的一些邏輯統計我們的計劃任務(我們測量一些exectuion時間,處理的條目數量),當然我們有一些警告,當一些閾值越過。

有一個可用的免費帳戶(無時間限制),有一定數量的警報可供使用(價格取決於大多數短信和電話警報的數量)。與其他解決方案相比,與AlertGrid的集成非常簡單。

(我AlertGrid隊的成員)

+0

AlertGrid會讓我輕鬆地對數據庫執行一些SQL,分析結果,然後發送警報,如果這些結果不符合我們的需求? – omatase 2010-09-13 13:55:56

+0

AlertGrid允許您觸發外部URL(它可能是指向您的腳本的URL,它將運行必要的邏輯)。說實話,我從你的描述中判斷,你已經有一些以預定的方式執行的腳本,並且如果由於某些原因導致執行失敗,你希望得到提醒。這兩種情況都可以使用AlertGrid。如果您提供更多詳細信息,我們可以幫助您進行此集成。 – dzida 2010-09-13 18:49:27

+0

我們沒有任何預定的腳本。我們有一些我們手動運行的SQL腳本。例如,可以查詢一個表並確保沒有StatusID爲27的行。如果發現行,運行腳本的人知道會引發紅色標誌。我們希望腳本自動運行,並自動通知我們有問題。 – omatase 2010-09-13 19:53:09

相關問題