Amazon CloudWatchは、AWS上のアマゾンウェブサービス (AWS) のリソースとアプリケーションをリアルタイムで監視するサービスです。 CloudWatchはAmazon Simple Notification Service (Amazon SNS) と連携してアラートを送信できます。 Amazon SNSでLog Serviceのアラート取り込みシステムによって提供されるwebhook URLを設定するだけで済みます。 これにより、CloudWatchからLog Serviceにアラートを送信できます。 Log Serviceのアラートシステムは、アラートのノイズ除去やアラート通知の送信など、アラートを処理します。
前提条件
プロトコルがCloudWatchであるアラート取り込みアプリケーションが作成されます。 詳細については、「アラート取り込み用のwebhook URLの設定」をご参照ください。CloudWatchの設定
- AWSマネジメントコンソールにログインします。
- SNSトピックを作成します。 Amazon SNSコンソールで以下の必須パラメーターを設定します。 詳細については、「Amazon SNSトピックの作成」をご参照ください。
パラメーター 説明 データ型 トピックのタイプ。 [標準] を選択します。 名前 トピックの名前。 - SNSトピックを購読します。 Amazon SNSコンソールで以下の必須パラメーターを設定します。 詳細については、「Amazon SNSトピックの購読」をご参照ください。
パラメーター 説明 トピックARN ステップ2で作成したトピックのAmazonリソース名 (ARN) を入力します。 プロトコル [HTTP] を選択します。 Endpoint Log serviceのアラート取り込みシステムでアラート取り込みサービスとアラート取り込みアプリケーションを作成した後に生成されるwebhook URLの完全なURLを入力します。 詳細については、「Webhook URL の取得」をご参照ください。 rawメッセージ配信の有効化 [rawメッセージ配信の有効化] を選択します。 設定が完了すると、サブスクリプションは [保留中の確認] 状態になります。 この場合、Amazon SNSはサブスクリプション確認メッセージをLog Serviceに送信します。 Log Serviceがメッセージを受信すると、Log Serviceはメッセージ内のリンクに自動的にアクセスします。 リンクにアクセスすると、サブスクリプションは確認済み状態に変わり、サブスクリプションは成功します。説明 サブスクリプションが失敗した場合は、サブスクリプションを選択し、[確認要求] をクリックして別のサブスクリプション確認メッセージを送信します。 それでもサブスクリプションが失敗した場合は、log Serviceコンソールのアラートセンターのトラブルシューティングセンターでエラーログを表示します。
- Log Serviceに取り込むアラートを選択し、通知方法を設定します。 Amazon CloudWatchコンソールのアラート編集ページで2つの通知方法を設定する必要があります。 詳細については、「アラームの編集」をご参照ください。

