查询和查看未解决的提醒

本页面详细介绍了如何使用 GDC 控制台和 Cortex 端点的 curl 工具查询和直观呈现开放提醒,以便了解问题并解决问题。

根据 Google Distributed Cloud (GDC) 气隙环境中的日志和指标创建提醒规则 后,您 可以开始监控项目的开放提醒。您可以在 GDC 控制台上直观呈现和过滤系统事件触发的提醒,也可以使用 Cortex 端点的 curl 工具直接从 Cortex 访问这些提醒,以便进行灵活的脚本编写和自动化。

您可以通过以下两种方法之一访问开放提醒:

  • GDC 控制台:在集成面板中直观呈现提醒数据 ,这些面板包含特定数据源的提醒数量 、严重级别、持续时间、状态、消息和标签等信息。GDC 控制台提供了一个用户友好的界面,用于过滤和分析系统组件中的提醒。
  • Cortex Alertmanager 端点:对于更高级的用例,请在命令行中使用 curl 工具直接查询您的 项目 Cortex 实例。 Cortex 会存储项目的 Alertmanager 提醒,并提供 HTTP 端点以进行程序化访问。通过此访问权限,您可以导出数据、自动执行任务、配置 cron 作业以及构建自定义集成。

准备工作

如需获得查询和直观呈现提醒所需的权限,请让项目 IAM 管理员在项目命名空间中向您授予其中一个关联的项目 Cortex Alertmanager 角色。根据您需要的访问权限级别,您可以在项目中获得此资源的 Editor 或 Viewer 角色。

下表总结了 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 您需要包含此 RoleBinding 将应用到的 NAMESPACE 的特定集群的 kubeconfig。
RULE_NAME RoleBinding 资源在命名空间中的唯一名称。例如,pa-cortex-alertmanager-viewer
NAMESPACE 将创建和应用此 RoleBinding 的 Kubernetes 命名空间。在前面的表格中查找 Namespace 列。
EMAIL_ADDRESS 被授予角色的用户的标识符。这通常是一个电子邮件地址。例如,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 对象。 它向 User 授予 platform-obs 命名空间中的 project-cortex-alertmanager-viewer 角色。

  • 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. 在导航菜单中,选择 运维 > 提醒
  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 格式。