全部产品
云市场

告警触发器ACS::AlarmTrigger

更新时间:2019-11-24 21:23:12

用途

当包含告警触发器的模版创建执行后,该执行初始为等待中状态。如果告警触发器中设置的监控项达到告警阈值,执行状态则切换为运行中,并立即开始执行模版中定义后续任务,后续任务一般为自动解除告警的相关操作。应用场景举例,如当ECS实例的cpu使用率超过90%时,触发告警,自动执行重启该实例的操作。

注意:在告警触发器中,可设置监控项有两大类,分别是预装插件采集的和ECS原生自带的,关于如何区分可参考监控项说明。如需对云监控插件类采集的监控项进行监控,请您先为待监控实例安装插件,否则告警无法触发。插件安装方法:在云监控-主机监控中选择待监控实例,单击 点击安装即可。

限制

触发器有如下限制:

  • 一个模版只允许有一个触发器动作。
  • 触发器动作的任务必须定义在模版Tasks中的第一个任务。
  • 被嵌套的模版(子模版)中不允许有触发器动作。

语法

  • YAML格式

    1. Tasks:
    2. - Name: taskName1 # 任务名称
    3. Action: 'ACS::AlarmTrigger'
    4. Properties:
    5. Namespace: 'acs_ecs_dashboard' # 必填,产品的数据命名空间。比如ecs产品。可选参数通过查询DescribeMetricMetaList接口获得,或访问https://help.aliyun.com/document_detail/28619.html一览。
    6. MetricName: 'cpu_total' # 必填,监控项名称。比如当前消耗的总CPU百分比。可选参数通过查询DescribeMetricMetaList接口获得,或访问https://help.aliyun.com/document_detail/28619.html一览。
    7. Statistics: 'Average' # 告警统计方法。如Average为统计某时间段平均值。可选参数通过查询DescribeMetricMetaList接口获得,或访问https://help.aliyun.com/document_detail/28619.html一览。
    8. ComparisonOperator: 'GreaterThanThreshold' # 必填,阈值比较符。可选择比较类型有,GreaterThanOrEqualToThreshold:大于等于、GreaterThanThreshold:大于、LessThanOrEqualToThreshold:小于等于、LessThanThreshold:小于、NotEqualToThreshold:不等、GreaterThanYesterday:同比昨天时间上涨、LessThanYesterday:同比昨天时间下降、GreaterThanLastWeek:同比上周同一时间上涨、LessThanLastWeek:同比上周同一时间下降、GreaterThanLastPeriod:环比上周期上涨、LessThanLastPeriod:环比上周期下降。
    9. Threshold: '90' # 告警阈值,比如cpu90%的总使用率。
    10. Resources: '[{"resource":"_ALL"}]' # 必填,需要告警的资源。如[{"resource":"_ALL"}]为表示账号下所有资源,如指定具体实例为[{"instanceId":"i-bp123467zxcvb"}];如指定某实例上的磁盘分区[{"instanceId":"i-bp123467zxcvb","device":"/dev/vda1"}];指定实例上的多个磁盘分区,[{"instanceId":"i-bp123467zxcvb","device":"/dev/vda1"},{"instanceId":"i-bp123467zxcvb","device":"/dev/vdb1"}]
    11. Times: 1 # 报警重复次数。
    12. Interval: 60 # 告警规则的探测周期,单位为秒。默认为监控项的最小频率60s。
    13. SilenceTime: 3600 # 通道沉默周期,单位为秒。默认86400秒(即1天),最短为3600秒(即1小时)。监控数据持续超过报警规则阈值时,每个沉默周期内只发送1次报警通知。
  • JSON格式(请参考YAML注释说明)

    1. {
    2. "Tasks": [
    3. {
    4. "Name": "taskName1",
    5. "Action": "ACS::AlarmTrigger",
    6. "Properties": {
    7. "Namespace": "acs_ecs_dashboard",
    8. "MetricName": "cpu_total",
    9. "Statistics": "Average",
    10. "ComparisonOperator": "GreaterThanThreshold",
    11. "Threshold": "90",
    12. "Resources": "[{\"resource\":\"_ALL\"}]",
    13. "Times": 1,
    14. "Interval": 60
    15. }
    16. }
    17. ]
    18. }

示例

在1分钟周期内,若被监控ECS实例的CPU总使用率超过阈值,则实例自动重启。

  • YAML格式:
  1. ---
  2. FormatVersion: OOS-2019-06-01
  3. Description: Reboot ECS instance when CPU utilization excceded threshold.
  4. Parameters:
  5. instanceId:
  6. Type: String
  7. Description: The ECS instance ID to be monitored.
  8. threshold:
  9. Type: String
  10. Description: The CPU utilization threshold, for example 80.
  11. Tasks:
  12. - Name: cpuAcrossThresholdAlarmTrigger
  13. Action: 'ACS::AlarmTrigger'
  14. Properties:
  15. Namespace: 'acs_ecs_dashboard'
  16. MetricName: 'cpu_total'
  17. Statistics: 'Average'
  18. ComparisonOperator: 'GreaterThanThreshold'
  19. Threshold: '{{threshold}}'
  20. Resources: '[{"instanceId":"{{ instanceId }}"}]'
  21. Times: 1
  22. SilenceTime: 3600
  23. - Name: RebootInstance
  24. Action: 'ACS::ECS::RebootInstance'
  25. Properties:
  26. instanceId: '{{ instanceId }}'
  • JSON格式:
  1. {
  2. "FormatVersion": "OOS-2019-06-01",
  3. "Description": "Reboot ECS instance when CPU utilization excceded threshold.",
  4. "Parameters": {
  5. "instanceId": {
  6. "Type": "String",
  7. "Description": "The ECS instance ID to be monitored."
  8. },
  9. "threshold": {
  10. "Type": "String",
  11. "Description": "The CPU utilization threshold, for example 80."
  12. }
  13. },
  14. "Tasks": [
  15. {
  16. "Name": "cpuAcrossThresholdAlarmTrigger",
  17. "Action": "ACS::AlarmTrigger",
  18. "Properties": {
  19. "Namespace": "acs_ecs_dashboard",
  20. "MetricName": "cpu_total",
  21. "Statistics": "Average",
  22. "ComparisonOperator": "GreaterThanThreshold",
  23. "Threshold": "{{threshold}}",
  24. "Resources": "[{\"instanceId\":\"{{ instanceId }}\"}]",
  25. "Times": 1,
  26. "SilenceTime": 3600
  27. }
  28. },
  29. {
  30. "Name": "RebootInstance",
  31. "Action": "ACS::ECS::RebootInstance",
  32. "Properties": {
  33. "instanceId": "{{ instanceId }}"
  34. }
  35. }
  36. ]
  37. }