すべてのプロダクト
Search
ドキュメントセンター

:CloudWatchアラートをLog Serviceに取り込む

最終更新日:Jan 03, 2025

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の設定

  1. AWSマネジメントコンソールにログインします。
  2. SNSトピックを作成します。
    Amazon SNSコンソールで以下の必須パラメーターを設定します。 詳細については、「Amazon SNSトピックの作成」をご参照ください。
    パラメーター説明
    データ型トピックのタイプ。 [標準] を選択します。
    名前トピックの名前。
  3. SNSトピックを購読します。
    Amazon SNSコンソールで以下の必須パラメーターを設定します。 詳細については、「Amazon SNSトピックの購読」をご参照ください。
    パラメーター説明
    トピックARNステップ2で作成したトピックのAmazonリソース名 (ARN) を入力します。
    プロトコル[HTTP] を選択します。
    EndpointLog serviceのアラート取り込みシステムでアラート取り込みサービスとアラート取り込みアプリケーションを作成した後に生成されるwebhook URLの完全なURLを入力します。 詳細については、「Webhook URL の取得」をご参照ください。
    rawメッセージ配信の有効化[rawメッセージ配信の有効化] を選択します。
    設定が完了すると、サブスクリプションは [保留中の確認] 状態になります。 この場合、Amazon SNSはサブスクリプション確認メッセージをLog Serviceに送信します。 Log Serviceがメッセージを受信すると、Log Serviceはメッセージ内のリンクに自動的にアクセスします。 リンクにアクセスすると、サブスクリプションは確認済み状態に変わり、サブスクリプションは成功します。
    説明 サブスクリプションが失敗した場合は、サブスクリプションを選択し、[確認要求] をクリックして別のサブスクリプション確認メッセージを送信します。 それでもサブスクリプションが失敗した場合は、log Serviceコンソールのアラートセンターのトラブルシューティングセンターでエラーログを表示します。
    Subscribe to an SNS topic
  4. Log Serviceに取り込むアラートを選択し、通知方法を設定します。
    Amazon CloudWatchコンソールのアラート編集ページで2つの通知方法を設定する必要があります。 詳細については、「アラームの編集」をご参照ください。
    • アラーム状態トリガー: アラート通知がトリガーされる状態を選択します。
      • 通知方法の1つは、アラーム状態トリガー[アラーム中] または [データ不足] を選択します。 アラートが選択された状態の場合、CloudWatchはアラート通知を送信します。
      • その他の通知方法では、[アラーム状態トリガー][OK] を選択します。 アラートがクリアされると、CloudWatchはリカバリ通知を送信します。
    • SNSトピックの選択: [既存のSNSトピックの選択] を選択します。
    • Send a notification to…: ステップ2で作成したトピックを選択します。
    Alert editing page

CloudWatchアラート

CloudWatchアラートは、静的しきい値に基づいて作成されるアラートと、異常検出に基づいて作成されるアラートの2つのタイプに分類されます。 [トリガー] フィールドの値は、アラートの種類によって異なります。 詳細については、「AWS::CloudWatch::Alarm」をご参照ください。
  • 静的しきい値に基づいて作成されたアラートの場合、Triggerフィールドの値にはMetricNameDimensionsなどのフィールドが含まれます。
  • 異常検出に基づいて作成されたアラートの場合、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_nameAlarmNameアラートモニタリングルールのルール名。
statusNewStateValueアラートのステータス。
  • CloudWatchアラートのNewStateValueフィールドの値がALARMまたはINSUFFICIENT_DATAの場合、Log Serviceアラートのstatusフィールドの値は起動中です。
  • CloudWatchアラートのNewStateValueフィールドの値がOKの場合、Log Serviceアラートのstatusフィールドの値は解決されます。
next_eval_interval
  • Period
  • 評価期間
アラートが評価される間隔。 値は、CloudWatchアラートのPeriodフィールドとEvaluationPeriodsフィールドの値の積です。
alert_timeStateChangeTimeアラートがトリガーされた時刻。
fire_timeStateChangeTimeアラートルールが最初にトリガーされた時刻。
resolve_timeStateChangeTimeアラートが作成された時刻。
  • statusフィールドの値が発火している場合、resolt_timeフィールドの値は0です。
  • statusフィールドの値が解決されている場合、resolv_timeフィールドの値はCloudWatchアラートのStateChangeTimeフィールドの値になります。
labelsなしアラートのラベル。
  • 静的なしきい値に基づいて作成されたアラート
    • 次のフィールドとその値がlabelsフィールドに追加されます。 追加されたフィールドは、Log Serviceアラートで名前が変更されます。
      • ComparisonOperatorの名前は __comparison_operator__ に変更されます。
      • MetricNameの名前は __metric_name__ に変更されます。
      • StatisticTypeの名前は __statistic_type__ に変更されます。
      • Statisticの名前は __statistic__ に変更されます。
      • しきい値の名前が __Threshold__ に変更されました。
    • ディメンションフィールドの各nameフィールドの値はlabelsフィールドにフィールドとして追加され、ディメンションフィールドの各valueフィールドの値はlabelsフィールドに値として追加されます。 追加されたフィールドと値は、ラベルフィールドにキーと値のペアを形成します。
  • 異常検出に基づいて作成されたアラート
    次のフィールドとその値がlabelsフィールドに追加されます。 追加されたフィールドは、Log Serviceアラートで名前が変更されます。
    • ComparisonOperatorの名前は __comparison_operator__ に変更されます。
    • ThresholdMetricIdの名前は __threshold_metricId__ に変更されます。
annotationsなしアラートの注釈。 次のフィールドがannotationsフィールドに追加されます。
  • desc: アラートコンテンツの説明。 説明は、CloudWatchアラートのNewStateReasonフィールドの値です。
  • title: アラートのタイトル。 タイトルは、CloudWatchアラートのAlarmDescriptionフィールドの値です。
  • __cloud_watch_alert_type__: CloudWatchアラートのタイプ。
    • 静的しきい値に基づいて作成されたアラートの場合、フィールド値はStaticThresholdです。
    • 異常検出に基づいて作成されたアラートの場合、フィールド値はAnomalyDetectionです。
  • triggerフィールドを除くすべての未使用フィールドがannotationsフィールドに追加されます。

    追加されたフィールドは、フィールド名の前後に2つのアンダースコア (__) を追加することによって名前が変更されます。 新しい名前は小文字だけです。 追加されたフィールドの名前に複数の単語が含まれている場合、単語はアンダースコア (_) で分割されます。 たとえば、AlarmArnフィールドの名前は __alarm_arn__ に変更されます。

severityNewStateValueアラートの重大度。
  • CloudWatchアラートのNewStateValueフィールドの値がALARMの場合、severityフィールドの値は10です。これは、Log Serviceアラートの重大な重大度を示しています。
  • CloudWatchアラートのNewStateValueフィールドの値がINSUFFICIENT_DATAの場合、severityフィールドの値は8です。これは、Log Serviceアラートの重大度が高いことを示します。
  • CloudWatchアラートのNewStateValueフィールドの値がOKの場合、severityフィールドの値は、CloudWatchアラートのOldStateValueフィールドの値によって異なります。
policyなしアラート取り込みアプリケーションに指定されているアラートポリシー。 詳細については、「ポリシー変数の説明」をご参照ください。
projectなしアラートセンターが属するプロジェクト。 詳細は、「プロジェクト」をご参照ください。
drill_down_queryなしCloudWatchアラートへのURL。