首页 应用实时监控服务 告警管理(新版) 实践教程 通过阿里云标签(Tag)分发告警

通过阿里云标签(Tag)分发告警

更新时间: 2024-02-08 11:45:14

通过配合使用ARMS Prometheus云服务接入集群和ARMS告警管理,可以按照阿里云标签对资源进行告警。本文演示如何通过Service标签对ECS的CPU使用率进行告警。

背景信息

阿里云支持给云上各种资源打标签,提供灵活易用的多维度资源管理能力。通过标签可以完成资源管理、分账等功能。在实际的使用中我们通常会给应用打上各种标签,例如env:prod代表应用是生产环境,service:iam代表应用提供IAM服务。通过这些标签我们可以从各个维度来进行管理。如查看生产环境的应用列表,查看IAM服务的资源使用量。

原理

  1. ARMS Prometheus云服务接入集群支持将阿里云标签导入为Prometheus指标(cloud_monitor_instance_tag),记录了各个资源上的标签。

  2. 在告警规则上配置特定的注释(_aliyun_arms_enrich_desc),注释内容是一个可执行的PromQL,在告警发生后告警引擎会通过查询这个PromQL,将查询出的标签添加到告警中。

  3. 配置注释为cloud_monitor_instance_tag的查询语句,为告警添加标签。

操作步骤

  1. 为ECS添加标签。

    1. ECS管理控制台实例与镜像 > 实例页面,单击目标ECS实例。

    2. 标签区域单击编辑标签

    3. 在弹出的对话框中设置标签ack.aliyun.com,自定义标签,然后单击确定

  2. 将ECS接入阿里云Prometheus监控云服务。具体操作,请参见Prometheus实例 for 云服务

  3. 创建Prometheus告警规则。

    1. ARMS控制台Prometheus监控 > Prometheus告警规则页面,单击创建Prometheus告警规则

    2. 创建Prometheus告警规则页面,设置告警名称ECS CPU使用率大于75%检测类型自定义PromQL自定义PromQL语句设置为arms_cms_ecs_cpu_total > 75,其他告警参数的配置,请参见Prometheus告警规则

  4. 告警添加标签。

    创建Prometheus告警规则页面单击高级设置右侧箭头,添加注释。

    告警中使用注释对告警进行打标,由于Prometheus不支持标签的Key中包含半角句号(.),因此此处通过label_replace对标签进行重命名,重命名为clusterId。

    注释说明:

    • 键:_aliyun_arms_enrich_desc。

    • 值: 可执行的PromQL,支持通过${xxx}引用告警中的标签,此处示例为sum(label_replace(aliyun_arms_tag{id=${id}, key="ack.aliyun.com", service="ecs"}, "clusterId", "$1", "value", "(.*)")) by (clusterId),示例中使用了${id}来引用ECS的ID。

    重要
    • 注释值的内容必须是可以执行的PromQL。

    • 执行PromQL查询出的内容只能包含一条时间序列(Timeseries)。

    • PromQL执行结果中的查询出来的所有标签会被添加到告警中。

  5. 配置通知策略。

    通知策略页面通过设置匹配告警事件规则为clusterId: 标签值订阅告警。具体操作,请参见通知策略通知策略

  6. 告警发送历史页面查看告警信息。更多信息,请参见查看告警发送历史

阿里云首页 应用实时监控服务 相关技术圈