WEB系統(tǒng)問題排查

一般問題出現(xiàn)珍手,首先最重要的是定位問題的影響范圍。以制定不同的解決方案辞做。

流程

  • 首先:估計錯誤影響范圍

當問題出現(xiàn)琳要,第一反應是估計影響范圍。如當有用戶反饋頁面白屏秤茅,打不開時稚补。需第一時間確認影響范圍。具體操作流程如下:

  1. 頁面pv數(shù)據(jù)嫂伞,接口調用數(shù)據(jù)或者其他可以判斷影響范圍的數(shù)據(jù)有沒有出現(xiàn)斷崖式的下跌
  2. 根據(jù)是否斷崖下跌制定不同的方案

pass: 當出現(xiàn)斷崖下跌孔厉,整個服務不可用時,啟動緊急方案帖努,如切換到臨時頁面(404或其他頁面)撰豺。否則,查找問題拼余,緊急排錯

  • 然后:查看服務器各種指標

當問題是局部發(fā)生的時候污桦。則需進行排查。首先查看服務器各個集群的狀態(tài):

  1. linux服務器的運行情況(機房斷電匙监,斷網(wǎng))凡橱,負載(cpu,內存亭姥,硬盤等)稼钩,網(wǎng)絡(網(wǎng)絡是否阻塞或斷網(wǎng))

  2. 各支撐集群的狀態(tài),MySQL集群機器的狀態(tài)(是否有實例斷開达罗、當機坝撑,負載過高,主從延遲的情況)粮揉,redis集群(redis各個機器的運行情況巡李,是否有redis崩潰等),或者其他支撐服務的運行狀態(tài)(memcache扶认,elasticsearch侨拦,mongo等)

  • 其次:排查日志

日志的排查不能是漫無目的的,需要根據(jù)問題的情況及對業(yè)務的了解辐宾,先后的去排查可能相關的日志狱从。

  1. PHP錯誤日志

  2. apache日志

  3. nginx日志

  4. mysql的慢查詢日志

  • 最后

問題一般在如上的流程中都能定位出來。如果定位不出來:

==讓自己冷靜下來叠纹,停下來一分鐘矫夯,想一想問題,千萬不要慌亂吊洼,并在沒有思路的情況下操作训貌,避免二次事故==

試試以下方案:

1、根據(jù)異常的狀態(tài)進行合理的推斷和定位問題(一般靠經(jīng)驗和對業(yè)務的熟悉程度)冒窍,
具體的操作一般也是依據(jù)如上的流程

2递沪、聯(lián)系最近的系統(tǒng)操作進行判斷(如機器切換,版本升級综液,代碼發(fā)布款慨,網(wǎng)絡切換),來定位問題

pass: 一般的線上問題排查谬莹,如果是簡單的問題檩奠,直接可以定位到的桩了,則不需要如上的流程。

  • 解決問題

當影響范圍或這錯誤已經(jīng)找到或者沒找到的情況下埠戳。需要在最短的時間內恢復系統(tǒng)(不一定是100%恢復井誉,但要保持基本可用),如:

  1. 整站崩潰整胃,要緊急切換到備用的404頁面

  2. 局部功能導致的系統(tǒng)異常颗圣,可直接下掉該功能,保持基本功能異常

如等級系統(tǒng)異常導致的整站異常屁使,則可下掉等級系統(tǒng)在岂,所有用戶等級全部默認1級,以保持系統(tǒng)基本功能可用

問題解決的時間決定了當前的處理方案的不同蛮寂。需根據(jù)業(yè)務進行討論蔽午。如時間長,則需要怎么解決用戶訪問酬蹋,用戶應該看什么祠丝,需要根據(jù)自己的業(yè)務進行討論。 時間短除嘹,在這么短的時間內用戶應該看什么写半,也是一樣的道理

  • 延伸

從上面的處理過程會得到一個提醒:

==線上系統(tǒng)的備用方案非常重要,系統(tǒng)需要有演戲尉咕,有緊急情況下的備用方案==

工具推薦

上面的排查過程叠蝇,需要在一系列工具的配合下才能準確,快速的定位問題年缎,以下列一下可能需要用的工具悔捶。

==linux命令是最好用的工具==

pass: 以下工具是以服務是以多臺機器(服務集群)的情況下推薦使用的,如果是單機或者2单芜,3太機器蜕该,則直接使用linux的命令行工具即可。

  • 訪問情況分析

業(yè)務的訪問情況分析洲鸠,如pv堂淡,可以用百度統(tǒng)計等第三方統(tǒng)計平臺(對于上述的情況,這種第三方統(tǒng)計平臺是足夠使用的)扒腕。

