您當前的位置是:  首頁 > 新聞 > 國內 >
 首頁 > 新聞 > 國內 >

使用Prometheus監(jiān)控Cloudflare的全球網絡

2017-11-07 16:17:15   作者:   來源:CTI論壇   評論:0  點擊:


  Matt Bostock在SRECON 2017歐洲大會的演講中,介紹了如何使用Prometheus實現對CloudFlare分布于全球的架構和網絡的監(jiān)控。Prometheus是一種基于度量進行監(jiān)控的工具,CloudFlare是一家CDN、DNS和DDoS防御(Mitigation)服務提供商。
  基于度量的開源監(jiān)控項目Prometheus最早推出于2012年,它是CNCF(原生云計算基金會,Cloud Native Computing Foundation)的成員。Prometheus的動態(tài)配置和查詢語言PromQL支持用戶編寫對告警的復雜查詢。CloudFlare提供CDN(內容分發(fā)網絡,Content Delivery Network)、分布式DNS和DDoS防御服務,這意味著其架構已擴展到全球范圍。監(jiān)控這樣的架構及網絡無疑是一件復雜的工作。在演講中,Bostock介紹了Prometheus在其中發(fā)揮的作用。在CloudFlare,前期部署的Nagios的職能已有87%被Prometheus所替代。
  CloudFlare提供類似于Anycast所提供的CDN服務。Anycast DNS使得DNS查詢可以被最接近用戶的服務器所處理,Anycast HTTP使得內容可以從距離用戶最近的服務提供。作為原始Web站點和用戶之間的中介,CloudFlare還檢查訪問者的流量中是否存在有威脅的模式。它提供了跨150個國家的116個數據中心,每秒處理500萬次HTTP請求,120萬次DNS請求,占全球因特網請求的10%。每個入網點(PoP,Point-Of-Presence)提供HTTP、DNS、DDoS防御和鍵值存儲服務。截至演講時,有188臺運行在生產環(huán)境中的Prometheus服務器需要監(jiān)控。
  Prometheus是基于度量的,也就是說它采集時序度量,并基于度量構建其余的特性。它工作于Pull模式下,每臺監(jiān)控服務器運行一個稱作“exporter”的進程,通過HTTP發(fā)布所采集的度量。CloudFlare為每個服務域部署了一個exporter,使用它們采集系統(tǒng)(例如CPU、內存、TCP、磁盤等)、網絡(例如HTTP、Ping等)、本地匹配(錯誤信息)和容器/命名空間的度量。其中,exporter使用了Google的開源項目cadvisor采集容器/命名空間的度量。Prometheus并不會永久地保存所有數據,因為它更側重于“此時此地”(here-and-now)的監(jiān)控情況。數據不做下采樣,并在CloudFlare配置中保存15天。
  在CloudFlare的核心數據中心,服務包括日志訪問、分析業(yè)務,以及使用Marathon、Mesos、Chronos、Docker、Sentry、Ceph(用于存儲)、Kafka、Spark、Elasticsearch和Kibana等技術棧構建的API。Prometheus在每個PoP通過exporter查詢服務器和服務獲取度量。每個PoP的高可用性是由使用多個Prometheus服務提供的。
  Prometheus的報警管理稱為“Alertmanager”。CloudFlare的部署中包括一個Alermanager,由每個Prometheus服務器推送事件,并考慮了配置的高可用性。報警基于歷史數據做測試,確保服務的正確執(zhí)行的。Bosun等新興監(jiān)控工具也包括類似的特性。為提供更好的報警服務,其它的一些特性還包括了描述性的名稱、簡單易用性和一些可使接收者立刻采取行動的信息。
  CloudFlare團隊使用jiralerts實現JIRA工單系統(tǒng)與Alertmanager的集成。JIRA可以用戶定制工作流,使得報警監(jiān)控中可以包括一些監(jiān)控工作流特定的用戶定制狀態(tài)。另一個稱為alertmanagere2s的工具接收報警,并將報警信息集成到Elasticsearch索引中,用于進一步的檢索和分析。CloudFlare已為Alertmanger構建了自己的儀表盤,稱為“unsee”。
  那么Prometheus是如何監(jiān)控自身情況的?這有兩種實現方法。一種是混合方法,即在同一數據中心中,由一個Prometheus去監(jiān)控另一個Prometheus。另一種方法是自頂向下的方法,由頂層Prometheus服務器監(jiān)控位于數據中心層面的Prometheus服務器。
  CloudFlare SRE團隊的經驗是,盡早對環(huán)境和集群等的標簽和組身份做標準化;其它一些經驗是關于如何創(chuàng)建可視化,以及從同行和利益相關者生成買入。經驗指出,團隊的盡早參與將有助于服務與監(jiān)控系統(tǒng)的更快整合。而報警本身則需要多次迭代進行調整和改進,這是一個開展中的過程。
【免責聲明】本文僅代表作者本人觀點,與CTI論壇無關。CTI論壇對文中陳述、觀點判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

相關閱讀:

專題