日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

普罗米修斯 监控_接近完美的监控系统—普罗米修斯

發布時間:2025/3/19 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 普罗米修斯 监控_接近完美的监控系统—普罗米修斯 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

普羅米修斯(Prometheus)是一個SoundCloud公司開源的監控系統。當年,由于SoundCloud公司生產了太多的服務,傳統的監控已經無法滿足監控需求,于是他們在2012年決定著手開發新的監控系統,即普羅米修斯。

普羅米修斯(下稱普羅)的作者 Matt T.Proud 在2012年加入SoundCloud公司,他從google的監控系統Borgmon中獲得靈感,與另一名工程師Julius Volz合作開發了開源的普羅,后來其他開發人員陸續加入到該項目,最終于2015年正式發布。

普羅基于Go語言開發,其架構圖如下:

其中:

  • Prometheus Server: 用數據的采集和存儲,PromQL查詢,報警配置。
  • Push gateway: 用于批量,短期的監控數據的匯報總節點。
  • Exporters: 各種匯報數據的exporter,例如匯報機器數據的node_exporter,匯報MondogDB信息的 MongoDB_exporter 等等。
  • Alertmanager: 用于高級通知管理。

1.怎么采集監控數據?

要采集目標(主機或服務)的監控數據,首先就要在被采集目標上安裝采集組件,這種采集組件被稱為Exporter。http://prometheus.io官網上有很多這種exporter,比如:

Consul exporter (official)
Memcached exporter (official)
MySQL server exporter (official)
Node/system metrics exporter (official)
HAProxy exporter (official)
RabbitMQ exporter
Grok exporter
InfluxDB exporter (official)

這些exporter能為我們采集目標的監控數據,然后傳輸給普羅米修斯。這時候,exporter會暴露一個http接口,普羅米修斯通過HTTP協議使用Pull的方式周期性拉取相應的數據。

不過,普羅也提供了Push模式來進行數據傳輸,通過增加Push Gateway這個中間商實現,你可以將數據推送到Push Gateway,普羅再通過Pull的方式從Push Gateway獲取數據。

這就是為什么你從架構圖里能看到兩個 Pull metrics 的原因,一個是采集器直接被Server拉取數據(pull);另一個是采集器主動Push數據到Push Gateway,Server再對Push Gateway主動拉取數據(pull)。

采集數據的主要流程如下:

1. Prometheus server 定期從靜態配置的主機或服務發現的 targets 拉取數據(zookeeper,consul,DNS SRV Lookup等方式)

2. 當新拉取的數據大于配置內存緩存區的時候,Prometheus會將數據持久化到磁盤,也可以遠程持久化到云端。

3. Prometheus通過PromQL、API、Console和其他可視化組件如Grafana、Promdash展示數據。

4. Prometheus 可以配置rules,然后定時查詢數據,當條件觸發的時候,會將告警推送到配置的Alertmanager。

5. Alertmanager收到告警的時候,會根據配置,聚合,去重,降噪,最后發出警告。

2.采集的數據結構與指標類型

2.1 數據結構

了解普羅米修斯的數據結構對于了解整個普羅生態非常重要。普羅采用鍵值對作為其基本的數據結構:

Key是指標名字,Value是該指標的值,此外Metadata(元信息)也非常重要,也可稱之為labels(標簽信息)。這些標簽信息指定了當前這個值屬于哪個云區域下的哪臺機器,如果沒有labels,數據有可能會被丟失。

2.2 指標類型

普羅米修斯的監控指標有4種基本類型:

1.Counter(計數器):

計數器是我們最簡單的指標類型。比如你想統計某個網站的HTTP錯誤總數,這時候就用計數器。

計數器的值只能增加或重置為0,因此特別適合計算某個時段上某個時間的發生次數,即指標隨時間演變發生的變化。

2.Gauges

Gauges可以用于處理隨時間增加或減少的指標,比如內存變化、溫度變化。

這可能是最常見的指標類型,不過它也有一定缺點:如果系統每5秒發送一次指標,普羅服務每15秒抓取一次數據,那么這期間可能會丟失一些指標,如果你基于這些數據做匯總分析計算,則結果的準確性會有所下滑。

3.Histogram(直方圖)

直方圖是一種更復雜的度量標準類型。它為我們的指標提供了額外信息,例如觀察值的總和及其數量,常用于跟蹤事件發生的規模。

