UCP Dashboard Shows 'No Data'?


之前曾經處理過一個關於容器平台監控儀表板的問題,寫在這邊作爲記錄並分享。

具體問題狀況:在一個 UCP 叢集環境下,共安裝設定了 10 個節點,包含 UCP manager 以及 UCP worker,而且爲了支持 HA,設定有 3 個 UCP manager,確保高可用性,作爲監控管理用途。所使用的 UCP 版本是 v3.1.1.
運行經過一段時間,其中一個 UCP manager 節點的儀表板無 metrics 資料顯示,如下圖標示:

沒有 metrics

其他兩個 UCP manager 節點儀表板顯示正常。




另外通過
docker ps
命令檢查每個節點的 ucp containers 狀態,
發現 ucp proxy 等 agents 用途的 containers 狀態是健康的,節點之間的 TLS 連線應不是問題,


docker logs
命令檢查 UCP controller 的日誌內容,如下截圖,

Unable to route request, no healthy servers

試着以
docker restart
命令重新啓動 UCP controller containers ,但是問題仍然存在沒有解決。

接下來試着看 UCP metrics containers 的情況,在 UCP v3.1.1 由 ucp-metrics 來負責,
這部分實際上是以 Prometheus 為功能基礎來輔助達到 UCP 儀表板監控功能,
在 UCP v3.1.1 的 Prometheus 監控是以 Kubernetes deployment 的方式來佈署,
定義成一個 daemonset 指定運行在 Docker EE 容器平台上的每個 UCP manager 節點。

Prometheus 使用 TSDB 格式,通過 volume 機制在本地端儲存 metrics 資料,對應的本地路徑為
/var/lib/docker/volumes/ucp-metrics-data/_data/wal/
這路徑保存時間序列的 metrics 資料庫。如果這個路徑有問題,則需要重建。

註:WAL 的全名是 Write Ahead Log.

通過下面命令重設 ucp-metrics (註:要先設定好 ucp bundles):
$ kubectl -n kube-system delete daemonset ucp-metrics
$ kubectl -n kube-system get daemonset -l k8s-app=ucp-metrics


重設 ucp-metrics 之後,上述問題應該可以改善。

關於這個問題的更多資料,請參考 Docker Forum 上這篇 UCP Dashboard Shows 'No Data'
可以看到其他不同的問題成因以及對應的解決方式。

留言

這個網誌中的熱門文章

Docker 環境下的 Proxy 配置