Outre les notifications par appels téléphoniques, SMS, e-mail, DingTalk, Lark, WeCom et Slack, Cloud Monitor propose une fonctionnalité de rappel d'alerte pour une gestion plus flexible des événements. Cette rubrique explique comment utiliser cette fonctionnalité pour transférer les notifications d'événements système vers un webhook. Cela vous permet d'intégrer les alertes Cloud Monitor à vos systèmes existants de maintenance ou de notification.
appels téléphoniques, SMS,
Prérequis
Vous devez disposer d'une URL publique pour votre système d'exploitation ou de messagerie.
Contexte
Cloud Monitor envoie les notifications d'alerte à votre URL sous forme de requêtes POST HTTP ou HTTPS. Ajoutez les plages d'adresses IP suivantes à la liste d'autorisation de votre pare-feu :
Procédure
-
Créez un canal de push.
Cet exemple utilise un webhook comme canal de push.
Connectez-vous à la console Cloud Monitor.
Dans le volet de navigation de gauche, choisissez Event Center > Event Subscription.
Sur la page Event Subscription, cliquez sur l'onglet Push Channel.
Sous l'onglet Push Channel, cliquez sur Create Push Channel.
Dans le panneau Create Push Channel, saisissez un Channel Name, définissez Target Type sur Webhook, Request Method sur POST et Data Format sur JSON. Dans le champ Address, entrez l'URL de rappel d'alerte et conservez les paramètres par défaut pour les autres options.
Cliquez sur OK.
-
Créez une politique d'abonnement.
Cet exemple s'abonne à l'événement système Instance Restart Started Due to Instance Error pour une instance ECS et pousse les notifications vers le webhook.
Cliquez sur l'onglet Subscription Policy.
Sous l'onglet Subscription Policy, cliquez sur Create Subscription Policy.
-
Sur la page Create Subscription Policy, configurez les paramètres.
Basic Information : Saisissez un nom pour la politique d'abonnement.
-
Alert Subscription : Si vous définissez Subscription Type sur System Event, spécifiez Product comme étant Elastic Compute Service (ECS) et Event Name comme étant Instance Restart Started Due to Instance Error dans la section Subscription Scope, sans configurer d'autres paramètres, vous vous abonnez à l'événement système Instance Restart Started Due to Instance Error pour toutes les instances ECS de votre compte.
RemarquePour plus d'informations sur les événements système pris en charge par ECS, consultez la documentation ECS.
Merge and Denoise : Utilisez les paramètres par défaut.
-
Notification : Ne configurez pas Notification Configuration. Utilisez la méthode de notification par défaut pour Custom Notification Method.
RemarqueÉtant donné qu'aucun groupe d'alerte n'est configuré dans les Notification Settings, il n'y a aucun contact d'alerte et vous ne recevrez pas de notifications d'alerte.
Push and Integration : Sélectionnez le canal de push créé à l'étape Étape 1.
Cliquez sur Submit.
-
Déboguez l'abonnement aux événements.
Sous l'onglet Subscription Policy, cliquez sur Debug Event Subscription.
-
Dans le panneau Create Event Debugging, définissez Product sur ECS et Name sur Instance Restart Started Due to Instance Error.
Le système génère automatiquement le contenu de débogage au format JSON.
-
Cliquez sur OK.
Le système affiche un message Operation successful. Cloud Monitor envoie ensuite automatiquement une notification d'alerte de test à l'URL webhook que vous avez spécifiée.
Résultats
Lorsqu'un événement système déclenche une alerte, Cloud Monitor envoie les informations d'alerte à l'URL que vous avez spécifiée. Les webhooks prennent en charge les méthodes de requête POST et GET. Les exemples suivants montrent le contenu de la requête pour chaque méthode :
-
POST JSON
Nom du paramètre :
body.Exemple de contenu :
{ "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": "China (Hangzhou)", "groupId": "", "serviceTypeEn": "ECS", "eventType": "Notification", "serviceTypeZh": "ECS", "regionId": "cn-hangzhou", "eventTime": "20240109T140533.642+0800", "name": "CloudAssistant:FirstHeartbeat", "id": "testid", "status": "Normal", "eventNameZh": "First heartbeat event of the cloud assistant" } } }, "severity": "INFO", "strategyName": "eventwebhook", "userId": "test", "time": 1704780333000 } -
GET JSON
Nom du paramètre :
data.Exemple de contenu :
{ "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": "China (Hangzhou)", "groupId": "", "serviceTypeEn": "ECS", "eventType": "Notification", "serviceTypeZh": "ECS", "regionId": "cn-hangzhou", "eventTime": "20240109T140533.642+0800", "name": "CloudAssistant:FirstHeartbeat", "id": "testid", "status": "Normal", "eventNameZh": "First heartbeat event of the cloud assistant" } } }, "severity": "INFO", "strategyName": "eventwebhook", "userId": "test", "time": 1704780333000 } -
POST FORM et GET FORM
Paramètre
Valeur
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": "China (Hangzhou)", "groupId": "", "serviceTypeEn": "ECS", "eventType": "Notification", "serviceTypeZh": "ECS", "regionId": "cn-hangzhou", "eventTime": "20240109T140533.642+0800", "name": "CloudAssistant:FirstHeartbeat", "id": "testid", "status": "Normal", "eventNameZh": "First heartbeat event of the cloud assistant" } } }severity
INFO
strategyName
eventwebhook
userId
test
time
1704780333000
Descriptions des champs
Champ | Description | |
Champs externes | batchId | ID de lot de la notification. Chaque ID représente une livraison de notification unique. |
severity | Niveau de gravité. | |
strategyName | Nom de la politique d'abonnement. | |
userId | ID du compte Alibaba Cloud. | |
time | Heure de l'événement. | |
Champs de l'objet | aliyunId | ID du compte Alibaba Cloud. |
userIdSec | ID de l'utilisateur RAM. | |
aliyunIdSec | ID masqué du compte Alibaba Cloud. | |
nickName | Alias du compte Alibaba Cloud. | |
nickNameSec | Alias masqué du compte Alibaba Cloud. | |
userName | ID de connexion du compte Alibaba Cloud. | |
userId | ID du compte Alibaba Cloud. | |
userNameSec | ID de connexion masqué du compte Alibaba Cloud. | |
Champs de l'objet | subscriptionUuid | ID unique de la politique d'abonnement. |
conditions | Conditions de la politique d'abonnement :
| |
relation | Relation logique entre les conditions. Valeurs valides : | |
Champs de l'objet | alertStatus | Statut de l'alerte. Valeurs valides : |
groupId | ID du groupe d'applications. | |
source | Type du dernier événement d'alerte. | |
dedupId | ID de déduplication de l'événement. | |
eventName | Nom de l'événement. | |
arn | Alibaba Cloud Resource Name (ARN) de la ressource qui a généré l'événement. | |
timestamp | Horodatage de l'événement. | |
traceId | ID original de l'événement. | |
severity | Niveau de gravité. | |
product | Nom du produit. | |
eventRawContent | Données brutes de l'événement sous forme de chaîne JSON. Le contenu varie selon le service cloud. | |
eventType | Type d'événement. | |
userId | ID du compte Alibaba Cloud. | |
Champs du sous-objet | regionNameEn | Nom de la région en anglais. |
resourceId | Informations sur la ressource associée à l'événement. | |
product | Code du produit. | |
eventNameEn | Nom de l'événement en anglais. | |
instanceName | Nom de l'instance. | |
level | Niveau de l'événement. | |
resource | ARN de l'événement système. | |
regionNameZh | Nom de la région en chinois. | |
groupId | ID du groupe d'applications. | |
serviceTypeEn | Type de service en anglais. | |
eventType | Type d'événement. | |
serviceTypeZh | Type de service en chinois. | |
regionId | ID de la région. | |
eventTime | Heure de génération de l'événement. | |
name | Nom de l'événement. | |
id | ID de l'événement. | |
status | Statut de l'événement. | |
eventNameZh | Nom de l'événement en chinois. | |
Champs du sous-objet | Le champ | |