全部產品
Search
文件中心

Container Service for Kubernetes:將警示配置功能接入註冊叢集

更新時間:Sep 21, 2025

在ACK One註冊叢集中接入警示配置功能,第一時間感知Container Service例外狀況事件和容器指標異常。

前提條件

在註冊叢集中配置CloudMonitor組件

步驟一:為CloudMonitor組件配置RAM許可權

通過onectl配置

  1. 在本地安裝配置onectl。具體操作,請參見通過onectl管理註冊叢集

  2. 為CloudMonitor組件配置RAM許可權。

    onectl ram-user grant --addon alicloud-monitor-controller

    預期輸出:

    Ram policy ack-one-registered-cluster-policy-alicloud-monitor-controller granted to ram user ack-one-user-ce313528c3 successfully.

通過控制台配置

在註冊叢集中安裝組件前,需先擷取AccessKey用來訪問雲端服務。設定AccessKey前,需建立RAM使用者並為其添加訪問相關雲資源的許可權。

  1. 建立RAM使用者

  2. 建立自訂權限原則。權限原則模板如下所示:

    {
                "Action": [
                    "log:*",
                    "arms:*",
                    "cms:*",
                    "cs:UpdateContactGroup"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
    }
  3. 為RAM使用者授權

  4. 為RAM使用者建立AccessKey

    警告

    建議您參見AccessKey網路訪問限制策略配置網路原則,將AccessKey調用來源控制在可信的網路環境內,提升AccessKey的安全性。

  5. 使用AccessKey在註冊叢集中建立名為alibaba-addon-secret的Secret資源。

    安裝CloudMonitor組件時將自動引用此AccessKey訪問對應的雲端服務資源。

    kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=<your access key id>' --from-literal='access-key-secret=<your access key secret>'
    說明

    <your access key id><your access key secret>為上一步擷取的AccessKey資訊。

步驟二:安裝與升級CloudMonitor組件

通過onectl安裝

安裝CloudMonitor組件。

onectl addon install alicloud-monitor-controller

預期輸出:

Addon alicloud-monitor-controller, version **** installed.

通過控制台安裝

控制台會自動檢測警示配置環境是否符合要求,並會引導進行開通、安裝或升級組件。

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇營運管理 > 警示配置

  3. 警示配置頁面,按照頁面指引進行組件的安裝或升級。

  4. 安裝升級完成後,進入警示配置頁面配置警示資訊。

    頁簽

    說明

    警示規則管理

    • 啟動狀態:用於開啟或關閉目標警示規則集。

    • 編輯通知對象:設定警示通知的連絡人分組。

    設定前,需先建立連絡人和分組,並將連絡人加入分組。通知對象僅支援連絡人分組,如需通知單人,可將該連絡人單獨建組後選擇該分組。

    警示歷史

    目前可查看最近1天內發送的最新100條記錄。

    • 單擊警示規則列下的連結,可以跳轉到對應監控系統中查看詳細規則配置。

    • 單擊排查現場,可以快速定位到異常發生的資源頁面(例外狀況事件、指標異常的資源)。

    • 單擊智能分析,可通過計算 AI 助手協助分析問題並提供處理指導。

    連絡人管理

    對連絡人進行管理,可建立、編輯或刪除連絡人。

    連絡方式:

    • 電話/簡訊:設定連絡人的手機號碼後,可以通過電話和簡訊的方式接收警示通知。

      僅驗證過的手機號碼可以在通知策略中使用電話的通知方式,驗證手機號的操作,請參見驗證手機號
    • 郵箱:設定連絡人的郵箱地址後,可以通過郵箱接收警示通知。

    • 機器人:DingTalk機器人企業微信機器人飛書機器人

      DingTalk機器人需要追加安全關鍵字: 警示、指派。
    郵箱和機器人設定前,可以先在CloudMonitor控制台警示服務 > 警示連絡人驗證,以便接收警示資訊。

    連絡人分組管理

    對連絡人分組進行管理,可建立、編輯或刪除連絡人分組。編輯通知對象僅支援選擇連絡人分組。

    當無連絡人分組時,控制台會在阿里雲帳號註冊資訊中同步建立一個預設連絡人分組。

接入警示配置功能

步驟一:開啟預設警示規則

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇營運管理 > 警示配置

  3. 警示規則管理頁簽,開啟對應警示規則集。

    警示規則管理

步驟二:手動設定警示規則

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇營運管理 > 警示配置

  3. 警示規則管理頁簽,單擊編輯通知對象可設定關聯的通知對象;開啟啟動狀態開關可開啟對應警示規則集。

    功能特性

    說明

    警示規則管理

    • Container Service警示規則功能會預設產生容器情境下的警示模板(包含例外狀況事件警示、異常指標警示)。

    • 警示規則被分類為若干個警示規則集,可為警示規則集關聯多個連絡人分組,並啟動或關閉警示規則集。

    • 警示規則集中包含多個警示規則,一個警示規則對應單個異常的檢查項。多個警示規則集可以通過一個YAML資源配置到對應叢集中,修改YAML會同步產生警示規則。

    • 關於警示規則YAML配置,請參見如何通過CRD配置警示規則

    • 關於預設警示規則模板,請參見Container Service警示管理

    警示歷史

    目前可查看最近發送100條記錄。單擊對應警示規則類型的連結,可跳轉到對應監控系統中查看詳細規則配置;單擊對應警示排查現場的連結可快速定位到異常發生的資源頁面(例外狀況事件、指標異常的資源)。警示歷史查看

    連絡人管理

    對連絡人進行管理,可建立、編輯或刪除連絡人。

    連絡人分組管理

    對連絡人分組進行管理,可建立、編輯或刪除連絡人分組。當無連絡人分組時,控制台會從阿里雲帳號註冊資訊中同步建立一個預設連絡人分組。

如何通過CRD配置警示規則

警示配置功能開啟時,會預設在kube-system命名空間下建立一個AckAlertRule類型的資源配置,包含預設警示規則模板。Container Service警示規則集可通過此資源配置在叢集中。

控制台

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇營運管理 > 警示配置

  3. 警示規則管理頁簽,單擊右上方編輯警示配置,然後單擊目標規則列右側操作列下的YAML,即可查看當前叢集中的AckAlertRule資源配置。

  4. 可參考預設警示規則模板說明,根據實際需求修改 YAML 檔案內容。

    警示規則配置 YAML 樣本如下:

    警示規則配置YAML

    apiVersion: alert.alibabacloud.com/v1beta1
    kind: AckAlertRule
    metadata:
      name: default
    spec:
      groups:
        # 以下是一個叢集事件警示規則配置範例。
        - name: pod-exceptions                             # 警示規則分組名,對應警示模板中的Group_Name欄位。
          rules:
            - name: pod-oom                                # 警示規則名。
              type: event                                  # 警示規則類型(Rule_Type),枚舉值為event(事件類型)、metric-cms(CloudMonitor指標類型)。
              expression: sls.app.ack.pod.oom              # 警示規則運算式,當規則類型為event時,運算式的值為本文預設警示規則模板中Rule_Expression_Id值。
              enable: enable                               # 警示規則開啟狀態,枚舉值為enable、disable。
            - name: pod-failed
              type: event
              expression: sls.app.ack.pod.failed
              enable: enable
        # 以下是一個叢集基礎資源警示規則配置範例。
        - name: res-exceptions                              # 警示規則分組名,對應警示模板中的Group_Name欄位。
          rules:
            - name: node_cpu_util_high                      # 警示規則名。
              type: metric-cms                              # 警示規則類型(Rule_Type),枚舉值為event(事件類型)、metric-cms(CloudMonitor指標)、metric-prometheus(Prometheus指標)。
              expression: cms.host.cpu.utilization          # 警示規則運算式,當規則類型為metric-cms時,運算式的值為本文預設警示規則模板中Rule_Expression_Id值。
              contactGroups:                                # 警示規則映射的連絡人分組配置,由ACK控制台產生,同一個帳號下連絡人相同,可在多叢集中複用。
              enable: enable                                # 警示規則開啟狀態,枚舉值為enable、disable。
              thresholds:                                   # 警示規則閾值。          
                - key: CMS_ESCALATIONS_CRITICAL_Threshold
                  unit: percent
                  value: '85'                                # CPU 使用率閾值,85%(預設)    
                - key: CMS_ESCALATIONS_CRITICAL_Times
                  value: '3'                                # 連續 3 次超過閾值觸發警示
                - key: CMS_RULE_SILENCE_SEC                 # 初次上報警示後靜默期時間長度 
                  value: '900'    

    rules.thresholds(參數見下表)可自訂警示閾值。例如上述樣本配置:當叢集節點 CPU 使用率超過 85%,連續 3 次達到閾值,且距離上一次警示已超過 900 秒時,將觸發警示通知。

    參數名

    是否必選

    說明

    預設值

    CMS_ESCALATIONS_CRITICAL_Threshold

    必選

    警示配置閾值。未配置時規則將同步失敗並關閉。

    • unit:表示單位,可配置為percentcountqps

    • value:閾值。

    根據預設警示模板配置而定。

    CMS_ESCALATIONS_CRITICAL_Times

    可選

    CloudMonitor規則重試判斷次數。未配置時取預設值。

    3

    CMS_RULE_SILENCE_SEC

    可選

    CloudMonitor持續發送異常觸發規則時,初次上報警示後靜默期時間長度(單位:秒),防止過於頻繁警示。未配置時取預設值。

    900

kubectl

  1. 使用以下命令編輯警示規則的 YAML 檔案。

    kubectl edit ackalertrules default -n kube-system
  2. 可參考預設警示規則模板說明,根據實際需求修改 YAML 檔案內容,編輯完成後儲存並退出即可。

    警示規則配置YAML

    apiVersion: alert.alibabacloud.com/v1beta1
    kind: AckAlertRule
    metadata:
      name: default
    spec:
      groups:
        # 以下是一個叢集事件警示規則配置範例。
        - name: pod-exceptions                             # 警示規則分組名,對應警示模板中的Group_Name欄位。
          rules:
            - name: pod-oom                                # 警示規則名。
              type: event                                  # 警示規則類型(Rule_Type),枚舉值為event(事件類型)、metric-cms(CloudMonitor指標類型)。
              expression: sls.app.ack.pod.oom              # 警示規則運算式,當規則類型為event時,運算式的值為本文預設警示規則模板中Rule_Expression_Id值。
              enable: enable                               # 警示規則開啟狀態,枚舉值為enable、disable。
            - name: pod-failed
              type: event
              expression: sls.app.ack.pod.failed
              enable: enable
        # 以下是一個叢集基礎資源警示規則配置範例。
        - name: res-exceptions                              # 警示規則分組名,對應警示模板中的Group_Name欄位。
          rules:
            - name: node_cpu_util_high                      # 警示規則名。
              type: metric-cms                              # 警示規則類型(Rule_Type),枚舉值為event(事件類型)、metric-cms(CloudMonitor指標類型)。
              expression: cms.host.cpu.utilization          # 警示規則運算式,當規則類型為metric-cms時,運算式的值為本文預設警示規則模板中Rule_Expression_Id值。
              contactGroups:                                # 警示規則映射的連絡人分組配置,由ACK控制台產生,同一個帳號下連絡人相同,可在多叢集中複用。
              enable: enable                                # 警示規則開啟狀態,枚舉值為enable、disable。
              thresholds:                                   # 警示規則閾值。          
                - key: CMS_ESCALATIONS_CRITICAL_Threshold
                  unit: percent
                  value: '85'                                # CPU 使用率閾值,85%(預設)    
                - key: CMS_ESCALATIONS_CRITICAL_Times
                  value: '3'                                # 連續 3 次超過閾值觸發警示
                - key: CMS_RULE_SILENCE_SEC                 # 初次上報警示後靜默期時間長度 
                  value: '900'    

    通過 rules.thresholds,可靈活自訂警示閾值。例如上述樣本配置:當叢集節點 CPU 使用率超過 85%,連續 3 次達到閾值,且距離上一次警示已超過 900 秒時,將觸發警示通知。

    參數名

    是否必選

    說明

    預設值

    CMS_ESCALATIONS_CRITICAL_Threshold

    必選

    警示配置閾值。未配置時規則將同步失敗並關閉。

    • unit:表示單位,可配置為percentcountqps

    • value:閾值。

    根據預設警示模板配置而定。

    CMS_ESCALATIONS_CRITICAL_Times

    可選

    CloudMonitor規則重試判斷次數。未配置時取預設值。

    3

    CMS_RULE_SILENCE_SEC

    可選

    CloudMonitor持續發送異常觸發規則時,初次上報警示後靜默期時間長度(單位:秒),防止過於頻繁警示。未配置時取預設值。

    900

預設警示規則模板

在以下情況下註冊叢集會預設建立相應警示規則:

  • 開啟預設警示規則功能。

  • 未開啟預設警示規則,首次進入警示規則頁面。

預設建立的警示規則如下表所示。

警示項

規則說明

警示來源

Rule_Type

ACK_CR_Rule_Name

SLS_Event_ID

叢集巡檢發現異常

自動巡檢機制捕捉到潛在異常,需分析具體問題與日常維護策略。

Log Service

event

cis-sched-failed

sls.app.ack.cis.schedule_task_failed