您好,登錄后才能下訂單哦!
IDC 機房帶寬突然從平時 100M 增加到 400M,請你分析問題所在并解決
a.真實遭受DDOS***(遇到過幾次,造成影響的不多見,其中還有***勒索的案例)。
b.內部服務器中毒,大量外發流量(這個問題老男孩接警5次以上)
c.網站元素(如圖片)被盜連,在門戶頁面被推廣導致大量流量產生(接警3次以上)
d.合作公司來抓數據,如:對合作單位提供了API數據接口(有合作的公司的朋友了解這個)
e.購買了CDN業務,CDN猛抓源站(這個次數也不少)。
f.其他原因還有一些,不普遍就不提了。
這類問題基本都是緩存在CDN的數據被頻繁訪問引起的。解決方法見結尾案例。
可能原因如公司做推廣,大量數據訪問,熱點數據cache里不全。或CDN問題導致數據回源(有關CDN回源率問題及提升回源率經驗,以后再和大家分享)。影響就是帶寬高,后端靜態服務器及圖片及存儲壓力大
( 解決辦法見老男孩的7層門戶網站架構案例文章http://oldboy.blog.51cto.com/2561410/736710)
分析了問題的可能原因,就好比較排查了。
DDOS問題的解決老男孩已經寫了原創文章(http://oldboy.blog.51cto.com/2561410/845349),提供了17條解決經驗思路,供大家參考,這里就不提了,那么實際上遭受真實DDOS***并產生影響的并不是最常見的。
這個問題的解決比較簡單,可能有的朋友說,看看服務器流量,哪個機器帶寬高處理下就好了。其實不然,實際解決比這復雜得多,帶寬打滿,所有監控都是看不到的。
比較好的思路,是聯系機房確定機房自身無問題后(機房一般沒法幫我們的),請機房斷開連接外部IP服務器的網線,如負載均衡器,僅保留××× SERVER,然后斷掉內部服務器出網光關的線路,切斷外發流量源頭。
接下來查看監控流量服務,判斷外發流量的服務器,然后進行處理。
其實,這個問題的發生及快速定位和很多公司的運維規范、制度關系很大,老男孩在給一些公司做運維培訓分享時發現這個問題很嚴重(表象很好,內部運維規范、制度欠缺很多),大家都討論的很深入,實際用的還是和聊的有差距。。
比如有的公司開發直接FTP連接隨時發布代碼,或者由開發人員負責定時多次上線。而運維人員又不知曉,結果導致問題發生定位時間長,這點建議各公司的老大多思考下。
老男孩的運維思路是,如果把網站機房比喻為一座房子,那首先要堵住后門(內部),其次是監控好前門(做好安全,留個小窗戶給外面人看,即80端口服務,同時安排站崗值班的)。
網站的無休止的隨時隨意發布代碼,對網站的穩定影響是至關重要的。對運維人員對故障的定位快慢也很關鍵。根據老男孩不完全調查,約50%以上的重要運維故障都是程序代碼導致的,這也是老男孩給企業做培訓分享時,灌輸建議CTO的,多把網站穩定的責任分給開發,而不是運維。如果這個思想不扭轉,網站不穩定狀況就難以改變。
這個屬于網站的基本優化了,apache,lighttpd,nginx都有防盜鏈的方案,必須要搞。說到這也提個案例,老男孩的一個學生,到了企業工作,發現人家網站沒有防盜鏈,結果上來沒有周知老大,直接做防盜鏈了,然后美滋滋的當時還給我留言,說給公司搞防盜鏈了,很有成就,結果導致公司對外合作的業務,都是小叉子了,幸虧發現的及時沒出大問題。
最常見的就是購買CDN服務,如:CDN新建一個節點(可能數十機器),直接來我們IDC原戰來抓數據(有的做好點的夜里來抓)。把原站抓的流量暴漲,嚴重的導致服務宕機。幾家CDN公司,都有過這樣的問題。這點希望CDN公司看到了,能改善,畢竟用戶上帝嘛。
當然和電信,聯通,GOOGLE,BAIDU,詞霸等公司的合作,也會有流量暴高的情況,這里面包括了為合作的站搜索引擎爬蟲爬數據的問題。有時雖然帶寬流量不高,但是服務器或數據庫撐不住了,搜索引擎專門喜歡爬我們的站內搜索,DISCUZ,CMS等早期的開源程序的搜索都是全站like %%方式去數據庫搜索的,幾個爬蟲過來,直接就掛掉了,當然這不是本文要討論的,解決方案以后再聊。
上面的幾點比較常見,其他原因就不多見了,因此,作罷,打這么多字真不輕松啊。
下面的例子適合于網站流量很高,但是,還沒達到全網癱瘓的嚴重地步時的解決方案,適合我們自己的IDC機房及CDN業務(如果是CDN,那么,分析處理可以交給CDN,自己下載CDN日志分析也可)。
范例7:分析圖片服務日志,把日志(每個圖片訪問次數圖片大小的總和)排行,取top10,也就是計算每個url的總訪問大小
說明:范例7的生產環境應用:這個功能可以用于IDC及CDN網站流量帶寬很高,然后通過分析服務器日志哪些元素占用流量過大,進而進行優化裁剪該圖片(見老男孩發布的《淘寶的雙十一超大流量應對文章點評》),壓縮js等措施。
本題需要輸出三個指標: 【訪問次數】 【訪問次數單個文件大小】 【文件名(可以帶URL)】
解答:
測試數據
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 "-" "-"
因為我們要的最終結果是某個文件的訪問次數和消耗的流量,所以考慮建立以文件名為索引的兩個數組,一個存儲訪問次數,一個保存消耗的流量,這樣當使用awk按行遍歷文件時,對次數數組+1,同時對流量數組進行文件大小的累加,等文件掃描完成,再遍歷輸出兩個數組既可以得到該文件的反問次數和總的流量消耗。
[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
以上轉載于李導,感謝李導辛勤付出。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。