接口的訪問情況绢淀,可能看起來比較麻煩。一般接口的訪問情況瘾腰,可以根據(jù)入口服務器(如nginx或apache)的訪問日志來做一個簡單的估計和查看皆的。但是如果是分布式的機器的情況下,就比較麻煩蹋盆。建議搭建ELK日志平臺费薄,通過對日志的聚合統(tǒng)計就可以做到接口訪問情況的分析硝全。

  • 運維工具

zabbix:是一個基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡監(jiān)視功能的企業(yè)級的開源解決方案±懵眨可以監(jiān)控到各種服務器信息伟众。

當然目前運維屆有各種監(jiān)控工具,如單獨監(jiān)控mysql集群的工具拌倍,redis的集群監(jiān)控工具等都是可以用的。各個公司需要根據(jù)自己的情況噪径,選用不同的工具柱恤。畢竟如果只需要監(jiān)控mysql,那用zabbix就太重了找爱。

目的是一致的:快速梗顺,簡便的看到服務的運行信息,并具有報警功能

  • 日志工具

業(yè)界目前比較流行的有ELK Stack车摄。用于一站式的日志采集寺谤,存儲,查看和分析吮播”淦ǎ可以集中,方便的觀察到各臺服務器的日志情況意狠,又不需要每個人都開通線上機器的權限粟关,也方便日志的查詢和搜索

擴展

在一般情況下(業(yè)務系統(tǒng)較簡單,機器不多)环戈。linux的命令是最方便快捷的方法闷板。配合shell的sed或awt語法,可以做很多事情院塞。

下面列一下一些常用的命令或工具:

一遮晚、web工具
1、xdebug拦止、xhprof县遣;
2、PHP慢日志汹族;
3艺玲、查看php-fpm、httpd進程數(shù)鞠抑,必要時使用strace饭聚、lsof。

二搁拙、Mysql工具
1秒梳、mysqlsla:配合mysql的全日志法绵,在測試環(huán)境中,可以準確地分析每個流程執(zhí)行sql語句酪碘,排查索引朋譬、業(yè)務邏輯等問題;
2兴垦、mk-query-digest+tcpdump:實時監(jiān)測數(shù)據(jù)庫端口(比如3306)徙赢,截取正在sql語句。

三探越、linux自帶的命令
1狡赐、top:這個基本可以看出資源使用情況,可第一步先判定問題是“CPU密集型”或者“IO密集型”钦幔;
2枕屉、iostat:分析磁盤IO
3、vmstat:可分析內存的使用情況

四鲤氢、各類日志幫助分析問題
1搀擂、web日志:很多問題可以在錯誤日志中找到提示,非常有用
2卷玉、mysql日志:mysql的錯誤日志哨颂、慢日志
3、php慢日志:也有一定的幫助相种,我碰到較多的是連接DB的時候慢了咆蒿,慢日志不用時必須關閉

``
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蚂子,隨后出現(xiàn)的幾起案子沃测,更是在濱河造成了極大的恐慌,老刑警劉巖食茎,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蒂破,死亡現(xiàn)場離奇詭異,居然都是意外死亡别渔,警方通過查閱死者的電腦和手機附迷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哎媚,“玉大人喇伯,你說我怎么就攤上這事〔τ耄” “怎么了稻据?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長买喧。 經(jīng)常有香客問我捻悯,道長匆赃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任今缚,我火速辦了婚禮算柳,結果婚禮上,老公的妹妹穿的比我還像新娘姓言。我一直安慰自己瞬项,他們只是感情好,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布何荚。 她就那樣靜靜地躺著囱淋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪兽泣。 梳的紋絲不亂的頭發(fā)上绎橘,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天胁孙,我揣著相機與錄音唠倦,去河邊找鬼。 笑死涮较,一個胖子當著我的面吹牛稠鼻,可吹牛的內容都是我干的。 我是一名探鬼主播狂票,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼候齿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了闺属?” 一聲冷哼從身側響起慌盯,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掂器,沒想到半個月后亚皂,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡国瓮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年灭必,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乃摹。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡禁漓,死狀恐怖,靈堂內的尸體忽然破棺而出孵睬,到底是詐尸還是另有隱情播歼,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布掰读,位于F島的核電站荚恶,受9級特大地震影響撩穿,放射性物質發(fā)生泄漏。R本人自食惡果不足惜谒撼,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一食寡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧廓潜,春花似錦抵皱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至悼院,卻和暖如春伤为,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背据途。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工绞愚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人颖医。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓位衩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親熔萧。 傳聞我的和親對象是個殘疾皇子糖驴,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內容