查询和查看未解决的提醒

本页面详细介绍了如何使用 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 被授予角色的用户的标识符。这通常是电子邮件地址。例如 infrastructure-operator@example.com
ROLE 包含您要向用户授予的权限的 Role 的名称。查找上表中提供的角色
GROUP_NAME 包含您要向用户授予的权限的 Role 的名称。例如 io-group
ZONE 可用区的名称

配置 1

此配置适用于 PA persona,以 org-admin 集群中的 grafana 对象为目标。 它向 Group 授予 platform-obs 命名空间中的 project-cortex-alertmanager-viewer 角色。

  • 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 persona,以 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 格式。