本页面详细介绍了如何使用 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 persona 的 Role 要求。
| 角色 | 对象 | 集群 | 角色 | 命名空间 | 群组/用户 | 配置 |
|---|---|---|---|---|---|---|
| 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-obsIAC 文件路径
/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-obsIAC 文件路径
/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 控制台中查看项目中的未处理提醒:
- 登录 GDC 控制台。
- 在 GDC 控制台中,选择您的项目。
- 在导航菜单中,依次选择操作 > 提醒。
- 选择提醒标签页。
- 查看提醒列表。
- 在已打开的提醒部分,点击过滤可仅显示已打开的提醒。您还可以按其他属性名称或值过滤提醒。
- 点击提醒名称可查看提醒详情。
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 请求进行身份验证
- 下载并安装 gdcloud CLI。
设置 gdcloud
core/organization_console_url属性:gdcloud config set core/organization_console_url https://GDC_URL-
gdcloud auth login 使用您的用户名和密码进行身份验证并登录。
登录成功后,您可以通过
gdcloud auth print-identity-token命令在 curl 请求中使用授权标头。如需了解详情,请参阅 gdcloud auth。
调用 Cortex 端点
完成以下步骤,以使用 curl 工具访问 Cortex 端点:
- 对
curl请求进行身份验证。 使用
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 格式。