System monitor
U-Office Force X 採用 微服務 架構,並支援 叢集 運作,要在數個叢集節點與為數眾多微服務中監控資源與發現問題,是很不容易的事情。因此我們在系統中加入了系統監控的功能,把蒐集的數據圖形化,讓管理者可以快速掌握資源用量、發現服務異常,甚至進行重啟服務的操作。
路徑:後台管理中心首頁>系統監控
應具備的相關知識
雖然將監控資訊圖形化已讓使用的門檻大幅降低,但使用此功能還是需要對 Docker、Kubernetes(下方簡稱 K8s) 有基本的認知,才能正確了解每個介面代表的意義與傳遞的資訊。下方文章皆會以 Node、Deployment 和 Pod 等 K8s 相關名詞來說明。
功能畫面總覽¶
功能介面分成三個區塊:
A. 伺服器叢集結點: 可以查看叢集各伺服器的資源用量 (對應到 K8s 的 Node)。
B. 線上人數統計: 可以查詢距離當下最多 7 * 24 小時的線上人數統計資料。
C. Pod 服務清單: 可以查看每個微服務當下的資源用量 (對應到 K8s 的 Pod)。
D. 監控清單: 可以查看指定的微服務時間範圍期間資源用量變化,還有近期的 log。
圖形顏色的涵義¶
為方便快速掌握資源用量,在資源相關圖形中,會以以下顏色來呈現對應的資訊:
- 藍色: 59% 以下
- 黃色: 60% ~ 79%
- 紅色: 80% 以上
手動或自動刷新畫面資訊¶
在每個區塊的標題旁,都有自動刷新的 Timer 元件,可以各自刷新畫面資料的操作。
- 點擊 暫停 按鈕可以中斷自動刷新 (預設是開啟),暫停後圖示將轉變為 啟用。
- 點擊 藍色倒數進度條或秒數 可以馬上刷新資訊
區塊A: 伺服器叢集節點 (Node)¶
「叢集(Cluster)」意指使用多台小型電腦 (伺服器),透過網路「合體」成為較大型的分散式運算架構系統。在此區塊中會以條列式的方式將伺服器陳列,在 規格資訊 中你可以看到伺服器資訊,例如: 名稱、IP、系統、CPU 或 RAM ... 等。
點擊 資源使用量 旁邊的展開圖示,你可以看到 CPU 和 RAM 的資源用量,左邊旋鈕(Knob)圖示呈現當下的資源用量,會以百分比的方式顯示。右邊會以長條圖呈現最近 8小時 的用量趨勢。
觀察重點
短時間的資源高使用量可能是因為更新版本、或偶發性的突發事件造成,可以不須擔心。但如果是長時間維持在高使用水平 (例如超過 80%),則需要考量是否為部分服務異常,或硬體資源不足的可能。
區塊B: 線上人數統計¶
系統會紀錄最近 7 * 24 小時的上線人數紀錄,並區分各個模組,此處資料為所有公司線上人數加總,並分模組以堆疊曲線圖方式呈現,須注意的是:
- 因人員可能登入但並操作 (雖然無操作太久也會被系統踢出),以及採樣間隔的設定,所以計算的人數與真實使用數會有些誤差。
- 此圖表數據 不適合 與購買授權的模組人數做比對。
區塊C: Pod 服務清單¶
此清單會呈現所有的微服務,因運行的服務眾多,你可以透過右上角輸入關鍵字過濾 (支援正則表示式,比對名稱欄位),點擊表格欄位的每個標頭都可以進行排序 (正向或反向),在清單中可以看到:
- 節點: 此服務運行在哪個叢集伺服器中。
- 名稱: 服務的名稱。
- 運行時間: 服務啟動後已運行的時間,當服務被重啟時會重新計算。
- 重啟次數: 服務因異常被自動重啟的次數。
- 版本: 服務運行的版本。
- 藍/綠: 當系統進行藍綠佈署升級時,可以分辨服務歸屬於藍或綠。
- CPU 用量: 服務當下的 CPU 使用量,單位為 Core。
- RAM 用量: 服務當下的 RAM 使用量,單位為 MB。
- RAM 使用率: 如果服務有限制 RAM 用量上限,則會顯示已使用的比例。
- 加入監控清單按鈕: 如果想要進階了解此服務的資訊,可以點擊此按鈕加入監控清單,已加入的可再次點擊從清單移除。
- 進階操作按鈕: 可進行更多操作,例如: 重啟 Pod ... 等
觀察重點
重啟次數 是明確的指標,因為只有異常 (服務停止、RAM 使用超量...等) 才會被重啟。 RAM 使用率可以當參考指標,如用量比預期高則可以加入監控清單進一步判斷。
重啟 Pod¶
透過 Pod 清單中的 進階操作 可以重啟 Pod。雖然 正常重啟 過程通常不會有影響,使用者也幾乎不會察覺,但不建議在對服務用途不明的的情況下,就隨意的重啟。
注意
僅僅因為該服務資源用量高就重啟,並不能真正解決問題,並且可能造成更嚴重的異常。
重啟的邏輯
點擊重啟後,會根據點擊的服務 (Pod) 找到對應的 Deployment,再透過 Deployment 重啟所有對應的 Pod,因此可能會發生點擊重啟 A Pod,卻把 A B Pod 都重啟的情況。如想進一步了解,請搜尋 K8s 中 Deployment 與 Pod 之間的關係。
區塊D: 監控清單¶
監控清單初始是空的,需透過 Pod 服務清單 中加入項目才會有資訊。右上角有面版資訊的隱藏與顯示按鈕,可以控制 CPU、RAM 和 Log 面版是否顯示;左下方可以設定 CPU、RAM、Log 的取得資料條件:
- CPU / RAM / Online User (線上人數)
- 採樣間隔: 預設為 5 分,意即將指定的時間範圍以每 5 分鐘切成最小單位,取其 5 分鐘內的數值平均。
- 時間範圍: 可以快速選擇最近的 1、4、8小時,或者選 other 自訂時間範圍。
- Log
- 取得筆數: 取得的 log 筆數,從最新一筆的 log 往前計數 (不受 CPU/RAM 的時間範圍設定影響)。
Pod 監控資訊總覽¶
每個加入監控清單的 Pod 從上到下分成 4 個區塊,最上方顯示基本資訊,包含所在的節點 (Node)、Pod 服務名稱、版本及啟動日期,左邊有兩個按鈕,分別可以顯示 更多細節,以及 Deployment 變更紀錄,右邊有打叉的按鈕可以 從監控清單移除。
再往下分別有: CPU、RAM、Log 及 Online User 資訊,可能會分別受到右上角 面版資訊 控制而顯示或隱藏。
CPU、RAM 用量統計圖¶
呈現時間範圍內的資源用量,CPU 會以線性圖顯示其每個時間點用量,單位為 Core,而 RAM 會以長條圖顯示,單位為 %,將滑鼠移動到每個圖形節點上會顯示更多資訊。
在沒有設定 RAM 上限的服務,如若加入監控清單,則 RAM 長條圖的 Y 軸會以 MB 當作刻度顯示,因為其無法計算使用率。
Online User 線上人數統計圖¶
與 區塊B: 線上人數統計 資料相同,可顯示時間範圍內的線上人數,並分模組以堆疊曲線圖方式呈現,須注意的是:
- 線上人數是以整個 UOF X 系統計算,無法細分至 Pod,因此每個監控 Pod 的線上人數統計圖皆會相同。
- 因人員可能登入但並操作 (雖然無操作太久也會被系統踢出),以及採樣間隔的設定,所以計算的人數與真實使用數會有些誤差。
- 此圖表數據 不適合 與購買授權的模組人數做比對。
Log 資訊¶
Log 資訊會依照條件設定,取得最新的前幾筆 log 資料,如果 Pod 有包含多個 container,則可透過上方下拉選單選擇 container。
更多細節¶
更多細節會顯示更多 Pod 的內容,包含其 Init Container、Container、Event ...等,可以提供系統管理者更多資訊來判斷狀況。
Deployment 變更紀錄¶
此功能會顯示 Deployment 的變更紀錄,以時間軸的方式呈現。對應到 K8s 為 Revisions 紀錄,現在運行版本的 Deployment 會以 綠色 標示服務啟動數量。














