監(jiān)控系統(tǒng) Grafana + Prometheus 之比 Docker 更簡(jiǎn)單的部署流程
若無單獨(dú)說明,按照文章代碼塊中命令的順序,一條一條執(zhí)行,即可實(shí)現(xiàn)目標(biāo)。
適用系統(tǒng):Debian 系發(fā)行版,包括 Ubuntu ,其他發(fā)行版按流程稍改命令一般也可。
完成部署預(yù)計(jì)時(shí)間:15 分鐘 (但是看一遍也要 15 分鐘,所以是 30分鐘 ?)
文章里的一鍵腳本僅適用于 amd64 系統(tǒng)

Grafana,Prometheus?和?Node Exporter?是一套流行的開源監(jiān)控工具,用于收集,存儲(chǔ),查詢系統(tǒng)和應(yīng)用程序的各種使用率,并可視化顯示。每個(gè)工具都有特定的功能:
Grafana:是一款可視化程序,提供開源版和企業(yè)版。 Grafana 不從客戶端收集任何數(shù)據(jù),也不存儲(chǔ),它的功能是以直觀且優(yōu)美的格式顯示 Prometheus 或其他數(shù)據(jù)源(SQL 等)收集的數(shù)據(jù)。 它允許用戶自定義面板,支持警報(bào)、注釋、儀表板變量、插件和身份驗(yàn)證。
Prometheus:是一個(gè)開源的系統(tǒng)監(jiān)控和警告程序,它使用 HTTP 協(xié)議輪詢客戶端以獲取所需數(shù)據(jù)。維護(hù)結(jié)果的時(shí)間序列數(shù)據(jù)庫(kù),以預(yù)定義的時(shí)間間隔輪詢每個(gè)客戶端,進(jìn)而能夠構(gòu)建客戶端長(zhǎng)期性能的概覽。
Node Exporter:在客戶端節(jié)點(diǎn)上能使用各種收集器,但 Prometheus 推薦使用自己的 Node Exporter 工具。 它收集大量硬件和內(nèi)核指標(biāo),如 CPU,磁盤 I/O,內(nèi)存,網(wǎng)絡(luò)等,收集的可用指標(biāo)的完整列表可以在 Node Exporter GitHub page 頁面上找到。
由于篇幅過長(zhǎng),更好的閱讀體驗(yàn),請(qǐng)移步博客: https://blog.vfly2.com/2023/07/a-simpler-deployment-process-of-the-probe-grafana-prometheus-compared-to-docker/
資源使用率
Grafana 和 Prometheus 部署好后,內(nèi)存使用量增加了 200MB 多;監(jiān)控的客戶端為 3 個(gè)的情況下,在運(yùn)行一天之后,內(nèi)存占用達(dá)到 300MB ??偟膩碚f,資源消耗量較大,適合 2g 內(nèi)存、20GB 磁盤空間的機(jī)子作為監(jiān)控服務(wù)器。
通過 top 命令,node_exporter 占用了大約 20 MB 內(nèi)存。
部署流程
默認(rèn),Grafana Web 界面使用端口?3000
?訪問,而 Prometheus 使用端口?9090
?,Node Exporter 使用端口?9100
?。開放防火墻:
為了獲得最佳結(jié)果,請(qǐng)?jiān)谕环?wù)器上運(yùn)行 Prometheus 和 Grafana。下面將托管 Prometheus 和 Grafana 的服務(wù)器的系統(tǒng)稱為“監(jiān)控服務(wù)器”。被監(jiān)控的系統(tǒng)是“客戶端”。
本文中的步驟是為非 root 用戶編寫的。需要提升權(quán)限的命令以?sudo
?為前綴。
在監(jiān)控服務(wù)器上開放防火墻,已完成?
如果不想使用腳本,或者希望了解安裝過程,請(qǐng)查看原文: https://blog.vfly2.com/2023/07/a-simpler-deployment-process-of-the-probe-grafana-prometheus-compared-to-docker/ ,考慮篇幅過長(zhǎng),因此這么安排。
在監(jiān)控服務(wù)器上安裝 Prometheus 并作為服務(wù)運(yùn)行
復(fù)制一鍵安裝 Prometheus:(bash-script/install-prometheus.sh at main · AhFeil/bash-script (github.com))
若運(yùn)行結(jié)束后,出現(xiàn) active (running) ,則安裝成功。
通過?http://ip_addr:9090
?訪問 Prometheus Web 界面和儀表板。將?ip_addr
?替換為監(jiān)控服務(wù)器的地址。
在所有客戶端上安裝 Node Exporter,并開放防火墻。
客戶端可以是 Linux 發(fā)行版,也可以是 Windows 等,不過 Node Exporter 僅適用于 Linux。
在客戶端只給 監(jiān)控服務(wù)器IP 開放 9100 端口,記得修改監(jiān)控服務(wù)器IP:
復(fù)制一鍵安裝 Node Exporter:(bash-script/install-node_exporter.sh at main · AhFeil/bash-script (github.com))
若運(yùn)行結(jié)束后,出現(xiàn) active (running) ,則安裝成功。
更新的話重新運(yùn)行一遍就可以
配置 Prometheus 來監(jiān)控客戶端
客戶端節(jié)點(diǎn)現(xiàn)在已準(zhǔn)備好進(jìn)行監(jiān)控。要將客戶端添加到?prometheus.yml
?,請(qǐng)按照以下步驟操作:
在運(yùn)行Prometheus的監(jiān)控服務(wù)器上,打開?prometheus.yml
?進(jìn)行編輯。
找到?scrape_configs
?,里面是作業(yè)列表。當(dāng)前有一個(gè)名為?prometheus
?的作業(yè)。此作業(yè)監(jiān)視端口?9090
?上的本地 Prometheus 任務(wù)。
在?prometheus
?作業(yè)下方,添加第二個(gè)作業(yè),其?job_name
?為?remote_collector
?。包括以下信息。
設(shè)置抓取時(shí)間間隔:?
scrape_interval: 10s
添加要監(jiān)控的 IP 和 端口號(hào)?
:9100
?,使用逗號(hào)分隔每個(gè)條目。要啟用對(duì)本地服務(wù)器的監(jiān)視,請(qǐng)將?
localhost:9100
?條目添加到列表中,并在本地安裝 Node Exporter。
該條目應(yīng)類似于以下示例。將?remote_addr
?替換為客戶端的實(shí)際IP地址。
立即刷新 Prometheus,
使用 Web 瀏覽器重新訪問監(jiān)控服務(wù)器上端口?9090
?的 Prometheus Web 門戶。選擇【Status】-【Targets】。將顯示?remote_collector
?作業(yè)的第二個(gè)鏈接,指向客戶端上的端口?9100
?。單擊鏈接查看統(tǒng)計(jì)數(shù)據(jù)。

