如何使用 Prometheus 和 Grafana 優(yōu)雅的實(shí)現(xiàn)服務(wù)器可視化
1Prometheus 簡(jiǎn)介
Prometheus 是一個(gè)開源監(jiān)控工具,實(shí)現(xiàn)了高維數(shù)據(jù)模型。Prometheus 有多種數(shù)據(jù)可視化模式,其中一種是集成 Grafana。Prometheus 以高效的自定義格式將時(shí)間序列數(shù)據(jù)存儲(chǔ)在內(nèi)存和本地磁盤上。
Prometheus 有許多客戶端可用于輕松監(jiān)控服務(wù),也可以輕松創(chuàng)建自定義客戶端。每臺(tái)服務(wù)器的可靠性都是獨(dú)立的,僅依賴本地存儲(chǔ)。用 Golang 編程語言編寫,所有二進(jìn)制文件都是靜態(tài)鏈接的,易于部署。
Prometheus 采用拉取策略而不是推送策略,即 Prometheus 以一定的時(shí)間間隔從 exporter 那里拉取數(shù)據(jù),而不是 exporter推送數(shù)據(jù)到 Prometheus。這種方式有其自身的優(yōu)點(diǎn)和缺點(diǎn),但我們不討論這些細(xì)節(jié)。
2Grafana 簡(jiǎn)介
Grafana 是一款開源可視化和分析軟件,它允許你查詢、可視化、提醒和探索您的指標(biāo),無論這些指標(biāo)存儲(chǔ)在哪里。Grafana 支持?jǐn)?shù)十種數(shù)據(jù)庫,我們可以創(chuàng)建一個(gè)儀表盤來可視化它們?nèi)俊?/p>
Grafana 還提供報(bào)警,直觀地定義閥值,并通過 Slack、 PagerDuty 和其他平臺(tái)獲得通知。Grafana 還提供了多種選項(xiàng)來查看我們的數(shù)據(jù),從熱力圖到直方圖,從圖形到地理地圖。Grafana 有大量的可視化選項(xiàng)可以幫助我們更好地理解數(shù)據(jù)。我正在使用 Ubuntu 18.04,并將顯示與其相關(guān)的整個(gè)配置。
3Prometheus 安裝

$?wget?https://github.com/prometheus/prometheus/releases/download/v2.21.0/prometheus-2.21.0.linux-amd64.tar.gz
$?tar?-xzf?prometheus-2.21.0.linux-amd64.tar.gz
$?cd?prometheus-2.21.0.linux-amd64/
$?./prometheus
安裝非常簡(jiǎn)單,執(zhí)行這些命令將會(huì)讓 Prometheus 服務(wù)器在端口 9090 中運(yùn)行。Prometheus 在端口9090上的儀表板如下圖所示:

如前所述,從 Prometheus 中抓取的指標(biāo)發(fā)生在恒定的時(shí)間段內(nèi),因此可以在路徑 /metrics 中查看它們。


這些指標(biāo)用于形成具有各種聚合函數(shù)的復(fù)雜表達(dá)式,以我們想要的形式進(jìn)行可視化,這在 promql 的幫助下基本上是可能的。Prometheus 中的圖形可視化非常基本,沒有提供太多自定義,因此我們將使用 Grafana。
4節(jié)點(diǎn) Exporter 安裝

$?wget?https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz
$?tar?-xzf?node_exporter-1.0.1.linux-amd64.tar.gz
$?cd?node_exporter-1.0.1.linux-amd64/
$?./node_exporter
上述命令將安裝節(jié)點(diǎn) exporter 并在端口 9100 上運(yùn)行,并且可以從 /metrics 擴(kuò)展中抓取指標(biāo)。
我創(chuàng)建了 3 個(gè)虛擬機(jī)并在所有虛擬機(jī)中安裝了節(jié)點(diǎn) exporter,以提供更好的可視化效果。所以在安裝之后,我們必須告訴 Prometheus 從哪里抓取指標(biāo),這可以通過編輯 prometheus.yml 文件來完成。我們只需要在 scrape_configs 中添加一個(gè)新作業(yè),指定目標(biāo)中的 IP 地址和端口。在 prometheus.yml 文件中添加目標(biāo)并重新啟動(dòng) Prometheus 服務(wù)器后,我們可以在儀表板以及 /targets 路徑中看到新目標(biāo)及其狀態(tài)。


確保所有目標(biāo)都已啟動(dòng),如果沒有,請(qǐng)檢查是否為該 VM 實(shí)例開放了 9100 端口。你還可以查看 Prometheus 從每個(gè) exporter 抓取的時(shí)間以及上次抓取的時(shí)間。
5Grafana 安裝

$wget?https://dl.grafana.com/oss/release/grafana-7.1.5.linux-amd64.tar.gz
$tar?-xzf?grafana-7.1.5.linux-amd64.tar.gz
$cd?grafana-7.1.5.linux-amd64/
$./bin/grafana-server
通過運(yùn)行上述命令即可完成安裝,Grafana 運(yùn)行在端口 3000。默認(rèn)的用戶名和密碼均為“admin”。
當(dāng)我們進(jìn)入儀表板,我們需要添加一個(gè)數(shù)據(jù)源,在我們的例子中是 Prometheus。我們只需要提供 Prometheus URL 并點(diǎn)擊保存和測(cè)試按鈕。如果我們看到一個(gè)成功的提示框,說數(shù)據(jù)源正在工作,那么我們就可以開始了。

我們可以使用自定義的查詢語句創(chuàng)建自己的儀表板和面板,但這是一項(xiàng)乏味的工作。因此,為了簡(jiǎn)化我們的工作,其他用戶已經(jīng)創(chuàng)建了一些儀表板,我們可以使用相同的儀表板并根據(jù)我們的需要調(diào)整表達(dá)式。我使用的是 1860 和 405,這些是我們導(dǎo)入儀表板的唯一ID。


導(dǎo)入完成后,我們會(huì)看到基于其表達(dá)式和時(shí)間范圍的圖表。你可以通過將時(shí)間范圍減少到 5 分鐘來深入了解。



Grafana 還允許我們查看合并多個(gè) exporter的表單,以便更好地進(jìn)行比較。


所以在上面的圖片中,我們可以看到所有三個(gè)節(jié)點(diǎn) exporter 的數(shù)據(jù)都被可視化了。
以上總結(jié)了 Prometheus 和 Grafana 的基本設(shè)置,用來可視化節(jié)點(diǎn)指標(biāo)數(shù)據(jù)。如果你覺得有幫助,請(qǐng)點(diǎn)贊分享。
原文鏈接:https://medium.com/javarevisited/prometheus-grafana-setup-to-visualize-your-servers-924773b83f3f
