

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# モニタリングする CloudWatch アラームの作成 AWS IoT
<a name="creating_alarms"></a>

アラームの状態が変わったら、Amazon SNS メッセージを送信する Amazon CloudWatch のアラームを作成することができます。1 つのアラームで、指定した期間中、1 つのメトリクスを監視します。複数の期間にわたってメトリクスの値が一定のしきい値を超えると、1 つ以上のアクションが実行されます。アクションは、Amazon SNS のトピックまたは Auto Scaling のポリシーに送信される通知とすることができます。アラームは、持続している状態変化に対してのみアクションをトリガーします。CloudWatch のアラームは、メトリクスが特定の状態になっただけではアクションをトリガーしません。アクションを呼び出すには、状態が変化して、指定した期間継続している必要があります。

**Topics**
+ [モノが毎日正常に接続していない場合に通知されるようにするには?](#how_to_detect_connection_failures)
+ [モノが毎日正常にデータをパブリッシュしていない場合に通知されるようにするには?](#how_to_detect_publish_failures)
+ [Thing Shadow の更新が毎日拒否されている場合に通知されるようにするには?](#detect_rejected_updates)
+ [ジョブ用の CloudWatch アラームを作成するにはどうすればよいですか?](#cw-jobs-alarms)

 CloudWatch アラームがモニタリングできるすべてのメトリクスは、 [AWS IoT メトリクスとディメンション](metrics_dimensions.md) で確認できます。

## モノが毎日正常に接続していない場合に通知されるようにするには?
<a name="how_to_detect_connection_failures"></a>

1. `things-not-connecting-successfully` という名前の Amazon SNS トピックを作成し、対応する Amazon リソースネーム (ARN) を記録します。この手順では、トピックの ARN を ` sns-topic-arn ` とします。

   Amazon SNS 通知の作成方法については、[[Getting Started with Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)](Amazon SNS の開始方法) を参照してください。

1. アラームを作成します。

   ```
   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
   ```

1. アラームのテストを行います。

   ```
   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
   ```

1. アラームが [CloudWatch コンソール](https://console.aws.amazon.com/cloudwatch)に表示されていることを確認します。

## モノが毎日正常にデータをパブリッシュしていない場合に通知されるようにするには?
<a name="how_to_detect_publish_failures"></a>

1. `things-not-publishing-data` という名前の Amazon SNS トピックを作成し、対応する Amazon リソースネーム (ARN) を記録します。この手順では、トピックの ARN を ` sns-topic-arn ` とします。

   Amazon SNS 通知の作成方法については、[[Getting Started with Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)](Amazon SNS の開始方法) を参照してください。

1. アラームを作成します。

   ```
   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
   ```

1. アラームのテストを行います。

   ```
   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
   ```

1. アラームが [CloudWatch コンソール](https://console.aws.amazon.com/cloudwatch)に表示されていることを確認します。

## Thing Shadow の更新が毎日拒否されている場合に通知されるようにするには?
<a name="detect_rejected_updates"></a>

1. `things-shadow-updates-rejected` という名前の Amazon SNS トピックを作成し、対応する Amazon リソースネーム (ARN) を記録します。この手順では、トピックの ARN を ` sns-topic-arn ` とします。

   Amazon SNS 通知の作成方法については、[[Getting Started with Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)](Amazon SNS の開始方法) を参照してください。

1. アラームを作成します。

   ```
   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
   ```

1. アラームのテストを行います。

   ```
   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
   ```

1. アラームが [CloudWatch コンソール](https://console.aws.amazon.com/cloudwatch)に表示されていることを確認します。

## ジョブ用の CloudWatch アラームを作成するにはどうすればよいですか?
<a name="cw-jobs-alarms"></a>

ジョブサービスは、ジョブをモニタリングするための CloudWatch メトリクスを提供します。CloudWatch アラームを作成して、任意の [ジョブのメトリクス](metrics_dimensions.md#jobs-metrics) をモニタリングできます。

次のコマンドは、Job *SampleOTAJob* の失敗したジョブ実行の合計数を監視する CloudWatch アラームを作成し、20 を超えるジョブ実行が失敗した場合に通知します。アラームは、レポートされた値を 300 秒ごとにチェックして、ジョブメトリクス `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 アラームを作成して、特定の期間に Job *SampleOTAJob* の失敗したジョブの実行数を監視します。その後、その期間中に 5 つ以上のジョブの実行が失敗すると通知します。アラームは、レポートされた値を 3600 秒ごとにチェックして、ジョブメトリクス `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
```