安裝并部署 Grafana 服務(wù)器
Prometheus 收集的統(tǒng)計(jì)信息只能被視為原始數(shù)據(jù)轉(zhuǎn)儲(chǔ)。很難閱讀,而且沒有太大用處。
Grafana 提供了查看 Prometheus 收集的統(tǒng)計(jì)信息的界面。在運(yùn)行 Prometheus 的同一服務(wù)器上安裝 Grafana 并將 Prometheus 添加為數(shù)據(jù)源。
前置準(zhǔn)備,
安裝 Grafana 的開源版本。
重新加載?systemctl
?守護(hù)進(jìn)程。
加入開機(jī)自啟,并立即啟動(dòng)
查看狀態(tài)
關(guān)聯(lián) Grafana 和 Prometheus
所有系統(tǒng)組件現(xiàn)已安裝,但 Grafana 和 Prometheus 尚未關(guān)聯(lián)。剩下的可以使用 Grafana Web 界面完成。
要集成 Grafana 和 Prometheus,請(qǐng)按照以下步驟操作:
瀏覽器訪問監(jiān)控服務(wù)器的?
3000
?端口。例如,輸入?http://ip_addr:3000
?,將?ip_addr
?替換為實(shí)際 IP 地址。Grafana 顯示登錄頁面。使用用戶名和默認(rèn)密碼 都是?
admin
?。當(dāng)出現(xiàn)提示時(shí),將密碼更改為更安全的值。成功更改密碼后,Grafana 將顯示 Grafana 儀表板。
要將 Prometheus 添加為數(shù)據(jù)源,請(qǐng)單擊齒輪符號(hào)(代表配置),然后選擇數(shù)據(jù)源。

在下一個(gè)顯示中,單擊“添加數(shù)據(jù)源”按鈕。
選擇Prometheus作為數(shù)據(jù)源。
對(duì)于本地 Prometheus 源,將 URL 設(shè)置為?
http://localhost:9090
?。大多數(shù)其他設(shè)置可以保留默認(rèn)值。

對(duì)設(shè)置滿意后,選擇屏幕底部的【Save & test】按鈕。
如果所有設(shè)置均正確,Grafana 會(huì)確認(rèn)?
Data source is working
?。

使用 Grafana ,導(dǎo)入儀表板模板
可以創(chuàng)建自定義儀表板。然而,Prometheus 已經(jīng)創(chuàng)建了一個(gè)儀表板來支持 Node Exporter,名為?Node Exporter Full
?,下面是導(dǎo)入的流程。
要?jiǎng)?chuàng)建自定義儀表板,請(qǐng)單擊儀表板按鈕,該按鈕類似于四個(gè)正方形。然后選擇+新建儀表板。有關(guān)更多信息,請(qǐng)參閱 Grafana 構(gòu)建儀表板指南。
在 Grafana 儀表板。選擇由四個(gè)正方形組成的儀表板圖標(biāo),

右邊【New】-【Import】。

然后在 【Import via grafana.com】, 輸入上一步中的 ID?
1860
?。然后選擇【Load】。

在下一個(gè)屏幕確認(rèn)導(dǎo)入詳細(xì)信息。選擇?
Prometheus
?作為數(shù)據(jù)源,然后單擊【Import】按鈕。

Node Exporter Full
?儀表板立即生效。它顯示客戶端節(jié)點(diǎn)的性能指標(biāo)和狀態(tài),包括內(nèi)存、RAM 和 CPU 詳細(xì)信息。

原文鏈接: https://blog.vfly2.com/2023/07/a-simpler-deployment-process-of-the-probe-grafana-prometheus-compared-to-docker/
版權(quán)聲明:本博客所有文章除特別聲明外,均采用?CC BY-NC-SA 4.0?許可協(xié)議。轉(zhuǎn)載請(qǐng)注明來源?承飛之咎 (blog.vfly2.com) 。
如果你認(rèn)為我的文章有幫助,歡迎使用 RSS 訂閱,也歡迎留言指正。
本文使用?文章同步助手?同步