2010-01-13 63 views
1

我工作的公司爲我們的客戶構建並託管了一個Web應用程序,我有興趣創建某種類型的外部監控頁面(類似於trust.salesforce.com),用戶可以去以查看我們的服務器/應用程序的當前狀態。我知道有很多不同的'監控'服務,但我想自己創建服務,以便完全控制和定製。顯然,該服務必須位於不同的位置和數據中心,而不是應用程序本身。我擔心的一件事是,如果我只是在不同的位置選擇不同的主機,如果主機出於任何原因(電源故障,服務器故障甚至ISP故障)出現故障,監控軟件就會停機。出於這個原因,我正在考慮在亞馬遜EC2實例上託管監控應用程序。利用他們的彈性IP功能,如果由於某種原因數據中心或實例運行的地方失敗,我可以用相同的數據創建一個重複的實例(但位於不同的位置),並且一切都可以正常工作。爲Web應用程序創建外部監控

這聽起來像是一個可行的計劃嗎?爲了更安全起見,我正考慮在不同地點創建2個實例並從兩者中進行監控。如果有一個失敗,另一個失敗,則另一個失敗。顯然,一個實例必須充當監控頁面的實際Web主機。如果一個實例檢測到其他實例因任何原因失敗,是否可以通過編程方式將彈性IP切換到自身?

我知道有很多參與這個問題不同的事情,我只是在尋找反饋意見任何一件事......

如果你做了這麼遠,感謝您抽出時間來讀這個!

回答

1

你說的是一個複雜問題的複雜解決方案。我認爲你正在使用諸如亞馬遜的EC2之類的東西,以減少你的監控應用程序崩潰的可能性。另外,你可以自己開發它,但是有很多像Nagios這樣的免費監控解決方案可以滿足你所要求的所有功能,並且具有高度的可擴展性,所以你可以花時間讓它看起來和感覺像你想要的,而離開在經過嘗試和測試的軟件之下,有更復雜的部分。最糟糕的情況是你的軟件中有一個錯誤,當它實際發生故障時,它會顯示一些錯誤。根據你在談論的事情,我會認爲這將是一個巨大的問題。

1

而不是使用彈性IP - 只分配給一個實例,請考慮使用Elastic Load Balancer http://aws.amazon.com/elasticloadbalancing/,然後可以在任何可用區域中路由實例。通過這種方式,如果AWS出於某種原因變得不可用,並且您不必花時間「移動」Elastic IP,那麼AWS會管理將實例導入/導出池。然後很容易將您的監控cname分配給ELB主機名。

我認爲RandomBen在您的實例上使用Nagios的想法是一個很好的想法,因爲您不必在Nagios中重新創建所有功能。然後,您花費開發時間設置系統並根據需要定製外觀和感覺。

此外,如果你可以使用MySQL,你應該考慮使用RDS http://aws.amazon.com/rds/,儘管如果你有一個區域以外的服務器訪問另一個區域的RDS,你將需要支付傳輸費用。