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

创建 CloudWatch 警报以监控 AWS IoT

您可以创建 CloudWatch 警报,用于在警报改变状态时发送 Amazon SNS 消息。警报会在您规定的时间范围内监控某一项指标。当指标的值在多个时间段内超过给定阈值时,将执行一项或多项操作。该操作可以是向 Amazon SNS 主题或 Auto Scaling 策略发送的通知。警报仅在出现持续状态变化时才会触发操作。CloudWatch 警报将不会仅因为其处于特定状态而触发操作;该状态必须已改变并在指定的若干个时间段内保持不变。

您可以在AWS IoT 指标与维度查看 CloudWatch 警报可监控的所有指标。

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

  1. 创建名为 things-not-connecting-successfully 的 Amazon SNS 主题,并记录其 Amazon 资源名称 (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 \ --unit Count \ --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 资源名称 (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 \ --unit Count \ --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 资源名称 (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