iT邦幫忙

2025 iThome 鐵人賽

DAY 28
0
Cloud Native

從 Docker 到 K8s:我的 30 天雲原生筆記系列 第 28

Day 28: 服務網格視覺化 Grafana

  • 分享至 

  • xImage
  •  

在昨天的 Day 27,我們成功地讓 Prometheus 開始從我們的服務網格中拉取指標數據,並學會了用 PromQL 進行基本查詢。但面對一堆冰冷的數字,我們很難快速洞察系統的健康狀況。

今天,我們就要來認識 Prometheus 最好的朋友 Grafana,將 Prometheus 中的數據,變成一張張精美、直觀的儀表板 (Dashboard)。

Part 1:串接 Grafana 與 Prometheus

Grafana 的第一步,也是最關鍵的一步,就是告訴它「數據從哪裡來」。這個過程,就是設定資料來源 (Data Source)

在 K8s 環境中,這通常有兩種做法:

  • 自動配置:在安裝 kube-prometheus-stack 或 Istio 的 demo profile 時,通常可以透過 Helm values.yaml 預先配置好,Grafana 啟動時就會自動連上 Prometheus。
  • 手動配置 (UI):如果沒有預先配置,我們也可以在 Grafana 啟動後,透過網頁介面來手動新增。

https://ithelp.ithome.com.tw/upload/images/20251005/20178656sVRqBB4z6j.png

讓我們來看看手動配置的流程:

  1. 登入 Grafana UI
  2. 在左側導覽列,找到齒輪圖示 Configuration > Data sources
  3. 點擊 Add new data source
  4. 從列表中選擇 Prometheus

https://ithelp.ithome.com.tw/upload/images/20251005/20178656p5oVUqppCP.png

  1. Connection 區塊的 URL 欄位,填入 Prometheus 服務的內部叢集位址。在 K8s 中,這通常是 http://<prometheus-service-name>.<namespace>.svc.cluster.local:<port>。例如:http://prometheus.istio-system.svc.cluster.local:9090
  2. 點擊頁面最下方的 Save & test。如果看到一個綠色的勾勾,就代表 Grafana 已經成功地與 Prometheus 建立了連線!

Part 2:建立儀表板的三種途徑

連上數據後,我們有三種主流的方式可以快速獲得儀表板。

1. 匯入現成儀表板 (ID 匯入)

這是最快、也最常見的方式!在 Grafana.com/dashboards 上,有成千上萬由官方或社群貢獻的、現成儀表板可以使用。

https://ithelp.ithome.com.tw/upload/images/20251005/20178656Hu3sHutuHs.png

我們只需要找到適用於我們場景的儀表板 ID,然後匯入即可。

  1. 在左側導覽列,找到 Dashboards
  2. 點擊右上角的 New > Import
  3. Import via grafana.com 欄位,輸入儀表板的 ID
  4. 點擊 Load,並在下一個頁面選擇剛剛設定好的 Prometheus Data Source。
  5. 點擊 Import

2. 透過 JSON 檔案匯入

當你的同事分享給你一個儀表板,或是你想將儀表板的設定檔用 Git 進行版本控制時,就會用到這個方法。每一個 Grafana 儀表板,都可以被匯出成一個 JSON 檔案

https://ithelp.ithome.com.tw/upload/images/20251005/2017865663P2MZGYS4.png

  1. 同樣在 Dashboards > New > Import 頁面。
  2. 這次點擊 Upload JSON file 按鈕,或是直接將 JSON 內容貼到下方的文字框中。
  3. 選擇 Data Source 並點擊 Import

3. 從零開始建立圖表 (Panel)

當現成的儀表板無法滿足你的特定需求時,我們就需要學會自己動手。這邊就要用到 PromQL

https://ithelp.ithome.com.tw/upload/images/20251005/20178656WDgVD4oID1.png

  1. Dashboards 頁面,點擊 New > New Dashboard
  2. 點擊 Add visualization
  3. Data source 下拉選單中,選擇 Prometheus
  4. 在查詢框中輸入PromQL。
  5. 在右側的 Panel options 中,你可以設定圖表的標題、圖表類型(Time series 是預設值)、單位等。
  6. 點擊右上角的 Apply

我們現在已經能夠「看見」系統的狀態了。但下一個更重要的問題是:當問題發生時,我們能不能讓系統「主動」來通知我們,而不是等我們自己 24 小時盯著儀表板?

接下來我們就要來認識 告警中心 Alertmanager!明天見!


上一篇
Day 27: 服務網格的監控 Prometheus
下一篇
Day 29: 監控的告警中心 Alertmanager
系列文
從 Docker 到 K8s:我的 30 天雲原生筆記30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言