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

Resource Orchestration Service:ALIYUN::SLS::Alert

最終更新日:Jan 16, 2025

ALIYUN::SLS::Alert は、アラート ルールを作成するために使用されます。

構文

{
  "Type": "ALIYUN::SLS::Alert",
  "Properties": {
    "Project": String,
    "Detail": Map
  }
}

プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Project

String

はい

いいえ

プロジェクトの名前。

なし。

Detail

Map

はい

はい

アラート ルールの詳細。

詳細については、詳細プロパティをご参照ください。

詳細構文

"Detail": {
  "Type": String,
  "Description": String,
  "Configuration": Map,
  "State": String,
  "Schedule": Map,
  "DisplayName": String,
  "Name": String
}

詳細プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Type

String

いいえ

いいえ

アラート ルールのタイプ。

なし。

Description

String

いいえ

はい

アラート ルールの説明。

なし。

Configuration

Map

はい

はい

アラート ルールの構成。

詳細については、構成プロパティをご参照ください。

State

String

いいえ

いいえ

アラート ルールを有効にするかどうかを指定します。

有効な値:

  • Enable

  • Disabled

Schedule

Map

はい

はい

Log Service がアラート ルールを評価する時間間隔。

Log Service がアラート ルールを評価するときに 100 件を超えるログ エントリが返された場合、最初の 100 件のログ エントリのみがチェックされます。

詳細については、スケジュール プロパティをご参照ください。

DisplayName

String

はい

はい

アラート ルールの表示名。

名前は 1 ~ 64 文字の長さでなければなりません。

Name

String

はい

いいえ

アラート ルールの名前。

なし。

構成構文

"Configuration": {
  "Throttling": String,
  "Condition": String,
  "NotificationList": List,
  "NotifyThreshold": Integer,
  "Dashboard": String,
  "QueryList": List,
  "Type": String,
  "GroupConfiguration": Map,
  "NoDataFire": Boolean,
  "Threshold": Integer,
  "SeverityConfigurations": List,
  "Labels": List,
  "AutoAnnotation": Boolean,
  "PolicyConfiguration": Map,
  "SendResolved": Boolean,
  "NoDataSeverity": Integer,
  "Annotations": List,
  "MuteUntil": Integer,
  "JoinConfigurations": List,
  "Version": String
}

構成プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Throttling

String

いいえ

はい

Log Service がアラート通知を送信する時間間隔。

なし。

Condition

String

いいえ

はい

トリガー条件。

次の算術演算子がサポートされています:加算(+)、減算(-)、乗算(*)、除算(/)、および剰余(%)。次の比較演算子がサポートされています:より大きい(>)、以上(>=)、より小さい(<)、以下(<=)、等しい(==)、等しくない(!=)、一致(=~)、および不一致(!~)。

詳細については、アラート ルールのトリガー条件の構文をご参照ください。

NotificationList

List

いいえ

はい

アラート通知のリスト。

詳細については、NotificationList プロパティをご参照ください。

NotifyThreshold

Integer

いいえ

はい

アラート通知がトリガーされるしきい値。

なし。

Dashboard

String

はい

はい

アラート ルールが関連付けられているダッシュボード。

なし。

QueryList

List

はい

はい

クエリ ステートメントのリスト。

詳細については、QueryList プロパティをご参照ください。

Type

String

いいえ

はい

アラート ルールのタイプ。

値を default に設定します。

GroupConfiguration

Map

いいえ

はい

グループ評価の構成。

詳細については、GroupConfiguration プロパティをご参照ください。

NoDataFire

Boolean

いいえ

はい

データなしアラート機能を有効にするかどうかを指定します。

デフォルト値:false。有効な値:

  • true:データなしアラート機能を有効にします。

    このプロパティを true に設定すると、クエリおよび分析結果に対してデータが返されない回数が Threshold プロパティの値を超えた場合にアラートがトリガーされます。

    説明

    複数のクエリおよび分析結果が存在する場合、クエリおよび分析結果に対する集合演算でデータが返されない回数が Threshold プロパティの値を超えた場合にアラートがトリガーされます。

    詳細については、データなしアラートをご参照ください。

  • false:データなしアラート機能を無効にします。

Threshold

Integer

いいえ

はい

アラートがトリガーされるしきい値。

