Stackdriver Monitoring

本頁面說明如何使用 Stackdriver Monitoring 監控您的 Google Kubernetes Engine (GKE) 叢集。

總覽

您可以使用 Monitoring 在 GKE 叢集中監控訊號及建立作業。

Stackdriver 會監控「系統指標」和「自訂指標」。系統指標是 CPU 或記憶體用量等叢集基礎架構的測量結果。自訂指標則是由您自行定義的應用程式專用指標,像是有效使用者工作階段總數或轉譯頁面總數等。

Stackdriver 會針對系統指標建立一個部署作業,以定期連線至每個節點,並收集有關節點的 Pod 和容器的指標,然後將指標傳送至 Stackdriver。

系統資源用量指標會從下列來源進行收集:

  • CPU:container/cpu/usage_time
  • 記憶體:container/memory/bytes_used,從 cgroup 的 memory.usage_in_bytes 收集
  • 可收回的記憶體:container/memory/bytes_used,從 memory.stattotal_inactive_file 欄位收集
  • 不可收回的記憶體:藉由 memory.usage_in_bytes - memory.total_inactive_file 測量
  • 磁碟:container/disk/bytes_used

如要查看清單以瞭解從 GKE 收集到的其他系統指標,請參閱 Stackdriver 說明文件中的指標清單

如要瞭解如何設定自訂指標,請參閱使用自訂指標,或是遵循使用自訂指標自動調整部署規模教學課程。

事前準備

如要準備這項工作,請執行下列步驟:

  • 確認您已啟用 Google Kubernetes Engine API。
  • 啟用 Google Kubernetes Engine API
  • 確認您已安裝 Cloud SDK
  • 設定預設的專案 ID
    gcloud config set project [PROJECT_ID]
  • 如果您使用區域叢集,請設定預設的運算區域
    gcloud config set compute/zone [COMPUTE_ZONE]
  • 如果您使用地區叢集,請設定預設的運算地區
    gcloud config set compute/region [COMPUTE_REGION]
  • gcloud 更新到最新版本:
    gcloud components update
  • 請確認您已建立 Stackdriver 工作區。詳情請參閱管理工作區一文。

啟用 Monitoring

您可以建立啟用 Monitoring 的叢集,或是在現有叢集中啟用 Monitoring。

