Prometheus + Grafana 實現服務器監控數據可視化


Prometheus 簡介

Prometheus 是一個開源監控工具,實現了高維數據模型。Prometheus 有多種數據可視化模式,其中一種是集成 Grafana。Prometheus 以高效的自定義格式將時間序列數據存儲在內存和本地磁盤上。

Prometheus 有許多客戶端可用於輕松監控服務,也可以輕松創建自定義客戶端。每台服務器的可靠性都是獨立的,僅依賴本地存儲。用 Golang 編程語言編寫,所有二進制文件都是靜態鏈接的,易於部署。

Prometheus 采用拉取策略而不是推送策略,即 Prometheus 以一定的時間間隔從 exporter 那里拉取數據,而不是 exporter推送數據到 Prometheus。這種方式有其自身的優點和缺點,但我們不討論這些細節。

Grafana 簡介

Grafana 是一款開源可視化和分析軟件,它允許你查詢、可視化、提醒和探索您的指標,無論這些指標存儲在哪里。Grafana 支持數十種數據庫,我們可以創建一個儀表盤來可視化它們全部。

Grafana 還提供報警,直觀地定義閥值,並通過 Slack、 PagerDuty 和其他平台獲得通知。Grafana 還提供了多種選項來查看我們的數據,從熱力圖到直方圖,從圖形到地理地圖。Grafana 有大量的可視化選項可以幫助我們更好地理解數據。我正在使用 Ubuntu 18.04,並將顯示與其相關的整個配置。

Prometheus 安裝

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

cdprometheus-2.21.0.linux-amd64/

./prometheus

安裝非常簡單,執行這些命令將會讓 Prometheus 服務器在端口 9090 中運行。Prometheus 在端口9090上的儀表板如下圖所示:

如前所述,從 Prometheus 中抓取的指標發生在恆定的時間段內,因此可以在路徑 /metrics 中查看它們。

這些指標用於形成具有各種聚合函數的復雜表達式,以我們想要的形式進行可視化,這在 promql 的幫助下基本上是可能的。Prometheus 中的圖形可視化非常基本,沒有提供太多自定義,因此我們將使用 Grafana。

節點 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

cdnode_exporter-1.0.1.linux-amd64/

./node_exporter

上述命令將安裝節點 exporter 並在端口 9100 上運行,並且可以從 /metrics 擴展中抓取指標。

我創建了 3 個虛擬機並在所有虛擬機中安裝了節點 exporter,以提供更好的可視化效果。所以在安裝之后,我們必須告訴 Prometheus 從哪里抓取指標,這可以通過編輯 prometheus.yml 文件來完成。我們只需要在 scrape_configs 中添加一個新作業,指定目標中的 IP 地址和端口。在 prometheus.yml 文件中添加目標並重新啟動 Prometheus 服務器后,我們可以在儀表板以及 /targets 路徑中看到新目標及其狀態。

確保所有目標都已啟動,如果沒有,請檢查是否為該 VM 實例開放了 9100 端口。你還可以查看 Prometheus 從每個 exporter 抓取的時間以及上次抓取的時間。

Grafana 安裝

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

cdgrafana-7.1.5.linux-amd64/

./bin/grafana-server

通過運行上述命令即可完成安裝,Grafana 運行在端口 3000。默認的用戶名和密碼均為“admin”。

當我們進入儀表板,我們需要添加一個數據源,在我們的例子中是 Prometheus。我們只需要提供 Prometheus URL 並點擊保存和測試按鈕。如果我們看到一個成功的提示框,說數據源正在工作,那么我們就可以開始了。

我們可以使用自定義的查詢語句創建自己的儀表板和面板,但這是一項乏味的工作。因此,為了簡化我們的工作,其他用戶已經創建了一些儀表板,我們可以使用相同的儀表板並根據我們的需要調整表達式。我使用的是 1860 和 405,這些是我們導入儀表板的唯一ID。

導入完成后,我們會看到基於其表達式和時間范圍的圖表。你可以通過將時間范圍減少到 5 分鍾來深入了解。

Grafana 還允許我們查看合並多個 exporter的表單,以便更好地進行比較。

所以在上面的圖片中,我們可以看到所有三個節點 exporter 的數據都被可視化了。

以上總結了 Prometheus 和 Grafana 的基本設置,用來可視化節點指標數據。如果你覺得有幫助,請點贊分享。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM