DevOps專題 | 大型企業級監控系統設計

 

10月30日,全球權威數據調研機構IDC正式發佈《IDCMarketScape: 中國DevOps雲市場2019,廠商評估》報告。京東雲憑藉豐富的場景和實踐能力,以及高質量的服務交付和平臺穩定性,取得優異出成績, 躋身「Major Players」(核心廠商)位置
京東雲DevOps能力起源於自身的業務實踐,針對京東集團的複雜業務場景打造並經受住屢次61八、11.11電商大促的嚴峻考驗,保證了高效高質的交付和對變化的靈活應對。可以支持複雜場景的自動化運維需求、實現工具鏈產品與平臺化產品結合,幫助客戶根據不一樣的需求靈活定製方案。

爲了讓你們更深刻的理解devops,瞭解京東雲devops具體的落地實踐以及如何提高效率與保障穩定性,進一步結合自身業務設計實施devops。咱們第一期將會重點爲你們介紹DevOps中的監控部分,經過了解京東雲本身的企業級監控是怎麼來設計的,來更好地理解監控系統的樣貌。mysql

監控目標

監控是運維的生命線,其目標是快速的發現問題、定位、止損(see->know->act),縮短異常MTTR,爲了達到這個目標,指望監控系統具有:nginx

  • 豐富的數據採集能力,能對監控對象能進行深度觀測。
  • 靈活的數據加工能力,好比把相關的數據匯聚起來,獲得咱們須要關注的核心數據。
  • 異常檢測能力,從最簡單的閾值判斷到各類異常檢測算法,教會機器看懂是否是出現異常了。其本質上也是一種對數據的加工能力。
  • 收到異常以後,能夠經過dashbord、趨勢圖進行問題定位,即數據的展現能力。
  • 若是作的更加深刻,能夠有根因推薦平臺,把最近的變動、關聯的告警作一些推薦,加速定位的過程。
  • 問題定位完成以後,指望把運維處理的經驗沉澱下來,這樣就造成了預案平臺,便於更加快速的止損。
  • 固然,最重要的,一個好的監控系統須要具有高可靠性,自己監控系統就是爲了發現異常,監控自身程序掛了,沒有人知曉確定是不行的,這就引伸出來了,監控系統的監控怎麼作的問題,能夠當作一個發散的問題,你們考慮一下。

監控標準

介紹完監控目標和監控系統應該具有的功能點後,先不討論監控系統如何實現,首先回答一個問題,如何確認監控加全了?有沒有遺漏?算法

估計不少同窗會遇到這樣的問題,爲此,京東雲提出了一套監控標準,指導用戶添加監控,確保監控「加全」,避免遺漏,詳情如圖所示。sql

監控標準分爲四層,從下往上看:微信

  • 首先是基礎監控,這一層主要解決機器、網絡層面的問題,包括咱們常見的cpu、內存,機器死機等問題
  • 而後是存活性監控,解決程序部署到機器上後,是否存活的問題,好比進程退出,端口發送一個ping過去,沒有返回pang
  • 再上一層,則是性能監控,重點關注Google提出的四大黃金指標pv、平響,錯誤碼和容量等,解決分佈式程序的定界問題(好比經過訪問MySQL的時間飆升知道是下游MySQL的問題)
  • 最上層是業務監控,模擬用戶進行訪問,解決服務在用戶側的表現是什麼
    有了標準,設計的監控系統按照標準來落地,能夠給出一些數據化的運營指標,推進監控的完善。

典型監控系統設計

瞭解了監控目標和定義了監控標準,至關於對解決的問題域有了一些背景知識了,下面就大概介紹下典型的監控系統包含哪些功能模塊,本文只是作一個大概的介紹,後續會對不一樣模塊方向有一些專門的介紹。網絡

上圖仍是分爲四層,從下往上咱們依次來介紹:運維

最底層叫數據抽象層,你們可能看到了比較熟悉的詞語是CMDB,這一層把資源視角抽象爲運維&運營視角,好比你搭建了一個賣書的網站,用了nginx、mysql等程序,在資源視角,這是一臺臺機器運行在互聯的idc環境上,但能夠抽象成這是一個賣書的產品,有mysql、nginx等應用,這樣你的監控數據天然能夠附加這種屬性(標籤),最終在後續數據處理的時候能夠發揮做用分佈式

有了數據抽象層,統一了咱們對監控實體的認知,基於這個抽象;上一層就是數據採集層,這裏列舉了衆多采集方式,包括進程、日誌、自定義、接口pull、產生數據主動push等,整個數據採集,就是一個標準化的過程,把觀測對象的數據經過各類手段收集上來,轉換爲咱們監控系統定義的數據格式。工具

數據採集後,就是加工的過程,咱們再回憶一下,監控的目標是發現、定位、解決問題;那麼必須對數據作加工,這就又能夠分爲如下處理流:性能

  • 左邊這條進行了數據加工(聚合計算),好比把10臺nginx的pv累加起來;並且能夠按照各類維度(標籤)累加,常見的需求包括監控項自身的標籤(好比pv的狀態碼爲5xx的聚合);也包括監控對象的標籤(好比某個機房的pv累加起來),監控系統須要具有這種靈活的數據加工能力。
  • 中間的一路進行了數據存儲,便於趨勢圖、dashbord可以查看到;有不少問題,仍是須要靠人工經驗去作判斷。這裏面會要求存儲具有各類查詢的能力,好比sum、max、min、avg、topN、分位值等。
  • 右邊一路則是報警通路,進行異常檢測,教會機器怎麼看圖,辨別出哪些指標有異常;通常是先作運算,好比發現某臺機器的內存低於閾值了,而後會有一個模塊去作收斂以及一些干預(好比屏蔽/升級等),最後肯定要通知人員處理了,對接不一樣的告警方式(郵件、短信、微信)。
  • 固然還有一些離線挖掘,根因推薦,這些數據處理最終的目標仍是可以讓機器識別更多的異常、經過經驗/算法,找到‘根因’

數據處理以後,最終是讓人去使用的,最上層就是數據的展現層,要展現對用戶有效的數據,用戶經過數據能快速發現定位問題,並經過數據分析及時作出止損操做。也就是要讓數據更好的服務用戶。

綜上,咱們能夠了解到,監控系統是以數據爲中心,在數據之上擴展其處理能力的一個系統;後續咱們會對各個方向再進行深刻的介紹,歡迎和各位進行交流。

IDC中國企業軟件市場高級分析師王楠認爲:「京東雲DevOps能力源於自身業務實踐,是京東技術能力輸出的重要組成部分,儘管推出相對較晚,但發展速度快、成熟度高,工具鏈和平臺功能已基本涵蓋DevOps的主要流程階段。同時,京東雲DevOps平臺還與公有云平臺深度集成,不只極大提高了服務交付效率和穩定性,還能高效助力用戶的自動研發和運維。」

點擊【京東雲】可瞭解更多京東雲DevOps產品內容。

歡迎點擊「京東雲」瞭解更多精彩內容。

相關文章
相關標籤/搜索