叢集的節點集區 (包含預設的節點集區) 必須擁有與 Monitoring 互動所需的 GCP 範圍 (https://www.googleapis.com/auth/monitoring 範圍)。當您建立具有監控功能的新叢集時,Kubernetes Engine 會自動設定此範圍。然而,現有的叢集可能沒有必要的權限。

建立具有監控功能的叢集

gcloud

在您建立叢集時,系統會自動設定 --enable-cloud-monitoring 標記,這個標記會在叢集中啟用 Monitoring。

如要停用這個預設行為,請設定 --no-enable-cloud-monitoring 標記。

主控台

  1. 造訪 GCP 主控台的「Kubernetes Engine」選單。

    造訪「Kubernetes Engine」選單

  2. 按一下 [Create cluster] (建立叢集)

  3. 視需要設定叢集。

  4. 按一下 [Advanced options] (進階選項)。確認已選取 [Enable Stackdriver Monitoring service] (啟用 Stackdriver Monitoring 服務)

  5. 按一下 [Create] (建立)

為現有叢集啟用監控功能

gcloud

如要為現有叢集啟用 Monitoring,請執行下列指令,其中 [CLUSTER_NAME] 是叢集名稱。

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service monitoring.googleapis.com

如果您在最初建立叢集時並未啟用 Monitoring,但之後想要啟用這項功能,則該叢集的節點集區可能不具備所需的 GCP 範圍。解決方法是建立具有相同節點數和必要範圍的新節點集區,如下所示:

gcloud container node-pools create adjust-scope \
    --cluster [CLUSTER_NAME] \
    --num-nodes [NUM_NODES] \
    --scopes https://www.googleapis.com/auth/monitoring

建立新的節點集區後,請將現有的 Pod 移至具有正確範圍的新節點集區,以便使用 Monitoring。詳情請參閱「透過不停機的方式更新 VM 範圍」一文。

主控台

如果您在最初建立叢集時並未啟用 Monitoring,但之後想要啟用這項功能,則該叢集的節點集區可能不具備所需的 GCP 範圍。請參閱前面的 gcloud 部分以取得解決方法。

  1. 造訪 GCP 主控台的「Kubernetes Engine」選單。

    造訪「Kubernetes Engine」選單

  2. 按一下鉛筆形狀的叢集 [Edit] (編輯) 按鈕。

  3. 將「Stackdriver Logging」下拉式選單的值設為「Enabled」(已啟用)。

  4. 按一下 [Save] (儲存)

擴增基礎架構指標

除了應用程式指標以外,Stackdriver 自訂指標也可以使用未納入系統指標的叢集基礎架構測量結果,如容器磁碟 I/O 等。您可以部署自己的基礎架構監控代理程式,以便收集這些指標並推送到 Stackdriver。

cAdvisor

您可以使用 cAdvisor 收集指標,Kubernetes 使用這個開放原始碼監控代理程式來收集指標。您可以使用 prometheus-to-sd 將這些指標推送到 Stackdriver。

如要在自己的叢集上執行 cAdvisor,請執行下列步驟:

  1. 複製 cAdvisor:

    git clone https://github.com/google/cadvisor.git
    cd cadvisor
    
  2. 按照 cAdvisor DaemonSet 操作說明安裝 kustomize。如果您使用的是 Cloud Shell,請執行下列指令:

    go get github.com/kubernetes-sigs/kustomize
    
  3. 建立範例 cAdvisor 命名空間和 DaemonSet 以匯出所有容器指標:

    kustomize build deploy/kubernetes/overlays/examples | kubectl apply -f -
    

    此時您應該會在 gke_container 資源下的 Stackdriver 看到 Prometheus 指標

  4. 按照 cAdvisor kustomization 操作說明,變更提供的範例以配合您的需求。執行下列指令來套用您做的變更:

    kustomize build deploy/kubernetes/overlays/<my_custom_patches> | kubectl apply -f -
    

查看指標

您可以在 Stackdriver Monitoring 主控台中查看指標。

叢集總覽

Monitoring 針對 GKE 有提供總覽選單,這個選單會收集關於叢集的有用資訊,並顯示在實用的資訊主頁中。

如要查看總覽選單,請執行下列步驟:

  1. 造訪 Stackdriver Monitoring 主控台:

    造訪 Monitoring 選單

  2. 將游標懸停在「Resources」(資源) 上,然後選取 [Kubernetes Engine]

  3. 選取您的叢集。

總覽選單提供下列預設的資訊主頁:

  • 「Incidents」(事件):違反快訊政策的事項。
  • 「Events」(事件):依照時間先後列出發生在您雲端帳戶的異常情況、事件、生命週期、標記、身分與存取權管理政策、部署、附註、雲端供應商更新和使用者管理更新。
  • 「CPU Usage」(CPU 用量):顯示每個叢集的 CPU 用量百分比。
  • 「Disk I/O」(磁碟 I/O):顯示每個叢集的磁碟 I/O 速率,以每秒 KB 為單位。
  • 「Network Traffic」(網路流量):顯示每個叢集的網路流量,以每秒 KB 為單位。
  • 「Pods」:列出所有命名空間中的 Pod 和節點 (Compute Engine VM 執行個體)。選取任何 Pod 或節點將會開啟該資源的總覽畫面。

如要進一步瞭解如何查看指標,請參閱 Monitoring 說明文件和監控篩選器頁面。

資訊主頁

您可以建立 GKE 節點和容器的自訂資訊主頁。

如要建立資訊主頁,請執行下列步驟:

  1. 造訪 Stackdriver Monitoring 主控台:

    造訪 Monitoring 選單

  2. 將游標懸停在「Dashboards」上,然後選取 [Create Dashboard] (建立資訊主頁)。

  3. 如要建立新的資訊主頁,請按一下 [Add Chart]

  4. 將資訊主頁的名稱填入「Title」(標題) 欄位。

  5. 在「Find resource type and metric」(尋找資源類型和指標) 欄位中,搜尋「instance」(執行個體) 和/或「container」(容器),然後選取需要的指標。

  6. 在「Metric Type」(指標類型) 欄位中,輸入需要的指標或從自動填入選單中選取。

  7. 您可以選擇使用「Filter」(篩選器),按照應用程式、名稱或版本等特定值進行篩選。

  8. 根據需要,進一步設定資訊主頁。如要建立資訊主頁,請按一下 [Save] (儲存)

Metrics Explorer

Metrics Explorer 可讓您選取有關叢集的特定指標,並執行各種匯總作業。

如要使用 Metrics Explorer,請執行下列步驟:

  1. 造訪 Stackdriver Monitoring 主控台:

    造訪 Monitoring 選單

  2. 將游標懸停在「Resources」(資源) 上,然後選取 [Metrics Explorer]

  3. 在「Find resource type and metric」(尋找資源類型和指標) 搜尋選單的「Resource type」(資源類型) 中,輸入 gke_container

  4. 在「Metric」(指標) 中,選取需要的指標。

  5. 您可以選擇使用「Filter」選單,按照資源進行篩選。

  6. 使用「Aggregation」選項執行所需的匯總作業。

最佳做法

  • 「Alerting」(快訊):您可以設定快訊政策,系統會在叢集發生任何可疑情況時通知您。

停用監控

gcloud

如要停用現有叢集的監控功能,請執行下列指令,其中 [CLUSTER_NAME] 是叢集名稱。

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service none

主控台

  1. 造訪 GCP 主控台的「Kubernetes Engine」選單。

    造訪「Kubernetes Engine」選單

  2. 按一下鉛筆形狀的叢集 [Edit] (編輯) 按鈕。

  3. 將「Stackdriver Logging」下拉式選單的值設為「Disabled」(已停用)。

  4. 按一下 [Save] (儲存)。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Stackdriver Monitoring
需要協助嗎?請前往我們的支援網頁