您好,登錄后才能下訂單哦!
IDC 機(jī)房帶寬突然從平時 100M 增加到 400M,請你分析問題所在并解決
a.真實(shí)遭受DDOS***(遇到過幾次,造成影響的不多見,其中還有***勒索的案例)。
b.內(nèi)部服務(wù)器中毒,大量外發(fā)流量(這個問題老男孩接警5次以上)
c.網(wǎng)站元素(如圖片)被盜連,在門戶頁面被推廣導(dǎo)致大量流量產(chǎn)生(接警3次以上)
d.合作公司來抓數(shù)據(jù),如:對合作單位提供了API數(shù)據(jù)接口(有合作的公司的朋友了解這個)
e.購買了CDN業(yè)務(wù),CDN猛抓源站(這個次數(shù)也不少)。
f.其他原因還有一些,不普遍就不提了。
這類問題基本都是緩存在CDN的數(shù)據(jù)被頻繁訪問引起的。解決方法見結(jié)尾案例。
可能原因如公司做推廣,大量數(shù)據(jù)訪問,熱點(diǎn)數(shù)據(jù)cache里不全?;駽DN問題導(dǎo)致數(shù)據(jù)回源(有關(guān)CDN回源率問題及提升回源率經(jīng)驗(yàn),以后再和大家分享)。影響就是帶寬高,后端靜態(tài)服務(wù)器及圖片及存儲壓力大
( 解決辦法見老男孩的7層門戶網(wǎng)站架構(gòu)案例文章http://oldboy.blog.51cto.com/2561410/736710)
分析了問題的可能原因,就好比較排查了。
DDOS問題的解決老男孩已經(jīng)寫了原創(chuàng)文章(http://oldboy.blog.51cto.com/2561410/845349),提供了17條解決經(jīng)驗(yàn)思路,供大家參考,這里就不提了,那么實(shí)際上遭受真實(shí)DDOS***并產(chǎn)生影響的并不是最常見的。
這個問題的解決比較簡單,可能有的朋友說,看看服務(wù)器流量,哪個機(jī)器帶寬高處理下就好了。其實(shí)不然,實(shí)際解決比這復(fù)雜得多,帶寬打滿,所有監(jiān)控都是看不到的。
比較好的思路,是聯(lián)系機(jī)房確定機(jī)房自身無問題后(機(jī)房一般沒法幫我們的),請機(jī)房斷開連接外部IP服務(wù)器的網(wǎng)線,如負(fù)載均衡器,僅保留××× SERVER,然后斷掉內(nèi)部服務(wù)器出網(wǎng)光關(guān)的線路,切斷外發(fā)流量源頭。
接下來查看監(jiān)控流量服務(wù),判斷外發(fā)流量的服務(wù)器,然后進(jìn)行處理。
其實(shí),這個問題的發(fā)生及快速定位和很多公司的運(yùn)維規(guī)范、制度關(guān)系很大,老男孩在給一些公司做運(yùn)維培訓(xùn)分享時發(fā)現(xiàn)這個問題很嚴(yán)重(表象很好,內(nèi)部運(yùn)維規(guī)范、制度欠缺很多),大家都討論的很深入,實(shí)際用的還是和聊的有差距。。
比如有的公司開發(fā)直接FTP連接隨時發(fā)布代碼,或者由開發(fā)人員負(fù)責(zé)定時多次上線。而運(yùn)維人員又不知曉,結(jié)果導(dǎo)致問題發(fā)生定位時間長,這點(diǎn)建議各公司的老大多思考下。
老男孩的運(yùn)維思路是,如果把網(wǎng)站機(jī)房比喻為一座房子,那首先要堵住后門(內(nèi)部),其次是監(jiān)控好前門(做好安全,留個小窗戶給外面人看,即80端口服務(wù),同時安排站崗值班的)。
網(wǎng)站的無休止的隨時隨意發(fā)布代碼,對網(wǎng)站的穩(wěn)定影響是至關(guān)重要的。對運(yùn)維人員對故障的定位快慢也很關(guān)鍵。根據(jù)老男孩不完全調(diào)查,約50%以上的重要運(yùn)維故障都是程序代碼導(dǎo)致的,這也是老男孩給企業(yè)做培訓(xùn)分享時,灌輸建議CTO的,多把網(wǎng)站穩(wěn)定的責(zé)任分給開發(fā),而不是運(yùn)維。如果這個思想不扭轉(zhuǎn),網(wǎng)站不穩(wěn)定狀況就難以改變。
這個屬于網(wǎng)站的基本優(yōu)化了,apache,lighttpd,nginx都有防盜鏈的方案,必須要搞。說到這也提個案例,老男孩的一個學(xué)生,到了企業(yè)工作,發(fā)現(xiàn)人家網(wǎng)站沒有防盜鏈,結(jié)果上來沒有周知老大,直接做防盜鏈了,然后美滋滋的當(dāng)時還給我留言,說給公司搞防盜鏈了,很有成就,結(jié)果導(dǎo)致公司對外合作的業(yè)務(wù),都是小叉子了,幸虧發(fā)現(xiàn)的及時沒出大問題。
最常見的就是購買CDN服務(wù),如:CDN新建一個節(jié)點(diǎn)(可能數(shù)十機(jī)器),直接來我們IDC原戰(zhàn)來抓數(shù)據(jù)(有的做好點(diǎn)的夜里來抓)。把原站抓的流量暴漲,嚴(yán)重的導(dǎo)致服務(wù)宕機(jī)。幾家CDN公司,都有過這樣的問題。這點(diǎn)希望CDN公司看到了,能改善,畢竟用戶上帝嘛。
當(dāng)然和電信,聯(lián)通,GOOGLE,BAIDU,詞霸等公司的合作,也會有流量暴高的情況,這里面包括了為合作的站搜索引擎爬蟲爬數(shù)據(jù)的問題。有時雖然帶寬流量不高,但是服務(wù)器或數(shù)據(jù)庫撐不住了,搜索引擎專門喜歡爬我們的站內(nèi)搜索,DISCUZ,CMS等早期的開源程序的搜索都是全站like %%方式去數(shù)據(jù)庫搜索的,幾個爬蟲過來,直接就掛掉了,當(dāng)然這不是本文要討論的,解決方案以后再聊。
上面的幾點(diǎn)比較常見,其他原因就不多見了,因此,作罷,打這么多字真不輕松啊。
下面的例子適合于網(wǎng)站流量很高,但是,還沒達(dá)到全網(wǎng)癱瘓的嚴(yán)重地步時的解決方案,適合我們自己的IDC機(jī)房及CDN業(yè)務(wù)(如果是CDN,那么,分析處理可以交給CDN,自己下載CDN日志分析也可)。
范例7:分析圖片服務(wù)日志,把日志(每個圖片訪問次數(shù)圖片大小的總和)排行,取top10,也就是計算每個url的總訪問大小
說明:范例7的生產(chǎn)環(huán)境應(yīng)用:這個功能可以用于IDC及CDN網(wǎng)站流量帶寬很高,然后通過分析服務(wù)器日志哪些元素占用流量過大,進(jìn)而進(jìn)行優(yōu)化裁剪該圖片(見老男孩發(fā)布的《淘寶的雙十一超大流量應(yīng)對文章點(diǎn)評》),壓縮js等措施。
本題需要輸出三個指標(biāo): 【訪問次數(shù)】 【訪問次數(shù)單個文件大小】 【文件名(可以帶URL)】
解答:
測試數(shù)據(jù)
59.33.26.105 - - [08/Dec/2010:15:43:56 +0800] "GET /static/p_w_picpaths/photos/2.jpg HTTP/1.1" 200 11299 "http://oldboy.blog.51cto.com/static/web/column/17/index.shtml?courseId=43" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" 59.33.26.105 - - [08/Dec/2010:15:43:56 +0800] "GET /static/p_w_picpaths/photos/2.jpg HTTP/1.1" 200 11299 "http://oldboy.blog.51cto.com/static/web/column/17/index.shtml?courseId=43" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" 59.33.26.105 - - [08/Dec/2010:15:44:02 +0800] "GET /static/flex/vedioLoading.swf HTTP/1.1" 200 3583 "http://oldboy.blog.51cto.com/static/flex/AdobeVideoPlayer.swf?width=590&height=328&url=/`DYNAMIC`/2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" 124.115.4.18 - - [08/Dec/2010:15:44:15 +0800] "GET /?= HTTP/1.1" 200 46232 "-" "-" 124.115.4.18 - - [08/Dec/2010:15:44:25 +0800] "GET /static/js/web_js.js HTTP/1.1" 200 4460 "-" "-" 124.115.4.18 - - [08/Dec/2010:15:44:25 +0800] "GET /static/js/jquery.lazyload.js HTTP/1.1" 200 1627 "-" "-"
因?yàn)槲覀円淖罱K結(jié)果是某個文件的訪問次數(shù)和消耗的流量,所以考慮建立以文件名為索引的兩個數(shù)組,一個存儲訪問次數(shù),一個保存消耗的流量,這樣當(dāng)使用awk按行遍歷文件時,對次數(shù)數(shù)組+1,同時對流量數(shù)組進(jìn)行文件大小的累加,等文件掃描完成,再遍歷輸出兩個數(shù)組既可以得到該文件的反問次數(shù)和總的流量消耗。
[root@locatest scripts]# awk '{array_num[$7]++;array_size[$7]+=$10}END{for(x in array_num){print array_size[x],array_num[x],x}}' access_2010-12-8.log |sort -rn -k1|head -10 >1.log
[root@locatest scripts]# awk '{print $7"\t" $10}' access_2010-12-8.log|awk '{S[$1]+=$2;S1[$1]+=1}END{for(i in S) print S[i],S1[i],i}'|sort -rn|head -10 >2.log [root@locatest scripts]# diff 1.log 2.log [root@locatest scripts]# cat 1.log 57254 1 /static/js/jquery-jquery-1.3.2.min.js 46232 1 /?= 44286 1 //back/upload/course/2010-10-25-23-48-59-048-18.jpg 33897 3 /static/p_w_picpaths/photos/2.jpg 11809 1 /back/upload/teacher/2010-08-30-13-57-43-06210.jpg 10850 1 /back/upload/teacher/2010-08-06-11-39-59-0469.jpg 6417 1 /static/js/addToCart.js 4460 1 /static/js/web_js.js 3583 2 /static/flex/vedioLoading.swf 2686 1 /static/js/default.js
以上轉(zhuǎn)載于李導(dǎo),感謝李導(dǎo)辛勤付出。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。