Prometheus與Grafana集成
Prometheus是一個基于指標的開源監(jiān)視系統(tǒng)。它通過在度量標準端點上發(fā)送HTTP請求來從服務(wù)和主機收集數(shù)據(jù)。然后將結(jié)果存儲在時間序列數(shù)據(jù)庫中,并使其可用于分析和警報。
Prometheus是一個基于指標的開源監(jiān)視系統(tǒng)。它通過在度量標準端點上發(fā)送HTTP請求來從服務(wù)和主機收集數(shù)據(jù)。然后將結(jié)果存儲在時間序列數(shù)據(jù)庫中,并使其可用于分析和警報。
為什么要監(jiān)控?
在出現(xiàn)問題時(最好在出現(xiàn)問題之前)啟用警報。以便有人可以看一下。它提供了見解,可以分析,調(diào)試和解決問題。它使您可以查看隨時間變化的趨勢/變化。例如,在任何給定時間有多少活動會話。這有助于設(shè)計決策和容量規(guī)劃。監(jiān)視通常與事件有關(guān)。事件可能包括接收HTTP請求,發(fā)送響應(yīng),從磁盤讀取,用戶登錄。監(jiān)視系統(tǒng)可能包括概要分析,日志記錄,跟蹤,指標,警報和可視化。
黑盒與白盒監(jiān)控,監(jiān)視分為兩個主要類別:
黑盒監(jiān)控
在黑盒監(jiān)控中,從外部觀察它們是在應(yīng)用程序或主機級別進行監(jiān)控。這可能是非常有限的。
白盒監(jiān)控
白盒監(jiān)視意味著監(jiān)視服務(wù)的內(nèi)部。它將公開有關(guān)內(nèi)部組件的狀態(tài)和性能的數(shù)據(jù)。
普羅米修斯組件
Scraping
Prometheus是基于拉的系統(tǒng)。為了獲取指標,Prometheus發(fā)送了一個稱為scrape的HTTP請求。它根據(jù)其配置將碎片發(fā)送到目標。
每個目標(靜態(tài)定義或動態(tài)發(fā)現(xiàn))均以規(guī)則的時間間隔(刮擦間隔)進行刮擦。每個刮擦都讀取/ metrics HTTP端點以獲取客戶端度量的當(dāng)前狀態(tài),并將這些值保留在Prometheus時間序列數(shù)據(jù)庫中。
Client Lib
要監(jiān)視服務(wù),您需要在代碼中添加檢測。有適用于所有流行語言和運行時的客戶端庫。使用這些庫,一旦添加幾行代碼,您的代碼就可以開始發(fā)出指標。這稱為直接檢測。這些庫使您可以定義內(nèi)部指標,也可以通過HTTP端點公開它們。當(dāng)Prometheus抓取指標HTTP端點時,客戶端庫會將指標發(fā)送到服務(wù)器。Prometheus為Go,Java,Python和Ruby提供了官方客戶端庫。普羅米修斯擁有開放的生態(tài)系統(tǒng)。還有社區(qū)構(gòu)建的客戶端庫,可用于C,PHP,Node.js,C#/.NET以及許多其他客戶端庫。
Exporters
許多應(yīng)用程序以非Prometheus格式公開指標。對于這些以及您不擁有或無法訪問代碼的應(yīng)用程序,您無法直接添加檢測。例如,MySQL,Kafka,JMX,HAProxy和NGINX服務(wù)器。在這些情況下,您將使用exporters。
導(dǎo)出器是您與需要度量標準的應(yīng)用程序一起部署的工具。導(dǎo)出程序的作用就像是應(yīng)用程序和Prometheus之間的代理。它將接收來自Prometheus服務(wù)器的請求,從訪問日志,應(yīng)用程序的錯誤日志收集數(shù)據(jù),將其轉(zhuǎn)換為正確的格式,最后返回到Prometheus服務(wù)器。
一些受歡迎的出口商是:
Windows – Windows服務(wù)器指標
Node –用于Linux服務(wù)器指標
Blackbox – DNS和網(wǎng)站性能指標
JMX –用于基于Java的應(yīng)用程序指標
一旦對應(yīng)用程序進行了檢測或?qū)С銎骶臀?,您需要告訴Prometheus,它們在哪里。這可以使用靜態(tài)配置來完成。在動態(tài)環(huán)境中,這不能完成;因此,使用服務(wù)發(fā)現(xiàn)。
Alerting
普羅米修斯警報包括兩個部分–警報規(guī)則將警報發(fā)送到Alertmanager。然后,警報管理器管理那些警報。它使用許多現(xiàn)成的集成(例如電子郵件,Slack,Hipchat和PagerDuty)發(fā)送通知。Alertmanager也可以執(zhí)行沉默或聚合以減少通知數(shù)量。
這是使用Prometheus和Dashboard監(jiān)視Linux服務(wù)器的指南。
使用儀表板可視化
Prometheus有許多API,PromQL查詢可使用這些API產(chǎn)生用于可視化的原始數(shù)據(jù)。
盡管Prometheus包括可用于即席查詢的表達式瀏覽器,但可用的最佳工具是Grafana。Grafana與Prometheus完全集成,可以生產(chǎn)各種儀表板。
您將需要將Prometheus配置為Grafana的數(shù)據(jù)源。
您可以通過以下方式添加儀表板:
導(dǎo)入社區(qū)構(gòu)建的儀表板
建立自己的
使用預(yù)定義的儀表板。
普羅米修斯幾乎沒有要求。由于它是帶有配置文件的單個二進制文件,因此運行起來可能非常簡單。它可以處理數(shù)千個目標,每秒可以攝取數(shù)百萬個樣本。Prometheus旨在跟蹤整個系統(tǒng),系統(tǒng)的健康狀況,行為。
