创建 CloudWatch 警报以监控 Amazon IoT 指标 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

创建 CloudWatch 警报以监控 Amazon IoT 指标

您可以创建在警报改变状态时发送 Amazon SNS 消息的 CloudWatch 警报。警报会在您规定的时间范围内监控某一项指标。当指标的值在多个时间段内超过给定阈值时,将执行一项或多项操作。操作是一个发送到 Amazon SNS 主题或 Auto Scaling 策略的通知。告警只会调用操作进行持续的状态变更。CloudWatch 告警将不会简单地调用操作,因为这些操作均处于特定状态,该状态必须改变并在指定数量的时间段内一直保持。

您可以在 Amazon IoT 指标和维度 查看 CloudWatch 告警可以监控的所有指标。

我如何知道事物每天是否成功建立连接?

  1. 创建名为 things-not-connecting-successfully 的 Amazon SNS 主题,并记录其 Amazon Resource Name (ARN)。此流程将您主题的 ARN 称为 sns-topic-arn

    有关如何创建 Amazon SNS 通知的更多信息,请参阅 Amazon SNS 入门

  2. 创建警报。

    aws cloudwatch put-metric-alarm \ --alarm-name ConnectSuccessAlarm \ --alarm-description "Alarm when my Things don't connect successfully" \ --namespace AWS/IoT \ --metric-name Connect.Success \ --dimensions Name=Protocol,Value=MQTT \ --statistic Sum \ --threshold 10 \ --comparison-operator LessThanThreshold \ --period 86400 \ --evaluation-periods 1 \ --alarm-actions sns-topic-arn
  3. 测试警报。

    aws cloudwatch set-alarm-state --alarm-name ConnectSuccessAlarm --state-reason "initializing" --state-value OK
    aws cloudwatch set-alarm-state --alarm-name ConnectSuccessAlarm --state-reason "initializing" --state-value ALARM
  4. 验证告警是否显示在 CloudWatch 控制台中。

我如何在事物每天没有发布数据时得到通知?

  1. 创建名为 things-not-publishing-data 的 Amazon SNS 主题,并记录其 Amazon Resource Name (ARN)。此流程将您主题的 ARN 称为 sns-topic-arn

    有关如何创建 Amazon SNS 通知的更多信息,请参阅 Amazon SNS 入门

  2. 创建警报。

    aws cloudwatch put-metric-alarm \ --alarm-name PublishInSuccessAlarm\ --alarm-description "Alarm when my Things don't publish their data \ --namespace AWS/IoT \ --metric-name PublishIn.Success \ --dimensions Name=Protocol,Value=MQTT \ --statistic Sum \ --threshold 10 \ --comparison-operator LessThanThreshold \ --period 86400 \ --evaluation-periods 1 \ --alarm-actions sns-topic-arn
  3. 测试警报。

    aws cloudwatch set-alarm-state --alarm-name PublishInSuccessAlarm --state-reason "initializing" --state-value OK
    aws cloudwatch set-alarm-state --alarm-name PublishInSuccessAlarm --state-reason "initializing" --state-value ALARM
  4. 验证告警是否显示在 CloudWatch 控制台中。

我如何在事物的影子更新每天被拒绝时得到通知?

  1. 创建名为 things-shadow-updates-rejected 的 Amazon SNS 主题,并记录其 Amazon Resource Name (ARN)。此流程将您主题的 ARN 称为 sns-topic-arn

    有关如何创建 Amazon SNS 通知的更多信息,请参阅 Amazon SNS 入门

  2. 创建警报。

    aws cloudwatch put-metric-alarm \ --alarm-name UpdateThingShadowSuccessAlarm \ --alarm-description "Alarm when my Things Shadow updates are getting rejected" \ --namespace AWS/IoT \ --metric-name UpdateThingShadow.Success \ --dimensions Name=Protocol,Value=MQTT \ --statistic Sum \ --threshold 10 \ --comparison-operator LessThanThreshold \ --period 86400 \ --unit Count \ --evaluation-periods 1 \ --alarm-actions sns-topic-arn
  3. 测试警报。

    aws cloudwatch set-alarm-state --alarm-name UpdateThingShadowSuccessAlarm --state-reason "initializing" --state-value OK
    aws cloudwatch set-alarm-state --alarm-name UpdateThingShadowSuccessAlarm --state-reason "initializing" --state-value ALARM
  4. 验证告警是否显示在 CloudWatch 控制台中。

如何为 Jobs 创建 CloudWatch 告警?

Jobs 服务为您提供 CloudWatch 指标来监控任务。您可以创建 CloudWatch 告警来监控任意 任务指标

以下命令创建 CloudWatch 告警以监控任务 SampleOTAJob 的失败任务执行总数,并在失败任务执行数超过 20 时通知您。警报通过每 300 秒检查报告值来监控 Jobs 指标 FailedJobExecutionTotalCount。它在单个报告值大于 20 时激活,这意味着自任务启动以来失败的任务执行数超过了 20。当告警关闭时,它会向提供的 Amazon SNS 主题发送通知。

aws cloudwatch put-metric-alarm \ --alarm-name TotalFailedJobExecution-SampleOTAJob \ --alarm-description "Alarm when total number of failed job execution exceeds the threshold for SampleOTAJob" \ --namespace AWS/IoT \ --metric-name FailedJobExecutionTotalCount \ --dimensions Name=JobId,Value=SampleOTAJob \ --statistic Sum \ --threshold 20 \ --comparison-operator GreaterThanThreshold \ --period 300 \ --unit Count \ --evaluation-periods 1 \ --alarm-actions arn:aws:sns:<AWS_REGION>:<AWS_ACCOUNT_ID>:SampleOTAJob-has-too-many-failed-job-ececutions

以下命令创建一个 CloudWatch 告警,以监控任务 SampleOTAJob 在给定时间段内的失败任务执行数。然后,在该时段内有超过 5 个任务执行失败时,它会通知您。警报通过每 3600 秒检查报告值来监控 Jobs 指标 FailedJobExecutionCount。它在单个报告值大于 5 时激活,这意味着过去 1 小时内失败的任务执行数超过了 5。当告警关闭时,它会向提供的 Amazon SNS 主题发送通知。

aws cloudwatch put-metric-alarm \ --alarm-name FailedJobExecution-SampleOTAJob \ --alarm-description "Alarm when number of failed job execution per hour exceeds the threshold for SampleOTAJob" \ --namespace AWS/IoT \ --metric-name FailedJobExecutionCount \ --dimensions Name=JobId,Value=SampleOTAJob \ --statistic Sum \ --threshold 5 \ --comparison-operator GreaterThanThreshold \ --period 3600 \ --unit Count \ --evaluation-periods 1 \ --alarm-actions arn:aws:sns:<AWS_REGION>:<AWS_ACCOUNT_ID>:SampleOTAJob-has-too-many-failed-job-ececutions-per-hour