Lors de la création d'une politique de notification, vous pouvez envoyer les notifications d'alerte vers une URL de webhook personnalisée. La fonctionnalité de gestion des alertes d'Application Real-Time Monitoring Service (ARMS) permet d'acheminer les alertes vers des services tiers via un webhook. Cette rubrique utilise Lark comme exemple pour illustrer la configuration d'un webhook destiné à recevoir ces notifications.
Étape 1 : Obtenir une URL de webhook Lark
Configurez un bot webhook Lark depuis le client de bureau Lark.
Ouvrez Lark et connectez-vous.
Cliquez sur l'icône +, puis sur New group afin de créer un groupe de réception des alertes.
Cliquez sur l'icône des paramètres du groupe, puis accédez à l'onglet Bots.
Sous l'onglet Bots, cliquez sur Add Bot.
Dans le panneau Add Bot, sélectionnez Custom Bot.
Sur la page de configuration, renseignez les champs Bot name et Description, puis cliquez sur Add.
-
Dans la section résultante, cliquez sur Copy pour sauvegarder l'URL du webhook, puis sur Complete.
Dans la section Security Settings, cochez la case Custom Keywords et saisissez le mot-clé alert dans la zone de texte.
Étape 2 : Créer un webhook
Connectez-vous à la console ARMS. Dans le volet de navigation de gauche, accédez à .
Sélectionnez l'onglet Webhook Integration, puis cliquez sur Create Webhook.
-
Dans la boîte de dialogue Create Webhook, configurez les paramètres suivants.
Parameter
Description
Webhook name
Requis. Nom personnalisé du webhook.
Post/Get
Requis. Méthode HTTP. L'URL ne doit pas dépasser 256 caractères.
Dans cet exemple, sélectionnez Post et collez l'URL du webhook obtenue à l'Étape 1 : Obtenir une URL de webhook Lark dans la zone de texte à droite.
Header and Param
Facultatif. Spécifie l'en-tête de requête (200 caractères maximum). Cliquez sur +Add pour ajouter d'autres en-têtes ou paramètres. L'en-tête par défaut est Content-Type: text/plain; charset=UTF-8. Le nombre total d'en-têtes et de paramètres est limité à 6.
Dans cet exemple, définissez les deux Headers suivants :
Arms-Content-Type : json
Content-Type : application/json
Notification template
Facultatif. Modèle des notifications envoyées lors du déclenchement d'une alerte. Ce paramètre n'est disponible qu'avec la méthode Post. Utilisez l'espace réservé
$contentpour inclure le contenu de la notification (500 caractères maximum). Pour plus d'informations, consultez Configurer un modèle de notification et un modèle de webhook.{ "Alert Name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster Name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application Name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification Policy":"{{ .dispatchRuleName }}", "Alert Time":"{{ .startTime }}", "Alert Content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }Pour Lark, utilisez le format de texte suivant :
{ "msg_type": "text", "content": { "text": "Alert Name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster Name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application Name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Notification Policy: {{ .dispatchRuleName }} \nAlert Time: {{ .startTime }} \nAlert Content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } }Template to Clear Alerts
Facultatif. Modèle des notifications envoyées lors de la résolution d'une alerte. Ce paramètre n'est disponible qu'avec la méthode Post. Utilisez l'espace réservé
$contentpour inclure le contenu de la notification (500 caractères maximum). Pour plus d'informations, consultez Configurer un modèle de notification et un modèle de webhook.{ "Alert Name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster Name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application Name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification Policy":"{{ .dispatchRuleName }}", "Recovery Time":"{{ .endTime }}", "Alert Content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }Pour Lark, utilisez le format de texte suivant :
{ "msg_type": "text", "content": { "text": "Alert Name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster Name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application Name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Recovery Time: {{ .startTime }} \nNotification Policy: {{ .dispatchRuleName }} \nCleared Alert Content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } } Facultatif : Cliquez sur Send Test pour vérifier la configuration.
Cliquez sur OK.
Étape 3 : Configurer une politique de notification
Créez ou modifiez une politique de notification. Définissez les Notification Objects sur Universal Webhook, puis sélectionnez le webhook créé. Pour plus d'informations, consultez Politique de notification.
Une requête de webhook expire si aucune réponse n'est reçue sous 5 secondes, ce qui entraîne l'échec de la notification.