這篇文章主要為大家展示了“互聯網中監控的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“互聯網中監控的示例分析”這篇文章吧。
當程序被交付,部署到生產環境,才是其生命周期中最長的部分的開始。人們需要了解生產環境是否一切正常,監控需求自然而然產生。
互聯網發展過程中涌現大量監控相關的工具/系統,Ganlia, Zabbix, RRDTools, Graphite,各自在不同的層面為“是否正?!碧峁┐鸢?。
監控本身,無論是業界對監控的認知,監控工具/系統自身的能力,也在以下兩個方向演進著:
黑盒到白盒
資源到業務
這個階段監控的愿景是很明確的,如何落地則各顯神通。
直到 Etsy 于 2011 年通過博客公開了他們的 監控實踐,利用 StatsD(已開源),以非常簡單統一的方式,實現資源/業務層面的數據采集/存儲/分析。后來的監控系統,尤其是基于 metrics 的監控系統,大多受過 StatsD 的啟發和影響。
互聯網工程界,Twitter 應該是最早提出可觀測性 的組織。在這系列文章中,Twitter 集中闡述了他們的可觀測性技術棧,其中包括了 Zipkin,Google Dapper 的開源實現。
如前言所說,本文不糾結于幾個名詞之間的包含關系。
拋開這些名詞的辯論,可觀測性相對于過去監控,最大的變化就是系統需要處理的數據,從 metrics 為主,擴展到了更廣的領域。綜合起來,大約有幾類數據被看作是可觀測性的支柱(pillar)
metrics
logging
tracing
events
因此,一個現代化的監控系統/可觀測性工程系統,也就必須具備妥善存儲以上幾種數據的能力。
Metrics
Metrics,通常是數值類型的時間序列數據。這類需求的存在如此廣泛,以至于衍生了專門服務于這個目標的數據庫子類,時間序列數據庫,TSDB。
TSDB 經歷了大約如下幾個方面的重要演進
數據模型。描述信息從 metric naming 中剝離出來,形成 tag?,F代的 tsdb 通常都已采用 tag 化的數據模型。
數據類型。從簡單的數值記錄,到為不同場景衍生出 gauge, counter, timer 等等更多的數據類型
索引結構。索引結構跟數據模型密切相關,在 tag 為主的現代 tsdb, 倒排索引已經是主流索引結構。
數據存儲。從 rrdtool 寫環形隊列到文件的時代,到 OpenTSDB 這樣自行編解碼寫入底層數據庫,再到 Facebook 提出的時序數據壓縮算法,通常會是若干種技術的綜合使用,并且針對不同的數據類型采用不同方案
Metrics 存儲,或者是 TSDB 的研究和演進,我們會有另外的文章專門介紹。
logging
logging 通常會是工程師定位生產環境問題最直接的手段。日志的處理大約在如下幾個方面進行演進
集中存儲/檢索。使得工程師免于分別登陸機器查看日志之苦,日志被統一采集,集中存儲于日志服務,并提供統一的檢索服務。這個過程牽扯到例如日志格式統一,解析,結構化等等問題。
日志的監控。
原文中的關鍵字,例如 error, fatal 大概率意味著值得關注的錯誤產生
從日志中提取的 metrics,例如 access log 中攜帶的大量數據,都可以被提取成有用的信息。至于提取的手段,有的通過客戶端在日志本地進行解析,有的在集中存儲過程中進行解析。
tracing
隨著互聯網工程日漸復雜,尤其是微服務的風潮下,分布式 tracing 通常是理解系統,定位系統故障的最重要手段。
在存儲層面,tracing 已經有相對明確的方案,無論是 OpenZipkin,還是 CNCF 的 Jaeger ,都提供幾乎開箱即用的后端軟件,其中當然包括存儲。
Tracing 的存儲設計主要考慮
1. 稀疏數據:tracing 數據通常是稀疏的,這通常有幾個原因
不同業務的 trace 路徑通常不同,也就是 span 不同,因而稀疏
同種業務的 trace ,在不同內外部條件下,路徑也不同。例如訪問數據庫,是否命中緩存,都會產生不同的 span 鏈
訪問正常/異常的 trace ,產生不同 span
2. 多維度查詢:通常的解決思路
二級索引:在以 HBase, Cassandra 為基礎的方案中比較常見
引入倒排索引,在二級索引方案無法滿足全部查詢請求時,可能會引入 Elasticsearch 輔助索引,提升查詢靈活性
Events
同樣是一個難以定義,但是很容易描述的術語。我們把,一次部署,一次配置變更,一次dns 切換,諸如此類的變更,稱為事件。
它們通常意味著生產環境的變更。而故障,通常因為不恰當的變更引起。
對 events 的處理主要包括
集中存儲:事件種類很多,較難歸納共同的查詢緯度,所以倒排索引在這種無法事先確定查詢緯度的場景下,是非常合適的存儲結構
Dashboard:以恰當的方式,把事件查詢 /展示出來。上文提到 Etsy 的博客中,展示了很好的實踐方法,使得工程師能夠通過 dashboard ,非常輕松確認網站登陸失敗,與登錄模塊部署事件之間的關系。
以上是“互聯網中監控的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。