一馋袜、日志系統(tǒng)
對于一個大型網(wǎng)站來說,代碼庫非常龐大舶斧,模塊眾多欣鳖。部門協(xié)作的人數(shù)規(guī)模在百人以上,如何跟蹤定位問題不像小網(wǎng)站那樣容易茴厉。而且我們的服務(wù)器都是集群化的泽台,動輒幾千臺。有一套可查詢方便使用的日志系統(tǒng)至關(guān)重要矾缓。
對于日志的使用也有了一定的經(jīng)驗怀酷。我們的日志通常會非常詳細的記錄各種參數(shù),環(huán)境變量嗜闻,HOST等信息蜕依,在出現(xiàn)異常的情況下,必須要記錄日志。我們使用了MySQL按時間分片的方式來記錄日志笔横,所有集群內(nèi)節(jié)點均通過網(wǎng)絡(luò)方式來寫入到中心日志系統(tǒng)竞滓。
在管理端我們提供了很方便友好的工具,來查詢定位日志吹缔,可按用戶ID商佑、類型、時間等幾種索引方式查詢厢塘。日志系統(tǒng)幫助我們定位到了很多問題茶没。
二、PHP錯誤日志收集系統(tǒng)
PHP錯誤日志是所有PHP程序問題最直接的反饋渠道晚碾。通過分析PHP日志可以發(fā)現(xiàn)和分析出系統(tǒng)現(xiàn)有的Bug和潛在的問題抓半。我們通過在節(jié)點部署監(jiān)控工具,實時收集PHP錯誤日志格嘁,F(xiàn)atal Error告警笛求。解決了很多問題
三、數(shù)據(jù)統(tǒng)計中心
我們有一整套數(shù)據(jù)上報的系統(tǒng)糕簿,系統(tǒng)內(nèi)各種接口調(diào)用探入、請求響應(yīng)、錯誤返回懂诗,都會上報到數(shù)據(jù)統(tǒng)計中心蜂嗽。我們以報表的形式展現(xiàn)出來,可以很方便的看到每個模塊殃恒,每個接口的可用性植旧,成功率,數(shù)據(jù)規(guī)模离唐。根據(jù)數(shù)據(jù)病附,我們還做了成功率告警,當接口成功率低于某個數(shù)值亥鬓,比如99.99%時就會發(fā)送短信報警完沪。還有歷史數(shù)據(jù)對比報警,當發(fā)現(xiàn)今日數(shù)據(jù)與往期數(shù)據(jù)差距較大時贮竟,可能是系統(tǒng)出現(xiàn)了問題,會及時進行報警较剃。
四咕别、硬件系統(tǒng)報警
我們有一套工具,來監(jiān)控每個服務(wù)器節(jié)點的CPU写穴、硬盤惰拱、內(nèi)存、網(wǎng)卡流量信息,以及其他系統(tǒng)關(guān)鍵參數(shù)的信息偿短。并以圖表方式提供展示欣孤,方便了解服務(wù)器運行情況。每次新版本昔逗,或新功能上線降传,都通過這些信息來感知訪問量變化,以及機器的負載情況勾怒。
五婆排、容災(zāi)工具
當一組Server中其中一臺出現(xiàn)問題時,會及時發(fā)現(xiàn)笔链,并踢掉段只。