トリガー条件が満たされた連続回数が指定されたしきい値に達すると、アラートがトリガーされます。トリガー条件が満たされない回数はカウントされません。

SeverityConfigurations

List

いいえ

はい

トリガー条件。少なくとも 1 つのトリガー条件を指定する必要があります。

詳細については、SeverityConfigurations プロパティをご参照ください。

Labels

List

いいえ

はい

アラート ルールのラベル。

詳細については、Labels プロパティをご参照ください。

AutoAnnotation

Boolean

いいえ

はい

システムがアラート ルールに注釈を自動的に追加することを許可するかどうかを指定します。

デフォルト値:true。有効な値:

  • true:システムが __count__ などの注釈をアラート ルールに自動的に追加することを許可します。

    詳細については、自動追加スイッチをご参照ください。

  • false:システムがアラート ルールに注釈を自動的に追加することを許可しません。

PolicyConfiguration

Map

いいえ

はい

アラート ポリシーの構成。

詳細については、PolicyConfiguration プロパティをご参照ください。

SendResolved

Boolean

いいえ

はい

アラートがクリアされたときに回復通知を送信するかどうかを指定します。

デフォルト値:false。有効な値:

  • true:アラートがクリアされたときに回復通知を送信します。

    詳細については、回復通知をご参照ください。

  • false:アラートがクリアされたときに回復通知を送信しません。

NoDataSeverity

Integer

いいえ

はい

データなしアラートの重大度レベル。

詳細については、アラートの重大度をご参照ください。

Annotations

List

いいえ

はい

アラート ルールの注釈。

詳細については、Annotations プロパティをご参照ください。

MuteUntil

Integer

いいえ

はい

アラートがトリガーされるしきい値。

なし。

JoinConfigurations

List

いいえ

はい

集合演算の構成。

詳細については、JoinConfigurations プロパティをご参照ください。

  • QueryList プロパティにクエリ ステートメントを 1 つだけ指定する場合は、JoinConfigurations プロパティを指定する必要はありません。

  • QueryList プロパティに 2 つまたは 3 つのクエリ ステートメントを指定する場合は、JoinConfigurations プロパティを指定して、クエリと分析結果を関連付ける必要があります。

    詳細については、複数集合演算をご参照ください。

Version

String

いいえ

はい

アラート ルールのバージョン。

値を 2.0 に設定します。

NotificationList 構文

"NotificationList": [
  {
    "Type": String,
    "MobileList": List,
    "ServiceUri": String,
    "Content": String,
    "EmailList": List,
    "Method": String,
    "Headers": Map
  }
]

NotificationList プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Type

String

はい

いいえ

アラート通知を送信するために使用されるメソッド。

有効な値:

  • Email:E メール

  • MessageCenter:メッセージ センター

  • DingTalk:DingTalk チャットボット webhook

  • Webhook:カスタム webhook

Content

String

いいえ

いいえ

アラート通知の内容。

コンテンツで次のテンプレート変数を使用できます:${Project}、${Condition}、${AlertName}、${AlertID}、${Dashboard}、${FireTime}、および ${Results}

詳細については、通知方法の構成をご参照ください。

MobileList

List

いいえ

いいえ

携帯電話番号のリスト。

1 つの携帯電話番号で 1 日に最大 50 件のテキスト メッセージを受信できます。

ServiceUri

String

いいえ

いいえ

リクエストの URL。

Type プロパティを Webhook または DingTalk に設定した場合、このプロパティは必須です。

EmailList

List

いいえ

いいえ

E メール アドレスのリスト。

Type プロパティを Email に設定した場合、このプロパティは必須です。

1 つの E メール アドレスで 1 日に最大 100 件の E メールを受信できます。

Method

String

いいえ

いいえ

リクエスト メソッド。

なし。

Headers

Map

いいえ

いいえ

リクエスト ヘッダーの詳細。

なし。

QueryList 構文

"QueryList": [
  {
    "Query": String,
    "LogStore": String,
    "Start": String,
    "TimeSpanType": String,
    "End": String,
    "ChartTitle": String,
    "DashboardId": String,
    "Region": String,
    "RoleArn": String,
    "StoreType": String,
    "PowerSqlMode": String,
    "Project": String,
    "Store": String
  }
]

QueryList プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Query

String

はい

いいえ

クエリ ステートメント。

なし。

LogStore

String

いいえ

いいえ

ログストア。

なし。

Start

String

はい

いいえ

クエリする時間範囲の開始。

なし。

TimeSpanType

String

はい

いいえ

クエリする時間範囲。

なし。

End

String

はい

いいえ

クエリする時間範囲の終了。

なし。

ChartTitle

String

いいえ

いいえ

グラフのタイトル。

なし。

DashboardId

String

いいえ

いいえ

アラート ルールが関連付けられているダッシュボードの ID。

なし。

Region

String

いいえ

いいえ

プロジェクトのリージョン。

なし。

RoleArn

String

いいえ

いいえ

データにアクセスするために必要な RAM ロールの Alibaba Cloud Resource Name(ARN)。

詳細については、アクセス制御ポリシーの構成をご参照ください。

StoreType

String

いいえ

いいえ

データ ソースのタイプ。

有効な値:

  • log:ログストア データ

  • metric:メトリックストア データ

  • meta:リソース データ

PowerSqlMode

String

いいえ

いいえ

システムが Dedicated SQL を有効にすることを許可するかどうかを指定します。

有効な値:

  • auto:システムは Dedicated SQL を自動的に有効または無効にします。

  • enable:システムは Dedicated SQL を有効にします。

  • disable:システムは Dedicated SQL を無効にします。

Project

String

いいえ

いいえ

クエリ ステートメントが関連付けられているプロジェクト。

なし。

Store

String

いいえ

いいえ

クエリ ステートメントが関連付けられているログストア、メトリックストア、またはリソース データ。

なし。

Schedule 構文

"Schedule": {
  "Type": String,
  "Interval": String,
  "Hour": Integer,
  "DayOfWeek": Integer,
  "CronExpression": String,
  "Delay": Integer,
  "RunImmediately": Boolean
}

Schedule プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Type

String

はい

はい

アラート ルールがトリガーされるスケジュールのタイプ。

有効な値:

  • Hourly:アラート ルールは 1 時間ごとにトリガーされます。

  • Daily:アラート ルールは毎日トリガーされます。

  • Weekly:アラート ルールは毎週トリガーされます。

  • FixedRate:アラート ルールは定期的にトリガーされます。

  • Cron:アラート ルールは CRON 式に基づいてトリガーされます。

Interval

String

いいえ

はい

アラート ルールが定期的にトリガーされる時間間隔。

Type プロパティを FixedRate に設定した場合、このプロパティは必須です。

有効な値:

  • 10d:アラート ルールは 10 日ごとにトリガーされます。

  • 10h:アラート ルールは 10 時間ごとにトリガーされます。

  • 10m:アラート ルールは 10 分ごとにトリガーされます。

Hour

Integer

いいえ

はい

アラート ルールがトリガーされる時刻(時)。

Type プロパティを Daily または Weekly に設定した場合、このプロパティは必須です。

有効な値:0 ~ 23。

DayOfWeek

Integer

いいえ

はい

アラート ルールがトリガーされる曜日。

Type プロパティを Weekly に設定した場合、このプロパティは必須です。

有効な値:1 ~ 7。

CronExpression

String

いいえ

はい

アラート ルールがトリガーされる CRON 式。

Type プロパティを Cron に設定した場合、このプロパティは必須です。

RunImmediately

Boolean

いいえ

はい

アラート ルールをすぐにトリガーするかどうかを指定します。

有効な値:

  • true

  • false

Delay

Integer

いいえ

はい

アラート ルールのトリガーを遅延させるかどうかを指定します。

なし。

SeverityConfigurations 構文

"SeverityConfigurations": {
 "EvalCondition": Map,
 "Severity": Integer
}

SeverityConfigurations プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

EvalCondition

Map

いいえ

いいえ

トリガー条件。

詳細については、EvalCondition プロパティをご参照ください。

Severity

Integer

はい

いいえ

アラートの重大度レベル。

詳細については、アラート監視ルールのデータ構造をご参照ください。

EvalCondition 構文

"EvalCondition": {
"Condition": String,
"CountCondition": String
}

EvalCondition プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Condition

String

いいえ

いいえ

データの照合に使用される式。

  • データを照合する必要がない場合は、値を空の文字列に設定します。

  • その他のシナリオでは、値を式に設定します。例:errCnt > 10。