比如,為了監控性能指標,我們希望在有20%的服務器請求響應時間超過300毫秒時發送告警。對于涉及比例的指標就可以考慮使用直方圖。

4.Summary(摘要)

摘要更高級一些,是對直方圖的擴展。除了提供觀察的總和和計數之外,它們還提供滑動窗口上的分位數度量。分位數是將概率密度劃分為相等概率范圍的方法。

對比直方圖:

1. 直方圖隨時間匯總值,給出總和和計數函數,使得易于查看給定指標的變化趨勢。
2. 而摘要則給出了滑動窗口上的分位數(即隨時間不斷變化)。

3.實例概念

隨著分布式架構的不斷發展和云解決方案的普及,現在的架構已經變得越來越復雜了。

分布式的服務器復制和分發成了日常架構的必備組件。我們舉一個經典的Web架構,該架構由3個后端Web服務器組成。在該例子中,我們要監視Web服務器返回的HTTP錯誤的數量。

使用普羅米修斯語言,單個Web服務器單元稱為實例(主機實例)。該任務是計算所有實例的HTTP錯誤數量。

事實上,這甚至可以說是最簡單的架構了,再復雜一點,實例不僅能是主機實例,還能是服務實例,因此你需要增加一個instance_type的標簽標記主機或服務。

再再復雜一點,同樣的IP,可能存在于不同云區域下,這屬于不同的機器,因此還需要一個cloud標簽,最終該數據結構可能會變為:

cpu_usage {job="1", instance="128.0.0.1", cloud="0", instance_type="0"}

4.數據可視化

如果使用過基于InfluxDB的數據庫,你可能會熟悉InfluxQL。普羅米修斯也內置了自己的SQL查詢語言用于查詢和檢索數據,這個內置的語言就是PromQL。

我們前面說過,普羅米修斯的數據是用鍵值對表示的。PromQL也用相同的語法查詢和返回結果集。

PromQL會處理兩種向量:

即時向量:表示當前時間,某個指標的數據向量。

時間范圍向量:表示過去某時間范圍內,某個指標的數據向量。

如針對8核CPU的使用率:

知道怎么提取數據后,可視化數據就簡單了。

Grafana是一個大型可視化系統,功能強大,可以創建自己的自定義面板,支持多種數據來源,當然也支持普羅米修斯。

通過配置數據源,Grafana會使用相應的SQL拉取并繪制圖表,能直接看到普羅米修斯的各個指標數據圖表:

更方便的是,Grafana有很多儀表盤模板供你使用,只要import模板進行簡單的配置,就能得到以下效果:

5.應用前景

普羅米修斯非常強大,可以應用到各行各業。

5.1 DevOps

為了觀察整個服務體系是否在正常運轉,運維非常需要監控系統。在實例的創建速度和銷毀速度一樣快的容器世界中,靈活配置各類容器的監控項并迅速安裝啟動監控是非常重要的。

5.2 金融行業

金融服務巨頭Northern Trust于2017年6月選擇普羅米修斯,不是為了進行應用程序的監視,而是為了更好地了解其某些硬件的運作情況。Northern Trust使用普羅米修斯監控其平臺上的750多種微服務。

5.3 汽車行業

Life360是一款用于定位、行車安全和家庭成員之間共享信息的移動應用程序,他們需要給用戶提供穩定的定位服務,而原有的監控方案都非常局限,無法監視到所有組件的工作狀態。

因此該公司使用普羅米修斯來監視其MySQL多主群集和一個12節點的Cassandra環,該環可容納約4TB的數據。普羅米修斯在初步測試中表現良好。

在普羅米修斯的有限部署之后,Life360報告了監控方面的巨大進步,并設想在其數據中心基礎架構的其他部分中使用它。

總而言之,普羅米修斯這樣的分布式監控系統,在未來的世界中用處可能會越來越大,它或許將會成為監控領域寡頭式的存在,希望我們能熟悉這個工具,并在以后的架構和實踐中使用它解決系統和應用監控的問題。

我們的文章到此就結束啦,如果你喜歡今天的Python 實戰教程,請持續關注Python實用寶典。

原創不易,希望你能在下面點個贊和在看支持我繼續創作,謝謝!

Python實用寶典 (http://pythondict.com)
不只是一個寶典
歡迎關注公眾號:Python實用寶典

總結

以上是生活随笔為你收集整理的普罗米修斯 监控_接近完美的监控系统—普罗米修斯的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。