站點監控 | 網站健康檢查的外科醫生

640?wx_fmt=gif

作者簡介

樑飛    百度高級研發工程師

640?wx_fmt=png

負責百度雲監控(BCM)系統的研發和可用性建設相關工作,在雲監控、系統可用性方面有廣泛的實踐經驗。


乾貨概覽

當今的互聯網上,有成千上萬個網站,提供着各種各樣的服務,有電商、搜索、新聞、娛樂、在線教育等等,用戶根據所需進行瀏覽和訪問。網站做爲網上服務的載體,穩定性至關重要,如果網站異常了,勢必會影響諸多用戶,給網站造成具大的流量損失。因此對於網站的維護者而言,第一時間發現網站的異常至關重要。

站點監控可實現對目標站點作實時的監控,如同外科醫生一樣,可對網站進行全方位的檢查,在網站異常時及時通知用戶進行止損操作。接下來將分上下兩篇介紹站點監控,本文主要介紹站點的組成、站點的工作原理以及站點監控的功能需求。

首先我們來探討一個概念

網站是什麼?


A website is a collection of related web pages, including multimedia content, typically identified with a common domain name, and published on at least one web server.

A website may be accessible via a public Internet Protocol (IP) network, such as the Internet, or a private local area network (LAN), by referencing a uniform resource locator (URL) that identifies the site.

以上是維基百科對網站的定義:網站是一個網頁資源的集合,這些資源部署在Web服務器上並通過域名進行標識,即一個站點包括網頁、域名、Web Server(服務器)。

從狹義上來講,一個對外提供服務的Web應用程序即可稱爲網站,我們可以通過統一資源定位符URL來訪問該應用程序提供的靜態或動態網頁資源。

而從廣義上講,各種對外提供文件下載、流媒體傳輸、郵件服務等應用服務器,以各種形式爲用戶提供的多樣網絡服務,均可稱之爲站點。

那麼,網站異常的場景是什麼?


網站由域名、網頁、Web Server(Web服務器)組成,網站正常與否,也就是域名是否可以正常解析,Web服務器是否可以正常連通以及是否可以正常工作,網頁是否可以返回預期的內容。

圖1以用戶訪問百度服務的請求爲例,描述了用戶的請求在到達這個百度服務地址之前,依次會經過用戶所在地域的網絡運營商接入設備→運營商骨幹網鏈路→百度IDC所在地域的運營商接入設備→百度站點服務(具體細節可以參看文章《百度網絡監控實戰:獵鷹一戰成名》)。

640?wx_fmt=png

圖 1  用戶訪問百度服務的請求示例

從物理鏈路來講,在用戶請求到達目標網站之前,任何一個服務或鏈路出現故障,都有可能會導致用戶訪問目標服務的體驗受到影響(如延時變大或者訪問失敗),因此,站點監控中我們需要關注DNS解析,運營商網絡,站點服務三個環節。網站異常的場景如下:

1場景一

  • 域名被劫持了!進入了其他網站界面?

2010年,百度www.baidu.com的域名遭到不法分子惡意篡改,導致全球多處用戶不能訪問百度網站,故障持續數小時,給用戶帶來很大的困擾,也給百度造成了巨大的流量損失。

2場景二

  • 在北京的用戶訪問正常,廣州的用戶卻無法訪問?

用戶到Web服務器間鏈路連接關係複雜,一次簡單的請求涉及網絡設備或鏈路不計可數,任何一處的設備或鏈路故障都有可能影響到某一區域的用戶請求。

3場景三

  • 網站響應速度慢,網站訪問超時

假如您是某購物網站的維護者,網站的訪問量意味着訂單量和收入。若某一時刻網站訪問量增大,網站服務器負載已無法承接流量,出現大量的訪問超時,嚴重影響用戶體驗,作爲網站維護者,您如何第一時間感知以避免損失呢?

4場景四

  • 網站中頁面可以打開,但頁面內容展示異常

通常此種場景爲網站內部某些處理邏輯或數據存在異常,單純關注頁面是否可訪問無法發現這種錯誤,需要對網站頁面或接口的返回內容進行監控。

5場景五

  • 視頻網站打開正常,裏面的視頻都播放不了

除了常見的HTTP頁面/接口請求,文件下載、流媒體傳輸、郵件服務或針對客戶端定製的TCP、UDP接口異常,均會對用戶造成影響。

網站異常對用戶的影響如此之大

我們該如何應對?


通過對網站異常場景的分析,我們需要一款站點監控產品,通過模擬真實用戶訪問情況,探測站點的DNS 解析、分地域/運營商連通性、站點性能等問題。站點監控需要具備如下幾方面能力:

1支持域名解析監控

通過對域名進行DNS解析,判斷是否發生DNS劫持,避免DNS問題導致網站無法正常提供服務。

2支持不同地域/運營商/網絡制式探測

通過部署在全國的站點監控探測點,模擬不同終端用戶的訪問行爲,獲得全國各地域(省份/城市)、運營商(電信/聯通/移動/教育網/...)、網絡制式(固網/2G/3G/4G)到目標地址的訪問數據,從而知曉各地域、各運營商的網絡質量,供網站維護者針對性的進行網絡接入優化。

3支持採集多種指標數據

網站性能是體現網站體驗的重要因素,我們通過獲取目標站點的DNS域名解析時間、建連時間、下載時間、響應時間等指標來分析站點服務的性能瓶頸,優化站點的服務質量。

4支持網站返回內容校驗

通常,一個站點提供多種服務,對外呈現多種不同的數據和頁面。我們需要模擬用戶的請求,並校驗返回的結果是否符合預期,來監控站點服務是否正常。爲了模擬用戶請求,針對HTTP請求需要支持POST/GET方法、多種請求參數、User-Agent等Header參數、Cookie等參數配置;爲了校驗返回結果,需要提供HTTP Code判斷、返回內容匹配校驗等支持。

5支持不同協議類型

一個站點服務可支持多種協議的訪問,我們需要從應用層、傳輸層對目標站點進行探測:應用層需要支持HTTP/HTTPS/FTP/SMTP/DNS等,傳輸層需要支持TCP/UDP。


總  結

站點監控是針對站點進行監控的產品,本文從總體上介紹了站點的工作原理以及站點監控的功能需求。如何實現這些功能,以滿足站點的監控需求,我們將在下一篇文章中具體介紹。

閱讀推薦

  運維實踐


智能運維架構 | 架構集成 | 網絡判障 | 監控數據採集 | 監控報警 | 網絡異常 | 分佈式監控系統 | 數據可視化 | 單機房故障自愈 | TSDB數據存儲 | 異常檢測 | 流量異常檢測 | 複雜異常檢測 | 報警風暴 | 實時計算 | 故障診斷 | 日誌監控 | 網絡監控可視化 | HBase實踐 | 多維度數據

  運維產品

百度雲BCM | 企業級運維平臺 | 基礎設施管理引擎 | 運維知識庫 | 通告平臺 | 百度名字服務 | 業務部署 | 數據配送 | 集羣控制系統 | 外網監控 | 內網監控 | 部署變更 | 配置管理

  精品推薦

AIOps全解析 | AIOps中的四大金剛 | 智能運維 | AIOps時代 | 運維演進

640?wx_fmt=jpeg

640?wx_fmt=gif

↓↓ 點擊"閱讀原文" 【瞭解更多精彩內容】 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章