Grafana + Prometheus + Node Exporter 安裝與監控 Dashboard 建置
這篇文章記錄如何在 Linux 環境中安裝 Prometheus、Grafana 與 Node Exporter,並透過 Grafana 匯入 Node Exporter Dashboard,建立一套基本的主機監控環境。
整體流程會先完成 Prometheus 的服務安裝,再安裝 Grafana 作為視覺化介面,接著部署 Node Exporter 讓 Prometheus 能夠收集主機 Metrics,最後在 Grafana 中設定資料來源並匯入 Dashboard。
安裝 prometheus
首先建立 Prometheus 專用的系統使用者,並準備設定檔與資料儲存目錄。這個使用者不需要登入系統,也不需要家目錄,主要用途是讓 Prometheus 服務能以獨立權限執行。
1 | # 建立 prometheus 使用者 (不建立家目錄,且禁止登入) |
接著從 Prometheus 官方 GitHub Release 下載 Linux AMD64 版本,並解壓縮安裝檔。
1 | # 使用 wget 下載 (請將網址替換為官網最新的 linux-amd64 連結) |
解壓縮完成後,將 Prometheus 與 promtool 執行檔複製到 /usr/local/bin/,再將預設設定檔放到 /etc/prometheus/ 底下,並設定檔案擁有者。
1 | # 1. 移動執行檔並設定擁有者 |
接著建立 Prometheus 的 systemd service,讓 Prometheus 可以透過 systemctl 管理。
1 | sudo nano /etc/systemd/system/prometheus.service |
1 | [Unit] |
建立服務檔後,重新載入 systemd 設定,啟動 Prometheus 並設定開機自動啟動。
1 | # 重新載入 systemd 設定 |
服務啟動後,開啟瀏覽器進入 http://127.0.0.1:9090,確認 Prometheus 是否正常運作。
安裝 grafana
Prometheus 負責收集與儲存監控資料,而 Grafana 則用來建立視覺化 Dashboard。這裡使用 Grafana 官方提供的 .deb 套件進行安裝。
Grafana 下載頁面通常會提供 Enterprise 與 OSS 兩種版本。OSS 是開源版本,已包含建立 Dashboard、設定資料來源、查詢 Prometheus 與基本告警等常用功能;Enterprise 則包含 OSS 的功能,並可在授權後啟用企業級功能與外掛,例如進階權限控管、企業資料來源外掛、報表與官方支援等。若只是建立本文這類 Prometheus 與 Node Exporter 的主機監控環境,使用 OSS 版本即可。
1 | # 安裝 Grafana 執行所需的相依套件 |
安裝完成後,修改 Grafana 設定檔 /etc/grafana/grafana.ini,讓 Grafana Server 綁定到 0.0.0.0,並使用預設的 3000 連接埠。
1 | sudo nano /etc/grafana/grafana.ini |
1 | [server] |
接著重新載入 systemd 設定,啟動 Grafana Server 並設定開機自動啟動。
1 | # 重新載入 systemd 設定 |
開啟瀏覽器進入 http://127.0.0.1:3000,確認 Grafana 是否正常運作。
Grafana 預設帳號與密碼皆為 admin,首次登入後會要求重新設定密碼。
完成登入後,就可以進入 Grafana 主畫面。
安裝 node_exporter
Node Exporter 會提供主機 CPU、記憶體、磁碟、網路等系統 Metrics,讓 Prometheus 可以定期抓取並儲存。首先下載 Node Exporter 的 Linux AMD64 版本並解壓縮。
1 | # 使用 wget 下載 (請將網址替換為官網最新的 linux-amd64 連結) |
接著建立 Node Exporter 專用使用者。
1 | # 建立 node_exporter 使用者 (不建立家目錄,且禁止登入) |
將 Node Exporter 執行檔複製到 /usr/local/bin/,並設定擁有者。
1 | # 移動執行檔 |
建立 Node Exporter 的 systemd service。
1 | sudo nano /etc/systemd/system/node_exporter.service |
1 | [Unit] |
建立服務檔後,重新載入 systemd 設定,啟動 Node Exporter 並設定開機自動啟動。
1 | # 重新載入 systemd 設定 |
接著回到 Prometheus 設定檔,新增 Node Exporter 的 scrape target,讓 Prometheus 可以抓取 localhost:9100 提供的 Metrics。
1 | # 修改prometheus設定 |
1 | scrape_configs: |
最後可以透過 curl 驗證 Node Exporter 是否正常輸出 Metrics。
1 | curl http://127.0.0.1:9100/metrics |
設定 Dashboard
Prometheus 與 Node Exporter 都完成後,就可以在 Grafana 中設定 Prometheus 資料來源,並匯入 Node Exporter Dashboard。
先新增 Prometheus 來源。
添加 datasource。
設定 Prometheus 位置。
儲存並確認 datasource 是否有添加成功。
接著下載 Node Exporter 的 Dashboard 樣版設定。這裡使用的是 Grafana Labs 上常見的 1860 樣板,也就是 Node Exporter Full。這個 Dashboard 主要搭配 Prometheus 與 Node Exporter 使用,可以直接呈現主機的 CPU、Memory、Disk、Filesystem、Network、Load Average 等系統監控資訊。
匯入時可以使用 Dashboard ID 1860,也可以從頁面下載 JSON 後再匯入。若前面已經完成 Prometheus datasource 設定,匯入時只要選擇對應的 Prometheus 資料來源,就能讓 Dashboard 讀取 Node Exporter 收集到的 metrics。
https://grafana.com/grafana/dashboards/1860-node-exporter-full/
新增 Dashboard。
匯入 Dashboard。
設定 Dashboard。
Dashboard 設定完成後,就可以在 Grafana 中查看 Node Exporter 收集到的主機監控資料。