作者簡介
樑飛 百度高級研發工程師
負責百度雲監控(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所在地域的運營商接入設備→百度站點服務(具體細節可以參看文章《百度網絡監控實戰:獵鷹一戰成名》)。
圖 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時代 | 運維演進
↓↓ 點擊"閱讀原文" 【瞭解更多精彩內容】