CountCondition

String

いいえ

いいえ

データ エントリの数を照合するために使用される式。

  • データが存在する場合に式を照合する場合は、値を空の文字列に設定します。

  • その他のシナリオでは、値を式に設定します。例:__count__ > 3。

Labels 構文

"Labels": [{
 "Value": String,
 "Key": String
}]

Labels プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Value

String

はい

いいえ

フィールドの値。

なし。

Key

String

はい

いいえ

フィールドのキー。

なし。

GroupConfiguration 構文

"GroupConfiguration": {
 "Type": String,
 "Fields": List
}

GroupConfiguration プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Type

String

はい

いいえ

グループ評価のタイプ。

有効な値:

  • no_group:クエリと分析結果はグループ化されません。

  • custom:クエリと分析結果は、指定したカスタム フィールドに基づいてグループ化されます。

  • labels_auto:クエリと分析結果は、指定したラベルに基づいて自動的にグループ化されます。この値は時系列データに対してのみサポートされています。

Fields

List

いいえ

いいえ

グループ評価が実行されるフィールド。

なし。

Annotations 構文

"Annotations": [{
 "Value": String,
 "Key": String
}]

Annotations プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Key

String

はい

いいえ

フィールドのキー。

なし。

Value

String

はい

いいえ

フィールドの値。

なし。

JoinConfigurations 構文

"JoinConfigurations": {
 "Type": String,
 "Condition": String
}

JoinConfigurations プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Condition

String

いいえ

いいえ

条件式。

Type プロパティを cross_join、concat、または no_join に設定した場合、このプロパティは必須です。例:$0.host == $1.ip。

Type

String

はい

いいえ

集合演算のタイプ。

有効な値:

  • cross_join:直積。

  • inner_join:内部結合。

  • left_join:左結合

  • right_join:右結合。

  • full_join:完全外部結合。

  • left_exclude:左除外。

  • right_exclude:右除外。

  • concat:連結。システムは各データセットを順番に走査します。

  • no_join:結合なし。システムは最初のデータセットのみを使用します。

PolicyConfiguration 構文

"PolicyConfiguration": {
"RepeatInterval": String,
 "ActionPolicyId": String,
 "AlertPolicyId": String,
 "UseDefault": Boolean
}

PolicyConfiguration プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

RepeatInterval

String

いいえ

いいえ

繰り返し間隔。

なし。

ActionPolicyId

String

いいえ

いいえ

アクション ポリシーの ID。

高度なモードでは、アラート ポリシーが動的アクション ポリシーを使用しない場合、値を空の文字列に設定します。

AlertPolicyId

String

いいえ

いいえ

アラート ポリシーの ID。

  • シンプルまたは標準モードでは、値を sls.builtin.dynamic に設定します。この値は、組み込みの動的アラート ポリシーを指定します。

  • 高度なモードでは、使用するアラート ポリシーの ID に値を設定します。

UseDefault

Boolean

いいえ

いいえ

互換性フィールド。

値を false に設定します。

戻り値

Fn::GetAtt

