查詢及查看未結案的快訊

本頁面提供詳細操作說明,說明如何使用 GDC 控制台和 Cortex 端點的 curl 工具,查詢及以視覺化方式呈現未解決的快訊,以便掌握問題並解決問題。

根據 Google Distributed Cloud (GDC) 氣隙環境的記錄和指標建立快訊規則後,即可開始監控專案中的未解決快訊。您可以在 GDC 控制台上查看及篩選系統事件觸發的快訊,也可以使用 curl 工具,直接從 Cortex 存取快訊,靈活編寫指令碼及自動化。

您可以透過下列兩種方法存取未結警報:

  • GDC 主控台:在整合式面板中以視覺化方式呈現快訊資料,包括特定資料來源的快訊數量、嚴重程度、持續時間、狀態、訊息和標籤等資訊。GDC 控制台提供簡單易用的介面,方便您篩選及分析系統元件的快訊。
  • Cortex Alertmanager 端點:如需進階用途,請使用指令列上的 curl 工具,直接查詢專案的 Cortex 執行個體。Cortex 會儲存專案的 Alertmanager 快訊,並提供 HTTP 端點供程式輔助存取。您可透過這項存取權匯出資料、自動執行工作、設定 Cron 工作,以及建構自訂整合功能。

事前準備

如要取得查詢及顯示快訊所需的權限,請要求專案 IAM 管理員在專案命名空間中,授予您其中一個相關聯的 Project Cortex Alertmanager 角色。視您需要的存取層級和權限而定,您或許可以在專案中取得這項資源的編輯者或檢視者角色。

下表彙整 PA and AO personaRole 規定。

角色 物件 叢集 角色 命名空間 群組/使用者 設定
PA grafana org-admin project-cortex-alertmanager-viewer platform-obs 群組 1
PA grafana org-admin project-cortex-alertmanager-viewer platform-obs 使用者 2
AO alertmanager org-admin project-cortex-alertmanager-viewer PROJECT_NAMESPACE 群組 1
AO alertmanager org-admin project-cortex-alertmanager-viewer PROJECT_NAMESPACE 使用者 2

請適當替換下列變數:

變數 說明
KUBECONFIG 您需要特定叢集的 kubeconfig,其中包含要套用 RoleBinding 的 NAMESPACE
RULE_NAME 命名空間中這個 RoleBinding 資源的專屬名稱。例如:pa-cortex-alertmanager-viewer
NAMESPACE 將建立及套用此 RoleBinding 的 Kubernetes 命名空間。請參閱上表中的「Namespace」欄。
EMAIL_ADDRESS 要授予角色的使用者 ID。這通常是電子郵件地址。例如 infrastructure-operator@example.com
ROLE Role 的名稱,其中包含您要授予使用者的權限。尋找上表列出的可用角色
GROUP_NAME PA/AO 使用者所屬的 Group 名稱。例如:pa-group
ZONE 區域名稱

設定 1

這項設定會將權限授予使用者群組,讓他們存取 org 叢集中的 PA/AO 快訊。設定完成後,請參閱本文的主控台部分,瞭解如何在 GDC 主控台中查看快訊。

  • Kubectl 指令

    一般指令格式如下:

    kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n `NAMESPACE` --group=`GROUP_NAME` --role=project-cortex-alertmanager-viewer
    

    範例:

    kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-cortex-alertmanager-viewer-binding --role=project-cortex-alertmanager-viewer --group=my-team --namespace=platform-obs
    
  • IAC 檔案路徑

    /infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`GROUP_NAME`/<YAML_FILE>
    
  • Yaml 檔案

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: RULE_NAME
      namespace: NAMESPACE
    subjects:
    - kind: Group
      name: GROUP_NAME
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: Role
      name: project-cortex-alertmanager-viewer
      apiGroup: rbac.authorization.k8s.io
    

設定 2

這項設定適用於 PA 角色,目標是 org-admin 叢集中的 grafana 物件。將 platform-obs 命名空間中的 project-cortex-alertmanager-viewer 角色授予 User

  • Kubectl 指令

    一般指令格式如下:

    kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n platform-obs --user=`EMAIL_ADDRESS` --role=project-cortex-alertmanager-viewer
    

    範例:

    kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-cortex-alertmanager-viewer-binding --role=project-cortex-alertmanager-viewer --user=my-email@example.com --namespace=platform-obs
    
  • IAC 檔案路徑

    /infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`EMAIL_ADDRESS`/<YAML_FILE>
    
  • Yaml 檔案

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: RULE_NAME
      namespace: platform-obs
    subjects:
    - kind: User
      name: EMAIL_ADDRESS
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: Role
      name: project-cortex-alertmanager-viewer
      apiGroup: rbac.authorization.k8s.io
    

    如要進一步瞭解這些角色,請參閱「準備 IAM 權限」。

查看及篩選未結警告

選取下列其中一種方法,從專案命名空間查詢及篩選未解決的快訊:

控制台

如要透過 GDC 控制台查看專案中尚未解決的警告,請按照下列步驟操作:

  1. 登入 GDC 控制台
  2. 在 GDC 控制台中選取專案。
  3. 在導覽選單中,依序選取「Operations」>「Alerting」
  4. 選取「快訊」分頁標籤。
  5. 查看快訊清單。
  6. 在「已開啟的快訊」部分,按一下「篩選器」,即可只顯示已開啟的快訊。您也可以依其他屬性名稱或值篩選快訊。
  7. 按一下快訊名稱,即可查看快訊詳細資料。

Cortex 端點

本節說明如何使用 Cortex Alertmanager 端點存取快訊。

找出 Cortex 端點

以下網址是專案 Cortex 執行個體的端點:

  https://GDC_URL/PROJECT_NAMESPACE/cortex/alertmanager/

更改下列內容:

  • GDC_URL:您在 GDC 中的機構網址。
  • PROJECT_NAMESPACE:您的專案命名空間。

    舉例來說,org-1 機構中 platform-obs 專案的 Cortex 端點為 https://org-1/platform-obs/cortex/alertmanager/

驗證 curl 要求

  1. 下載並安裝 gdcloud CLI
  2. 設定 gdcloud core/organization_console_url 屬性:

    gdcloud config set core/organization_console_url
    https://GDC_URL
    
  3. 使用已設定的識別資訊提供者登入

    gdcloud auth login
    
  4. 使用使用者名稱和密碼驗證身分並登入。

    登入成功後,您可以使用 gdcloud auth print-identity-token 指令,在 curl 要求中加入授權標頭。詳情請參閱 gcloud auth

呼叫 Cortex 端點

如要使用 curl 工具連上 Cortex 端點,請完成下列步驟:

  1. 驗證 curl 要求
  2. 使用 curl 呼叫 Cortex 端點,並使用標準 Alertmanager API 規格 (https://prometheus.io/docs/prometheus/latest/querying/api/#alertmanagers) 擴充網址,以查詢快訊。

    以下是 curl 要求範例:

      curl https://GDC_URL/PROJECT_NAME/cortex/alertmanager/api/v1/alertmanagers \
      -H "Authorization: Bearer $(gdcloud auth print-identity-token \
      --audiences=https://GDC_URL)"
    

    執行指令後,您會取得輸出內容。API 回應採用 JSON 格式。