1. 程式人生 > >Prometheus+ Grafana 微服務系統監控方案搭建

Prometheus+ Grafana 微服務系統監控方案搭建

Prometheus是由 SoundCloud 開發的開源監控報警系統和時序列資料庫(TSDB).自2012年起,許多公司及組織已經採用 Prometheus,並且該專案有著非常活躍的開發者和使用者社群.現在已經成為一個獨立的開源專案核,並且保持獨立於任何公司,Prometheus 在2016加入 CNCF ( Cloud Native Computing Foundation ), 作為在 kubernetes 之後的第二個由基金會主持的專案.

prometheus 的特點

和其他監控系統相比,Prometheus的特點包括:

  • 多維資料模型(時序列資料由metric名和一組key/value組成)
  • 在多維度上靈活的查詢語言(PromQl)
  • 不依賴分散式儲存,單主節點工作.
  • 通過基於HTTP的pull方式採集時序資料
  • 可以通過中間閘道器進行時序列資料推送(pushing)
  • 目標伺服器可以通過發現服務或者靜態配置實現
  • 多種視覺化和儀表盤支援

prometheus 相關元件

Prometheus生態系統由多個元件組成,其中許多是可選的:

  • Prometheus 主服務,用來抓取和儲存時序資料
  • client library 用來構造應用或 exporter 程式碼 (go,java,python,ruby)
  • push 閘道器可用來支援短連線任務
  • 視覺化的dashboard (兩種選擇,promdash 和 grafana.目前主流選擇是 grafana.)
  • 一些特殊需求的資料出口(用於HAProxy, StatsD, Graphite等服務)
  • 實驗性的報警管理端(alartmanager,單獨進行報警彙總,分發,遮蔽等 )

promethues 的各個元件基本都是用 golang 編寫,對編譯和部署十分友好.並且沒有特殊依賴.基本都是獨立工作

Grafana是一個視覺化面板(Dashboard),有著非常漂亮的圖表和佈局展示,功能齊全的度量儀表盤和圖形編輯器,支援GraphitezabbixInfluxDB、PrometheusOpenTSDB作為資料來源。Grafana主要特性:靈活豐富的圖形化選項;可以混合多種風格;支援白天和夜間模式;多個數據源。

一、操作步驟