為什么監控和日志很重要?
監控(Monitoring)和日志(Logging)是大型分布式系統中最關鍵的基礎設施(infrastructure)之一,因為沒有監控,就沒辦法知曉服務的運行情況,就沒辦法知道集群中有沒有Down機,機器的CPU使用率、負載是否正常,網站的Traffic是否正常,服務的出錯率是不是在可容忍范圍之內。 簡而言之,監控使得我們可以實時的了解網站的運營情況和可用性(Availability)情況。
監控通常是從整體上了解網站的情況,需要具備實時性。而日志則是詳盡的記錄着系統運行情況,每一次service的調用,每一次數據庫的訪問,都應該寫進日志,特別是當系統出現問題時,我們希望日志系統能為我們提供完整的錯誤堆棧(Exception Stack) 和盡可能完備的上下文(Context),為系統維護提供支持。日志可以容忍一定程度的延遲,不需要實時性,特別是基於日志的報表,因為分析日志需要一定的時間,也沒辦法做到實時。
監控和日志有時候是可以互相協作的,例如,日志中所攜帶的大量系統信息(客戶端IP,運行Transaction所需時間,SQL的利用率(Use Ratio,在一個Transaction中,use ratio>1的話,說明有問題),等一切用戶願意寫入日志的信息)本身就可以為監控提供信息來源(Source),實際上除了監控,利用日志信息我們還可以做很多和業務相關的事情,比如分析用戶的行為,統計系統的使用情況,不過因為日志信息體量巨大,也就是我們通常說的大數據,像ebay每天的日志信息在幾十個TB,對如此龐大的數據進行存儲和分析,可不是一件容易的事情,通常我們需要借助於FDMS和Hadoop等技術手段。
監控和日志系統架構
A log view REST URL sample for eBay CAL
監控和日志系統詳細設計
如果深入到Detail,還是有很多技術細節的,特別是日志的存儲和分析,更是涉及到現在的熱門技術,大數據和Hadoop這兩位好兄弟,有時間再詳細趴吧,暫時先放一些公司的技術文檔,以備不時之需:
關於eBay CAL 更多細節,請閱讀: http://server.dzone.com/articles/monitoring-ebay-big-data
點評的集中式日志: http://www.docin.com/p-737666327.html
點評開源: https://github.com/dianping/cat
Hawkeye
Sherlock
Log sending sequence
版權聲明:本文為博主原創文章,未經博主允許不得轉載。