Lorsque plusieurs équipes modifient les configurations Nacos dans Microservices Engine (MSE), il devient difficile de suivre qui a modifié quoi et d'alerter les parties prenantes en temps réel sans un mécanisme d'audit centralisé. ActionTrail capture chaque modification de configuration Nacos sous la forme d'un événement auditable et l'achemine vers Simple Log Service (SLS), où une règle d'alerte transmet des notifications formatées à un endpoint webhook tel que DingTalk.
Cette approche basée sur la piste d'audit convient aux scénarios nécessitant :
Conformité et pistes d'audit -- un enregistrement inviolable indiquant qui a effectué quelle modification et quand
Visibilité transversale des services -- un pipeline de notification unique couvrant Nacos et d'autres services Alibaba Cloud
Séparation des responsabilités -- surveillance des modifications de configuration indépendante du code applicatif
Si vous avez uniquement besoin de rappels au sein de l'application pour les modifications de configuration (latence plus faible, configuration plus simple), utilisez plutôt l'écouteur natif du SDK Nacos (@NacosConfigListener). L'approche ActionTrail décrite ici est conçue pour l'audit et la conformité à l'échelle de l'organisation.
Fonctionnement
Le pipeline de notification connecte quatre services :
MSE Nacos --> ActionTrail --> SLS alert rule --> DingTalk webhook
Un utilisateur ou un appel API modifie une configuration Nacos dans MSE.
ActionTrail capture la modification sous la forme d'un événement
UpdateNacosConfig.Une règle d'alerte SLS interroge les événements ActionTrail à intervalle fixe.
Lorsque la règle correspond, SLS envoie une notification formatée à un webhook DingTalk.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Une instance MSE Nacos
Un accès à la console ActionTrail
Un accès à la console SLS
Un groupe DingTalk avec un webhook de robot personnalisé configuré
Étape 1 : Créer une configuration Nacos
Créez un exemple de configuration à utiliser tout au long de ce tutoriel.
Accédez à la page Instances de la console MSE et cliquez sur votre instance Nacos cible.
Cliquez sur Configurations, puis cliquez sur Add Configuration.
-
Dans le volet Add Configuration, définissez les paramètres suivants et conservez les valeurs par défaut pour tous les autres :
Parameter Value Data ID action-testGroup actionConfiguration Content aliyun -
Cliquez sur Release.

Étape 2 : Créer une piste pour capturer les événements Nacos
Une piste définit les événements qu'ActionTrail capture et transmet à SLS pour l'interrogation et l'alerte.
Accédez à la page Trails de la console ActionTrail et cliquez sur Create Trail.
-
Dans la zone Basic Information, définissez Trail Name sur
nacos-test. Pour Trail Event Type, sélectionnez à la fois Management Event et Data Event.
Dans la zone Data Event Delivery Settings, recherchez
MSE, trouvez Microservices Engine et sélectionnez-le.Dans la section Data Event Selector, laissez les filtres vides pour transmettre tous les événements MSE par défaut, puis cliquez sur Confirm.
Étape 3 : Vérifier qu'ActionTrail capture les modifications de configuration
Avant de configurer les notifications, confirmez qu'ActionTrail enregistre correctement les modifications de configuration Nacos.
Accédez à la page Instances de la console MSE et cliquez sur votre instance Nacos cible.
Cliquez sur Configurations, puis cliquez sur Edit à côté de la configuration créée à l'étape 1.
Modifiez le contenu de la configuration de
aliyunàAlibaba Cloud Native, puis cliquez sur Release.Accédez à la page Advanced Event Query de la console ActionTrail. Pour Trail, sélectionnez
nacos-test.-
Définissez Service Name sur Microservices Engine (MSE) et Event Name sur UpdateNacosConfig, puis cliquez sur Run.

Cliquez sur View Details pour inspecter l'enregistrement complet de l'événement relatif à la modification de configuration.
Étape 4 : Configurer une notification webhook DingTalk
Cette étape connecte un endpoint webhook, un modèle de message et une règle d'alerte dans un pipeline de notification de bout en bout.
4,1 Créer un webhook
Accédez à la page Event Alerting de la console ActionTrail. Cliquez sur .
-
Dans le panneau Create Webhook, définissez les paramètres suivants :
Parameter Value ID mse-test-dingdingName DingTalk RobotType DingTalk Request URL https://oapi.dingtalk.com/robot/send?access_token=xxxx Cliquez sur OK.
Remplacez l'URL de Request URL par l'adresse webhook réelle de votre robot personnalisé DingTalk. Pour obtenir des instructions de configuration, consultez la page Custom Robot Access.
4,2 Créer un modèle de contenu
Cliquez sur .
Dans la boîte de dialogue Add Alert Template, définissez ID sur
Nacoset Name surNacos Change.-
Sélectionnez DingTalk. Définissez Title sur
Nacos configuration change alertet saisissez le contenu suivant :Nacos configuration changed by ID {{ alert.aliuid }} Change details: {{ alert.results[0].raw_results }}
4,3 Créer une règle d'alerte
Cliquez sur . Définissez Rule Name sur
Nacoset Check Frequency sur un intervalle fixe de 1 minute.-
Dans la section Query Statistics, ajoutez deux règles. Pour JOIN entre les deux règles, sélectionnez Concatenate :
-
Règle 1 : Cliquez sur Add, définissez Time Range sur 1 minute (relative) et saisissez l'instruction de recherche suivante :
* AND (event.serviceName: "MSE") AND (event.acsRegion: "cn-beijing") AND (event.eventName: "UpdateNacosConfig") Règle 2 : Cliquez sur Add et définissez Time Range sur 15 minutes (relative).
RemarqueVous pouvez configurer les règles selon vos besoins.
-
-
Pour Group Evaluation, sélectionnez Custom Label. Pour Tags, sélectionnez
event.eventname. Définissez Trigger Condition sur data matches the expression et saisissez :event.eventname == UpdateNacosConfig -
Ajoutez une Annotation avec le nom
mseet la valeur${event.requestparameter}.
Dans Advanced Setting, définissez Destination sur Simple Log Service Notification. Cliquez sur Enable et sélectionnez Simple Mode.
-
Pour Channel, sélectionnez DingTalk. Sélectionnez le webhook et le modèle de contenu créés précédemment, puis cliquez sur OK.

4,4 Tester le pipeline de notification
Accédez à la page Instances de la console MSE et cliquez sur votre instance Nacos cible.
Cliquez sur Configurations, puis cliquez sur Edit à côté de la configuration que vous avez créée.
Modifiez le contenu de la configuration de
Alibaba Cloud NativeàAlibaba Cloud, puis cliquez sur Release.Ouvrez votre groupe DingTalk. En quelques minutes, le webhook transmet une notification contenant les détails de la modification. Pour inclure des champs supplémentaires dans la notification, mettez à jour le modèle de contenu à l'Étape 4,2 avec d'autres attributs d'événement.