Cloud Monitor は、メール、DingTalk、Lark、WeCom、Slack による通知に加えて、より柔軟なイベント処理のためのアラートコールバック機能を提供します。このトピックでは、この機能を使用してシステムイベント通知を Webhook に転送する方法について説明します。これにより、Cloud Monitor のアラートを既存の O&M (運用保守) システムや通知システムと統合できます。
前提条件
O&M (運用保守) システムまたはメッセージングシステムのパブリック URL をご用意ください。
背景情報
Cloud Monitor は、HTTP または HTTPS 経由の POST リクエストを使用して、指定された URL にアラート通知をプッシュします。ファイアウォールのホワイトリストに次の IP アドレスを追加してください。アラート通知を受信した後、その内容に基づいてさらに処理することができます。
操作手順
-
プッシュチャンネルの作成
この例では、Webhook をプッシュチャンネルとして使用します。
-
Cloud Monitor コンソールにログインします。
-
左側のナビゲーションウィンドウで、[イベントセンター] > [イベントサブスクリプション] を選択します。
-
[イベントサブスクリプション] ページで、[プッシュチャンネル] タブをクリックします。
-
[プッシュチャンネル] タブで、[プッシュチャンネルの作成] をクリックします。
-
[プッシュチャンネルの作成] パネルで、[チャンネル名] を入力し、[ターゲットタイプ] を [Webhook] に、[リクエストメソッド] を [POST] に、[データフォーマット] を [JSON] に設定します。[アドレス] フィールドにアラートコールバック URL を入力し、他のパラメーターはデフォルト設定を使用します。
-
[OK] をクリックします。
-
-
サブスクリプションポリシーの作成
この例では、Elastic Compute Service (ECS) インスタンスの Instance:InstanceFailure.Reboot:Executing システムイベントをサブスクライブし、通知を Webhook にプッシュします。
-
[サブスクリプションポリシー] タブをクリックします。
-
[サブスクリプションポリシー] タブで、[サブスクリプションポリシーの作成] をクリックします。
-
[サブスクリプションポリシーの作成] ページで、パラメーターを設定します。
-
[基本情報]:サブスクリプションポリシーの名前を入力します。
-
[アラートサブスクリプション]:[サブスクリプションタイプ] を [システムイベント] に設定します。[サブスクリプション範囲] セクションで、[プロダクト] を [ECS] に、[イベント名] を [Instance:InstanceFailure.Reboot:Executing] に設定します。他のパラメーターはデフォルト設定を使用します。これにより、ご利用のアカウント配下にあるすべての ECS インスタンスの Instance:InstanceFailure.Reboot:Executing システムイベントがサブスクライブされます。
説明ECS がサポートするシステムイベントの詳細については、「ECS」をご参照ください。
-
[マージとノイズ除去]:デフォルト設定を使用します。
-
[通知]:[通知設定] は設定しません。[カスタム通知メソッド] にはデフォルトの通知方法を使用します。
説明[通知設定] にアラートグループが設定されていないため、アラート連絡先がなく、アラート通知は受信されません。
-
[プッシュと統合]:手順 1 で作成したプッシュチャンネルを選択します。
-
-
[送信] をクリックします。
-
-
イベントサブスクリプションのデバッグ
-
[サブスクリプションポリシー] タブで、[イベントサブスクリプションのデバッグ] をクリックします。
-
[イベントデバッグの作成] パネルで、[プロダクト] を [ECS] に、[名前] を [Instance:InstanceFailure.Reboot:Executing] に設定します。
システムは自動的に JSON フォーマットでデバッグコンテンツを生成します。
-
[OK] をクリックします。
システムに [操作は成功しました] というメッセージが表示されます。その後、Cloud Monitor は指定した Webhook URL にテストアラート通知を自動的に送信します。
-
結果
システムイベントがアラートをトリガーすると、Cloud Monitor は指定した URL にアラート情報を送信します。Webhook は POST および GET リクエストメソッドをサポートしています。各メソッドのリクエストコンテンツの例を次に示します。
-
POST JSON
パラメーター名:
bodyコンテンツの例:
{ "userInfo": { "aliyunId": "test", "userIdSec": "te***st", "aliyunIdSec": "test***test", "nickName": "test", "nickNameSec": "te***st", "userName": "test", "userId": "test", "userNameSec": "te***st" }, "subscription": { "subscriptionUuid": "testid", "conditions": [ { "field": "source", "op": "EQ", "value": "SYS_EVENT" }, { "field": "product", "op": "IN", "value": "ECS,Redis,RDS,Config,tag" } ], "relation": "AND" }, "batchId": "testbatchid", "alert": { "alertStatus": "TRIGGERED", "groupId": "", "source": "SYS_EVENT", "eventContentMap": { "extensions": { "agentVersion": "test-version", "region": "cn-hangzhou", "azone": "cn-hangzhou-i", "uptime": 23000 }, "vmName": "i-testhost", "impact": "Alert", "opsCode": "InstanceStatusChange", "bizEventId": "test-event-id" }, "dedupId": "test-id", "eventName": "CloudAssistant:FirstHeartbeat", "arn": "acs:ecs:cn-hangzhou:testuser:instance/i-testhost", "timestamp": 1704780333000, "traceId": "testid", "severity": "INFO", "product": "ECS", "eventRawContent": "{}", "eventType": "Notification", "userId": "test", "meta": { "sysEventMeta": { "regionNameEn": "cn-hangzhou", "resourceId": "acs:ecs:cn-hangzhou:test:instance/i-testhost", "product": "ECS", "eventNameEn": "CloudAssistant:FirstHeartbeat", "instanceName": "i-testhost", "level": "INFO", "resource": "", "regionNameZh": "华东1(杭州)", "groupId": "", "serviceTypeEn": "ECS", "eventType": "Notification", "serviceTypeZh": "云服务器ECS", "regionId": "cn-hangzhou", "eventTime": "20240109T140533.642+0800", "name": "CloudAssistant:FirstHeartbeat", "id": "testid", "status": "Normal", "eventNameZh": "云助手首次心跳事件" } } }, "severity": "INFO", "strategyName": "eventwebhook", "userId": "test", "time": 1704780333000 } -
GET JSON
パラメーター名:
dataコンテンツの例:
{ "userInfo": { "aliyunId": "test", "userIdSec": "te***st", "aliyunIdSec": "test***test", "nickName": "test", "nickNameSec": "te***st", "userName": "test", "userId": "test", "userNameSec": "te***st" }, "subscription": { "subscriptionUuid": "testid", "conditions": [ { "field": "source", "op": "EQ", "value": "SYS_EVENT" }, { "field": "product", "op": "IN", "value": "ECS,Redis,RDS,Config,tag" } ], "relation": "AND" }, "batchId": "testbatchid", "alert": { "alertStatus": "TRIGGERED", "groupId": "", "source": "SYS_EVENT", "eventContentMap": { "extensions": { "agentVersion": "test-version", "region": "cn-hangzhou", "azone": "cn-hangzhou-i", "uptime": 23000 }, "vmName": "i-testhost", "impact": "Alert", "opsCode": "InstanceStatusChange", "bizEventId": "test-event-id" }, "dedupId": "test-id", "eventName": "CloudAssistant:FirstHeartbeat", "arn": "acs:ecs:cn-hangzhou:testuser:instance/i-testhost", "timestamp": 1704780333000, "traceId": "testid", "severity": "INFO", "product": "ECS", "eventRawContent": "{}", "eventType": "Notification", "userId": "test", "meta": { "sysEventMeta": { "regionNameEn": "cn-hangzhou", "resourceId": "acs:ecs:cn-hangzhou:test:instance/i-testhost", "product": "ECS", "eventNameEn": "CloudAssistant:FirstHeartbeat", "instanceName": "i-testhost", "level": "INFO", "resource": "", "regionNameZh": "华东1(杭州)", "groupId": "", "serviceTypeEn": "ECS", "eventType": "Notification", "serviceTypeZh": "云服务器ECS", "regionId": "cn-hangzhou", "eventTime": "20240109T140533.642+0800", "name": "CloudAssistant:FirstHeartbeat", "id": "testid", "status": "Normal", "eventNameZh": "云助手首次心跳事件" } } }, "severity": "INFO", "strategyName": "eventwebhook", "userId": "test", "time": 1704780333000 } -
POST FORM と GET FORM
パラメーター
値
userInfo
{ "aliyunId": "test", "userIdSec": "te***st", "aliyunIdSec": "test***test", "nickName": "test", "nickNameSec": "te***st", "userName": "test", "userId": "test", "userNameSec": "te***st" }subscription
{ "subscriptionUuid": "testid", "conditions": [ { "field": "source", "op": "EQ", "value": "SYS_EVENT" }, { "field": "product", "op": "IN", "value": "ECS,Redis,RDS,Config,tag" } ], "relation": "AND" }alert
{ "alertStatus": "TRIGGERED", "groupId": "", "source": "SYS_EVENT", "eventContentMap": { "extensions": { "agentVersion": "test-version", "region": "cn-hangzhou", "azone": "cn-hangzhou-i", "uptime": 23000 }, "vmName": "i-testhost", "impact": "Alert", "opsCode": "InstanceStatusChange", "bizEventId": "test-event-id" }, "dedupId": "test-id", "eventName": "CloudAssistant:FirstHeartbeat", "arn": "acs:ecs:cn-hangzhou:testuser:instance/i-testhost", "timestamp": 1704780333000, "traceId": "testid", "severity": "INFO", "product": "ECS", "eventRawContent": "{}", "eventType": "Notification", "userId": "test", "meta": { "sysEventMeta": { "regionNameEn": "cn-hangzhou", "resourceId": "acs:ecs:cn-hangzhou:test:instance/i-testhost", "product": "ECS", "eventNameEn": "CloudAssistant:FirstHeartbeat", "instanceName": "i-testhost", "level": "INFO", "resource": "", "regionNameZh": "华东1(杭州)", "groupId": "", "serviceTypeEn": "ECS", "eventType": "Notification", "serviceTypeZh": "云服务器ECS", "regionId": "cn-hangzhou", "eventTime": "20240109T140533.642+0800", "name": "CloudAssistant:FirstHeartbeat", "id": "testid", "status": "Normal", "eventNameZh": "云助手首次心跳事件" } } }severity
INFO
strategyName
eventwebhook
userId
test
time
1704780333000
フィールドの説明
|
フィールド |
説明 |
|
|
外部フィールド |
batchId |
通知のバッチ ID。各 ID は一意の通知配信を表します。 |
|
severity |
重大度レベル。 |
|
|
strategyName |
サブスクリプションポリシーの名前。 |
|
|
userId |
Alibaba Cloud アカウントの ID。 |
|
|
time |
イベント時間。 |
|
|
|
aliyunId |
Alibaba Cloud アカウントの ID。 |
|
userIdSec |
RAM ユーザーの ID。 |
|
|
aliyunIdSec |
マスクされた Alibaba Cloud アカウントの ID。 |
|
|
nickName |
Alibaba Cloud アカウントのエイリアス。 |
|
|
nickNameSec |
マスクされた Alibaba Cloud アカウントのエイリアス。 |
|
|
userName |
Alibaba Cloud アカウントのログイン ID。 |
|
|
userId |
Alibaba Cloud アカウントの ID。 |
|
|
userNameSec |
マスクされた Alibaba Cloud アカウントのログイン ID。 |
|
|
|
subscriptionUuid |
サブスクリプションポリシーの一意の ID。 |
|
conditions |
サブスクリプションポリシーの条件:
|
|
|
relation |
条件間の論理関係。 有効値: |
|
|
|
alertStatus |
アラートステータス。 有効値: |
|
groupId |
アプリケーショングループの ID。 |
|
|
source |
最新のアラートイベントのタイプ。 |
|
|
dedupId |
イベントの重複排除 ID。 |
|
|
eventName |
イベント名。 |
|
|
arn |
イベントを生成したリソースの Alibaba Cloud Resource Name (ARN)。 |
|
|
timestamp |
イベントのタイムスタンプ。 |
|
|
traceId |
イベントの元の ID。 |
|
|
severity |
重大度レベル。 |
|
|
product |
プロダクト名。 |
|
|
eventRawContent |
JSON 文字列としての生のイベントデータ。コンテンツはクラウドサービスによって異なります。 |
|
|
eventType |
イベントタイプ。 |
|
|
userId |
Alibaba Cloud アカウントの ID。 |
|
|
|
regionNameEn |
リージョン名の英語表記。 |
|
resourceId |
イベントに関連付けられているリソースに関する情報。 |
|
|
product |
プロダクトコード。 |
|
|
eventNameEn |
イベント名の英語表記。 |
|
|
instanceName |
インスタンス名。 |
|
|
level |
イベントレベル。 |
|
|
resource |
システムイベントの ARN。 |
|
|
regionNameZh |
リージョン名の中国語表記。 |
|
|
groupId |
アプリケーショングループの ID。 |
|
|
serviceTypeEn |
サービスタイプの英語表記。 |
|
|
eventType |
イベントタイプ。 |
|
|
serviceTypeZh |
サービスタイプの中国語表記。 |
|
|
regionId |
リージョン ID。 |
|
|
eventTime |
イベントが生成された時刻。 |
|
|
name |
イベント名。 |
|
|
id |
イベント ID。 |
|
|
status |
イベントステータス。 |
|
|
eventNameZh |
イベント名の中国語表記。 |
|
|
|
|
|