CloudWatchアラート
CloudWatchアラートは、静的しきい値に基づいて作成されるアラートと、異常検出に基づいて作成されるアラートの2つのタイプに分類されます。 [トリガー] フィールドの値は、アラートの種類によって異なります。 詳細については、「AWS::CloudWatch::Alarm」をご参照ください。
- 静的しきい値に基づいて作成されたアラートの場合、Triggerフィールドの値にはMetricNameやDimensionsなどのフィールドが含まれます。
- 異常検出に基づいて作成されたアラートの場合、Triggerフィールドの値にはMetricsなどのフィールドが含まれます。 Metricsフィールドの値は、メトリクスのリストです。
- 静的しきい値
に基づいて作成されたアラート { "AlarmName": "test-alert" 、 "AlarmDescription": "これはテスト警告です" 、 "AWSAccountId": "123456" 、 "NewStateValue": "ALARM" 、 「NewStateReason」: 「Threshold Crossed: 最後の1個のデータポイント [1.0 (04/08/21 03:06:00)] のうちの1個は、閾値 (1.0) (OK → ALARM遷移の最小1個のデータポイント) 以上であった。」 "StateChangeTime": "2021-08-04T03:10:10.215 0000" 、 "地域": "米国東部 (オハイオ州)" 、 "AlarmArn": "arn:aws:cloudwatch:us-east-2:123456:alarm:test-alert" 、 "OldStateValue": "OK" 、 "トリガー": { "MetricName": "NumberOfMessagesPublished" 、 "名前空間": "AWS/SNS" 、 "StatisticType": "Statistic" 、 "統計": "SUM" 、 "Unit": null、 "ディメンション": [ { "value": "my-topic" 、 "name": "TopicName" } ], "期間": 60、 "EvaluationPeriods": 1、 "ComparisonOperator": "GreaterThanOrEqualToThreshold" 、 "しきい値": 1.0、 "TreatMissingData": "- TreatMissingData: missing" 、 "EvaluateLowSampleCountPercentile": "" } } - 異常検出
に基づいて作成されたアラート { "AlarmName": "cpu alrm" 、 "AlarmDescription": "これはcpuアラームです" 、 "AWSAccountId": "123456" 、 "NewStateValue": "INSUFFICIENT_DATA" 、 「NewStateReason」: 「Threshold Crossed: 2期間にわたってデータポイントが受信されず、2つの欠落したデータポイントは [Breaching] として扱われました。」、 "StateChangeTime": "2021-08-05T08:38:47.104 + 0000" 、 "地域": "米国東部 (オハイオ州)" 、 "AlarmArn": "arn:aws:cloudwatch:us-east-2:123456:alarm:cpu alrm" 、 "OldStateValue": "OK" 、 "トリガー": { "期間": 60、 "EvaluationPeriods": 2、 "ComparisonOperator": "GreaterThanUpperThreshold" 、 "ThresholdMetricId": "ad1" 、 "TreatMissingData": "- TreatMissingData: breaching" 、 "EvaluateLowSampleCountPercentile": "" 、 「メトリック」: [ { "Id": "m1" 、 "MetricStat": { "メトリック": { "ディメンション": [ { "value": "i-1a2b3c4d" 、 "name": "InstanceId" } ], "MetricName": "CPUUtilization" 、 "名前空間": "AWS/EC2" }, "期間": 60、 "Stat": "平均" }, "ReturnData": true }, { "Expression": "ANOMALY_DETECTION_BAND(m1、0.1)" 、 "Id": "ad1" 、 "ラベル": "CPUUtilization (expected)" 、 "ReturnData": true } ] } }
フィールドマッピング
CloudWatchアラートがLog Serviceに取り込まれると、アラートはフィールドマッピングに基づいてLog Serviceアラートに変換されます。 以下に、Log Service アラートのサンプルコードを示します。
- 静的しきい値
に基づいて作成されたアラート { "aliuid": "aliuid1" 、 "alert_instance_id": "{自動生成}" 、 "alert_id": "CloudWatch_test-alert" 、 "alert_type": "sls_pub" 、 "alert_name": "test-alert" 、 "region": "{アラートセンターが属するプロジェクトのリージョン}" 、 "project": "{アラートセンターが属するプロジェクト}" 、 "project_id": 0、 "next_eval_interval": 60、 "alert_time": 1628046610、 "fire_time": 1628046610、 "fire_results": null, "fire_results_count": 0、 "resolve_time": 0, "status": "firing" 、 "results": null, "labels": { "TopicName": "my-topic" 、 "__comparison_operator__": "GreaterThanOrEqualToThreshold" 、 "__statistic__": "SUM" 、 "__statistic_type__": "統計" 、 "__threshold__": "1" 、 "metric_name": "NumberOfMessagesPublished" }, "annotations": { "__alarm_arn_": "arn:aws:cloudwatch:us-east-2:123456:alarm:test-alert" 、 "__aws_accountId__": "123456" 、 "__aws_region__": "米国東部 (オハイオ州)" 、 "__cloud_watch_alert_type__": "StaticThreshold" 、 "__config_app__": "sls_pub_alert" 、 "__pub_alert_app__": "{アラート取り込みアプリケーションのID}" 、 "__pub_alert_protocol__": "cloud_watch" 、 "__pub_alert_region__": "{アラートの送信先のエンドポイントのリージョン}" 、 "__pub_alert_service__": "{アラート取り込みサービスのID}" 、 "desc": "これはテストアラートです" 、 "title": "Threshold Crossed: 最後の1つのデータポイント [1.0 (04/08/21 03:06:00)] のうちの1つがしきい値 (1.0) 以上でした (OK → ALARM遷移の最小1データポイント) 。 }, "severity": 10、 "policy": { "alert_policy_id": "{アラート取り込みアプリケーションに指定されているアラートポリシーのID}" 、 "action_policy_id": "{アラート取り込みアプリケーションに指定されているアクションポリシーのID}" 、 "use_default": false, "repeat_interval": "{アラート取り込みアプリケーションに指定されたサイクル}" }, "template": null, "drill_down_query": " https://us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#alarmsV2:alarm/test-alert" } - 異常検出
に基づいて作成されたアラート { "aliuid": "aliuid1" 、 "alert_instance_id": "{自動生成}" 、 "alert_id": "CloudWatch_cpu alrm" 、 "alert_type": "sls_pub" 、 "alert_name": "cpu alrm" 、 "region": "{アラートセンターが属するプロジェクトのリージョン}" 、 "project": "{アラートセンターが属するプロジェクト}" 、 "project_id": 0、 "next_eval_interval": 120、 "alert_time": 1628152727、 "fire_time": 1628152727、 "fire_results": null, "fire_results_count": 0、 "resolve_time": 0, "status": "firing" 、 "results": null, "labels": { "__comparison_operator__": "GreaterThanUpperThreshold" 、 "__threshold_metricId__": "ad1" }, "annotations": { "__alarm_arn_": "arn:aws:cloudwatch:us-east-2:123456:alarm:cpu alrm" 、 "__aws_accountId__": "123456" 、 "__aws_region__": "米国東部 (オハイオ州)" 、 "__cloud_watch_alert_type__": "AnomalyDetection" 、 "__config_app__": "sls_pub_alert" 、 "__pub_alert_app__": "{アラート取り込みアプリケーションのID}" 、 "__pub_alert_protocol__": "cloud_watch" 、 "__pub_alert_region__": "{アラートの送信先のエンドポイントのリージョン}" 、 "__pub_alert_service__": "{アラート取り込みサービスのID}" 、 "desc": "これはcpuアラームです" 、 "title": "Threshold Crossed: データポイントは2期間受信されず、2つの欠落したデータポイントは [ブリーチング] として扱われました。 }, "severity": 8、 "policy": { "alert_policy_id": "{アラート取り込みアプリケーションに指定されているアラートポリシーのID}" 、 "action_policy_id": "{アラート取り込みアプリケーションに指定されているアクションポリシーのID}" 、 "use_default": false, "repeat_interval": "{アラート取り込みアプリケーションに指定されたサイクル}" }, "template": null, "drill_down_query": " https://us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#alarmsV2:alarm/cpu % 20alrm" }
次の表に、Log ServiceとCloudWatchアラート間のフィールドマッピングを示します。
| Log Serviceフィールド | CloudWatchフィールド | 説明 |
| aliuid | なし | アラート取り込みアプリケーションが属する Alibaba Cloud アカウントの ID。 |
| alert_id | なし | アラートモニタリングルールの ID。 alert_idフィールドの値は、CloudWatch _{$ alert_name} 形式です。 {$alert_name} はアラートモニタリングルールの名前です。 |
| alert_type | なし | アラートのタイプ。 値は sls_pub に固定されています。 |
| alert_name | AlarmName | アラートモニタリングルールのルール名。 |
| status | NewStateValue | アラートのステータス。
|
| next_eval_interval |
| アラートが評価される間隔。 値は、CloudWatchアラートのPeriodフィールドとEvaluationPeriodsフィールドの値の積です。 |
| alert_time | StateChangeTime | アラートがトリガーされた時刻。 |
| fire_time | StateChangeTime | アラートルールが最初にトリガーされた時刻。 |
| resolve_time | StateChangeTime | アラートが作成された時刻。
|
| labels | なし | アラートのラベル。
|
| annotations | なし | アラートの注釈。 次のフィールドがannotationsフィールドに追加されます。
|
| severity | NewStateValue | アラートの重大度。
|
| policy | なし | アラート取り込みアプリケーションに指定されているアラートポリシー。 詳細については、「ポリシー変数の説明」をご参照ください。 |
| project | なし | アラートセンターが属するプロジェクト。 詳細は、「プロジェクト」をご参照ください。 |
| drill_down_query | なし | CloudWatchアラートへのURL。 |