查詢及查看未解決的快訊

本頁提供詳細操作說明,說明如何使用 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 personaRole 規定。

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

請視情況替換下列變數:

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

設定 1

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

  • kubectl 指令

    一般指令格式如下:

    kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n platform-obs --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: platform-obs
    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 要求中加入授權標頭。詳情請參閱 gdcloud 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 格式。