若無單獨說明,按照文章代碼塊中命令的順序,一條一條執行,即可實現目標。
適用系統:Debian 系發行版,包括 Ubuntu ,其他發行版按流程稍改命令一般也可。
完成部署預計時間:15 分鐘 (但是看一遍也要 15 分鐘,所以是 30 分鐘 ?)
文章裡的一鍵腳本僅適用於 amd64 系統
Grafana,Prometheus 和 Node Exporter 是一套流行的開源監控工具,用於收集,存儲,查詢系統和應用程序的各種使用率,並可視化顯示。每個工具都有特定的功能:
- Grafana:是一款可視化程序,提供開源版和企業版。 Grafana 不從客戶端收集任何數據,也不存儲,它的功能是以直觀且優美的格式顯示 Prometheus 或其他數據源(SQL 等)收集的數據。 它允許用戶自定義面板,支持警報、註釋、儀表板變量、插件和身份驗證。
- Prometheus:是一個開源的系統監控和警告程序,它使用 HTTP 協議輪詢客戶端以獲取所需數據。維護結果的時間序列數據庫,以預定義的時間間隔輪詢每個客戶端,進而能夠構建客戶端長期性能的概覽。
- Node Exporter:在客戶端節點上能使用各種收集器,但 Prometheus 推薦使用自己的 Node Exporter 工具。 它收集大量硬體和內核指標,如 CPU,磁碟 I/O,記憶體,網絡等,收集的可用指標的完整列表可以在 https://github.com/prometheus/node_exporter 頁面上找到。
由於篇幅過長,更好的閱讀體驗,請移步博客: https://blog.vfly2.com/2023/07/a-simpler-deployment-process-of-the-probe-grafana-prometheus-compared-to-docker/
資源使用率#
Grafana 和 Prometheus 部署好後,內存使用量增加了 200MB 多;監控的客戶端為 3 個的情況下,在運行一天之後,內存佔用達到 300MB 。總的來說,資源消耗量較大,適合 2g 內存、20GB 磁碟空間的機子作為監控伺服器。
通過 top 命令,node_exporter 占用了大約 20 MB 內存。
top -p $(pgrep node_exporter)
部署流程#
默認,Grafana Web 界面使用端口 3000
訪問,而 Prometheus 使用端口 9090
,Node Exporter 使用端口 9100
。開放防火牆:
sudo ufw allow 9090 comment 'prometheus'
sudo ufw allow 3000 comment 'grafana'
# Node Exporter 有所不同,在後面
為了獲得最佳結果,請在同一伺服器上運行 Prometheus 和 Grafana。下面將托管 Prometheus 和 Grafana 的伺服器的系統稱為 “監控伺服器”。被監控的系統是 “客戶端”。
本文中的步驟是為非 root 用戶編寫的。需要提升權限的命令以 sudo
為前綴。
在監控伺服器上開放防火牆,已完成✔#
如果不想使用腳本,或者希望了解安裝過程,請查看原文: https://blog.vfly2.com/2023/07/a-simpler-deployment-process-of-the-probe-grafana-prometheus-compared-to-docker/ ,考慮篇幅過長,因此這麼安排。
在監控伺服器上安裝 Prometheus 並作為服務運行#
複製一鍵安裝 Prometheus:(https://github.com/AhFeil/bash-script/blob/main/install-prometheus.sh)
wget -qO- 'https://raw.githubusercontent.com/AhFeil/bash-script/main/install-prometheus.sh' | sudo bash
若運行結束後,出現 active (running) ,則安裝成功。
通過 http://ip_addr:9090
訪問 Prometheus Web 界面和儀表板。將 ip_addr
替換為監控伺服器的地址。
在所有客戶端上安裝 Node Exporter,並開放防火牆。#
客戶端可以是 Linux 發行版,也可以是 Windows 等,不過 Node Exporter 僅適用於 Linux。
在客戶端只給 監控伺服器 IP 開放 9100 端口,記得修改監控伺服器 IP:
sudo ufw allow from 監控伺服器IP to any port 9100 comment 'node_exporter'
複製一鍵安裝 Node Exporter:(https://github.com/AhFeil/bash-script/blob/main/install-node_exporter.sh)
wget -qO- 'https://raw.githubusercontent.com/AhFeil/bash-script/main/install-node_exporter.sh' | sudo bash
若運行結束後,出現 active (running) ,則安裝成功。
更新的話重新運行一遍就可以。
配置 Prometheus 來監控客戶端#
客戶端節點現在已準備好進行監控。要將客戶端添加到 prometheus.yml
,請按照以下步驟操作:
在運行 Prometheus 的監控伺服器上,打開 prometheus.yml
進行編輯。
sudo vim /etc/prometheus/prometheus.yml
找到 scrape_configs
,裡面是作業列表。當前有一個名為 prometheus
的作業。此作業監視端口 9090
上的本地 Prometheus 任務。
在 prometheus
作業下方,添加第二個作業,其 job_name
為 remote_collector
。包括以下信息。
- 設置抓取時間間隔:
scrape_interval: 10s
- 添加要監控的 IP 和 端口號
:9100
,使用逗號分隔每個條目。 - 要啟用對本地伺服器的監視,請將
localhost:9100
條目添加到列表中,並在本地安裝 Node Exporter。
該條目應類似於以下示例。將 remote_addr
替換為客戶端的實際 IP 地址。
...
- job_name: "remote_collector"
scrape_interval: 10s
static_configs:
- targets: ["remote_addr:9100", "localhost:9100"]
立即刷新 Prometheus,
sudo systemctl restart prometheus
使用 Web 瀏覽器重新訪問監控伺服器上端口 9090
的 Prometheus Web 門戶。選擇【Status】-【Targets】。將顯示 remote_collector
作業的第二個鏈接,指向客戶端上的端口 9100
。單擊鏈接查看統計數據。
安裝並部署 Grafana 伺服器#
Prometheus 收集的統計信息只能被視為原始數據轉儲。很難閱讀,而且沒有太大用處。
Grafana 提供了查看 Prometheus 收集的統計信息的界面。在運行 Prometheus 的同一伺服器上安裝 Grafana 並將 Prometheus 添加為數據源。
前置準備,
# 安裝一些必需的實用程序
sudo apt-get install -y apt-transport-https software-properties-common
# 導入 Grafana GPG 密鑰
sudo wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
# 添加 Grafana“穩定版本”存儲庫
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
安裝 Grafana 的開源版本。
sudo apt-get update && sudo apt-get install grafana
重新加載 systemctl
守護進程。
sudo systemctl daemon-reload
加入開機自啟,並立即啟動
sudo systemctl enable --now grafana-server.service
查看狀態
sudo systemctl status grafana-server
關聯 Grafana 和 Prometheus#
所有系統組件現已安裝,但 Grafana 和 Prometheus 尚未關聯。剩下的可以使用 Grafana Web 界面完成。
要集成 Grafana 和 Prometheus,請按照以下步驟操作:
- 瀏覽器訪問監控伺服器的
3000
端口。例如,輸入http://ip_addr:3000
,將ip_addr
替換為實際 IP 地址。 - Grafana 顯示登錄頁面。使用用戶名和默認密碼都是
admin
。當出現提示時,將密碼更改為更安全的值。 - 成功更改密碼後,Grafana 將顯示 Grafana 儀表板。
- 要將 Prometheus 添加為數據源,請單擊齒輪符號(代表配置),然後選擇數據源。
- 在下一個顯示中,單擊 “添加數據源” 按鈕。
- 選擇 Prometheus 作為數據源。
- 對於本地 Prometheus 源,將 URL 設置為
http://localhost:9090
。大多數其他設置可以保留默認值。
- 對設置滿意後,選擇螢幕底部的【Save & test】按鈕。
- 如果所有設置均正確,Grafana 會確認
Data source is working
。
使用 Grafana ,導入儀表板模板#
可以創建自定義儀表板。然而,Prometheus 已經創建了一個儀表板來支持 Node Exporter,名為 Node Exporter Full
,下面是導入的流程。
要創建自定義儀表板,請單擊儀表板按鈕,該按鈕類似於四個正方形。然後選擇 + 新建儀表板。有關更多信息,請參閱 Grafana 構建儀表板指南。
- 在 Grafana 儀表板。選擇由四個正方形組成的儀表板圖標,
- 右邊【New】-【Import】。
- 然後在 【Import via grafana.com】, 輸入上一步中的 ID
1860
。然後選擇【Load】。
- 在下一個螢幕確認導入詳細信息。選擇
Prometheus
作為數據源,然後單擊【Import】按鈕。
Node Exporter Full
儀表板立即生效。它顯示客戶端節點的性能指標和狀態,包括內存、RAM 和 CPU 詳細信息。
原文鏈接: https://blog.vfly2.com/2023/07/a-simpler-deployment-process-of-the-probe-grafana-prometheus-compared-to-docker/
版權聲明:本博客所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請注明來源 https://blog.vfly2.com/ 。
如果你認為我的文章有幫助,歡迎使用 RSS 訂閱,也歡迎留言指正。