Name:アラート ルールの名前。

  • YAML 形式

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters: {}
    Resources:
      Alert:
        Type: ALIYUN::SLS::Alert
        Properties:
          Project: TestSlsProject
          Detail:
            DisplayName: ros-test-alert
            Description: test
            Schedule:
              Delay: 1
              Interval: 15m
              Type: FixedRate
              RunImmediately: false
            State: Enabled
            Configuration:
              Throttling: 5m
              NotifyThreshold: 1
              QueryList:
                - End: now
                  LogStore: audit-cf5362d1f87754fb29
                  ChartTitle: k8s-log-c7b729e7ea122425182133bc2c3ea
                  Start: '-15m'
                  Query: |-  # クエリステートメント
                    objectRef.resource : "networkpolicies" and verb : create NOT  user.username: node NOT  user.username: serviceaccount NOT  user.username: apiserver NOT  user.username: kube-scheduler NOT  user.username: kube-controller-manager       | SELECT auditID as "Event ID", date_format(from_unixtime(__time__), '%Y-%m-%d %T' ) as "Operation time", "objectRef.name" as "Name", "objectRef.namespace" as "Namespace", "responseStatus.code" as "Status code",
                     CASE WHEN "user.username" != 'kubernetes-admin' then "user.username"
                     WHEN "user.username" = 'kubernetes-admin' and regexp_like("annotations.authorization.k8s.io/reason", 'RoleBinding') then regexp_extract("annotations.authorization.k8s.io/reason", ' to User "(\w+)"', 1) ELSE 'kubernetes-admin' END
                     as "Username",
                    CASE WHEN json_array_length(sourceIPs) = 1 then json_format(json_array_get(sourceIPs, 0)) ELSE  sourceIPs END
                    as "Source IP address" order by "Operation time"
                  TimeSpanType: Custom
              Dashboard: audit-cf5362d1f87754fb4a_network_policy_op_cn
              NotificationList:
                - Content: Message
                  ServiceUri: http://xxxx
                  Type: DingTalk
                - Content: Email Message # Eメールメッセージ
                  EmailList:
                    - abc@test.com
                  Type: Email
                - MobileList:
                    - 132373830xx
                  Content: Cellphone message # 携帯電話メッセージ
                  Type: SMS
              Condition: total  > 1
            Type: Alert
            Name: alert_2
    Outputs:
      Name:
        Description: Alert name. # アラート名
        Value:
          Fn::GetAtt:
            - Alert
            - Name
  • JSON 形式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
      },
      "Resources": {
        "Alert": {
          "Type": "ALIYUN::SLS::Alert",
          "Properties": {
            "Project": "TestSlsProject",
            "Detail": {
              "DisplayName": "ros-test-alert",
              "Description": "test",
              "Schedule": {
                "Delay": 1,
                "Interval": "15m",
                "Type": "FixedRate",
                "RunImmediately": false
              },
              "State": "Enabled",
              "Configuration": {
                "Throttling": "5m",
                "NotifyThreshold": 1,
                "QueryList": [
                  {
                    "End": "now",
                    "LogStore": "audit-cf5362d1f87754fb29",
                    "ChartTitle": "k8s-log-c7b729e7ea122425182133bc2c3ea",
                    "Start": "-15m",
                    "Query": "objectRef.resource : \"networkpolicies\" and verb : create NOT  user.username: node NOT  user.username: serviceaccount NOT  user.username: apiserver NOT  user.username: kube-scheduler NOT  user.username: kube-controller-manager       | SELECT auditID as \"Event ID\", date_format(from_unixtime(__time__), '%Y-%m-%d %T' ) as \"Operation time\", \"objectRef.name\" as \"Name\", \"objectRef.namespace\" as \"Namespace\", \"responseStatus.code\" as \"Status code\",\n CASE WHEN \"user.username\" != 'kubernetes-admin' then \"user.username\"\n WHEN \"user.username\" = 'kubernetes-admin' and regexp_like(\"annotations.authorization.k8s.io/reason\", 'RoleBinding') then regexp_extract(\"annotations.authorization.k8s.io/reason\", ' to User \"(\\w+)\"', 1) ELSE 'kubernetes-admin' END  \n as \"Username\", \nCASE WHEN json_array_length(sourceIPs) = 1 then json_format(json_array_get(sourceIPs, 0)) ELSE  sourceIPs END\nas \"Source IP address\" order by \"Operation time\"", // クエリステートメント
                    "TimeSpanType": "Custom"
                  }
                ],
                "Dashboard": "audit-cf5362d1f87754fb4a_network_policy_op_cn",
                "NotificationList": [
                  {
                    "Content": "Message",
                    "ServiceUri": "http://xxxx",
                    "Type": "DingTalk"
                  },
                  {
                    "Content": "Email Message", // Eメールメッセージ
                    "EmailList": [
                      "abc@test.com"
                    ],
                    "Type": "Email"
                  },
                  {
                    "MobileList": [
                      "132373830xx"
                    ],
                    "Content": "Cellphone message", // 携帯電話メッセージ
                    "Type": "SMS"
                  }
                ],
                "Condition": "total  > 1"
              },
              "Type": "Alert",
              "Name": "alert_2"
            }
          }
        }
      },
      "Outputs": {
        "Name": {
          "Description": "Alert name.", // アラート名
          "Value": {
            "Fn::GetAtt": [
              "Alert",
              "Name"
            ]
          }
        }
      }
    }