作過運維的小夥伴都知道,當用戶瀏覽器上出現白屏、應用端API獲得500錯誤
、取到數據爲空是很是崩潰的一件事情。500錯誤是服務器端很是常見的一個錯誤,有多是開發時致使的語法錯誤,也有多是文件引用致使的錯誤。當用戶反饋了 500 錯誤以後,而咱們運維童鞋們面對一個集羣的後端服務器,若是沒有方便的工具管理和同步,下手查找問題,是一個即耗時又費力的痛苦過程。 在最開始的時候,每次遇到這種狀況,咱們運維同窗們就分別登陸幾臺Web服務器,去查找可能記錄錯誤日誌的地方,找出錯誤的真兇,以讓開發童鞋們來改進。 以下圖這個錯誤,就是因爲在引用微信JS-SDK
開發時,因爲每一個頁面都要作JS-SDK權限受權,可是在其中一個頁面忘記了導入微信的JS-SDK
包,致使了大量的 500錯誤
。這種找錯誤的過程,最開始幾臺機器還勉強,幾分鐘能找到,到了後來變成了幾十臺,已經變成了一項誰也不想幹的工做了。程序員
圖1、從日誌中尋找出現 500 錯誤的真兇 後來公司的負載均衡服務器Haproxy 作了會話保持,咱們就只好聯繫用戶,讓部分懂點技術的用戶,幫咱們用Chrome 這類開發者工具,抓一下包,看看Cookie,從Cookie 的SERVERID 字段就能知道,這個用戶的訪問,可能來自自於哪臺機器,這樣定位起來,方便了不少,可是時間也每每要10分鐘以上,由於還要跟用戶電話,大部分用戶並不懂得如何操做。以下圖二,從正常請求,能夠獲得此時訪問的 SERVERID,就能夠知道出錯的頁面和日誌,也會在這臺機器上。 圖2,經過SERVERID肯定服務器 那有沒有什麼更快的辦法呢?有倒時有,好比本身開發一套系統,從各臺服務器收集日誌,在有一個集中的地方,能查看。可是咱們運維童鞋開發能力還不太能跟得上,公司的開發童鞋老闆也巴不得拉來 7x16小時開發產品。web
那到底還有木有什麼更好的辦法啊?後端
在圈子裏有人推薦OneAPM!其實最開始我是拒絕的,由於通常來說,裝這種在生產環境上,比較麻煩,而且可能會影響性能,還都須要埋代碼。真到有一天,微博上又有人在討論OneAPM,我有點心動了。瀏覽器
因而乎,對於懂點開發、喜歡鼓搗新玩意的非典型運維工程師,三下五除二從OneAPM註冊了帳號,下載了安裝包,安裝到了咱們的測試服務器上。好傢伙,我還啥也沒有幹,把程序剛剛跑起來,在OneAPM 的管理控制檯上就看到了數據,真是福音啊,不要埋代碼,真的不要埋代碼!!!服務器
DUANG — 簡直就是有特技!通過幾天的實驗,並向領導申請在生產環境上安裝,領導看到了是優才網伍老師推薦,正好是認識的熟人,因此特地微信溝通了一下,知道是靠譜的。就讓我讓裝到生產環境上去了。 在實際的使用過程當中,OneAPM
確實也幫了咱們的大忙。使用了幾個月了,以爲真的是減輕了咱們運維童鞋工做,同時也很是快速地定位問題,開發童鞋們也很感激。下面就舉一個真實環境中的栗子。微信
下面就是我從線上摘出來的典型的例子。線上出了問題,一分鐘後,在OneAPM 的管理後臺就看到了錯誤消息。如圖三 微信開發
還以上邊的WxJSSDK 沒有找到爲例,線上出問題時,使用瀏覽器抓包,獲得的是以下結果,由於線上是關閉了日誌輸出的,只看到白白的一片,抓包則是 500 錯誤。負載均衡
! 如今不用一臺臺上去檢測了,一分鐘後,OneAPM 後臺就收到了錯誤信息報告。點擊去看以下:運維
錯誤信息報告代表,這是一個很是嚴重的PHP錯誤,就是在作微信開發時,要引用微信官方的SDK,開發童鞋給漏掉了,致使出現了找不到類 ’WxJSSDK’ 這樣的錯誤,Nginx 接到這樣的錯誤,會向客戶端返回 500
。 我直接把OneAPM錯誤信息報告發給開發童鞋,開發童鞋心照不宣,不再會跟我糾纏說誰誰的問題了! 開發童鞋還告訴了我修復的辦法:引入文件就行了,特地找到了這段代碼參考下圖。工具
有了OneAPM就是這麼爽,我也不用再用終端爬到每臺機器上去確認,更不用擔憂隨着公司的業務發展,加到多少臺Web和API服務器。
我須要擁有的,就是一個OneAPM 的管理後臺!
每次公司內部的技術分享,我都會從OneAPM拉出一些案例,也會提供給開發主管一些素材,總結程序員可能常犯的錯誤,爲此,受到了老闆的獎勵!至於啥獎勵,你們懂的。平時參加一些業內的技術交流,也會向他們推薦OneAPM,已經成爲了OneAPM的忠粉,他們團隊裏作支持的孟智童鞋還和我成爲了好朋友!
OneAPM 的服務是頗有特點的,可能這種服務還在早期,國內好像尚未相似的應用,因此在後臺和功能上,也有一些不足之處,趁這個機會也吐個槽,但願能受到開發團隊的關注 ,並改進。 第1、 因爲我常常用,因此OneAPM帳號長期處於登陸狀態,可是每次敲入OneAPM.com 都進到了首頁,搞技術的都懂啊,大家的產品經理莫非是臨時工?
第2、最須要改進的,就是看錯誤日誌的面板,搜索、錯誤分級都尚未作好。幸虧我用熟悉了,不然新用戶會很暈的,欲知詳情,請看下圖。
第3、 若是作了錯誤分級,我最想要的就是報警了,就像DNSPod ,每一次域名出故障,連不上,都短信、微信、郵件就來了,據說大家拿了7000萬啊,在出嚴重錯誤的時候,能不能給我來個短信啊,我就不用天天掛着這個後臺了,有木有!等到這些有了,即時未來有可能收費,我也會積極向領導爭取滴!