監控和日誌
為什麼監控和日誌很重要?
監控(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 更多細節,請閱讀: https://server.dzone.com/articles/monitoring-ebay-big-data
點評的集中式日誌: https://www.docin.com/p-737666327.html
點評開源: https://github.com/dianping/cat
Hawkeye
Sherlock
Log sending sequence
最後更新:2017-04-03 12:56:39