Exportez les journaux d'opérations de Data Management (DMS) vers Simple Log Service (SLS), puis interrogez-les et analysez-les pour auditer l'activité des utilisateurs.
Informations générales
Les journaux d'opérations DMS sont des enregistrements séquentiels de toutes les actions des utilisateurs, incluant les détails des utilisateurs, les modules de fonctionnalités, les horodatages, les types d'opérations et les instructions SQL. Pour plus d'informations, consultez la section Durée de conservation des journaux.
Prérequis
Un compte Simple Log Service activé. Pour plus d'informations, consultez la page Activer Simple Log Service.
Un projet et un Logstore Simple Log Service ont été créés. Consultez les pages Créer un projet et Créer un Logstore.
Le Logstore de destination doit être vide et l'indexation en texte intégral doit être activée. Consultez la page Créer des index manuellement.
Facturation
L'exportation des journaux d'opérations DMS vers SLS est gratuite.
-
Une fois les journaux collectés dans SLS, des frais s'appliquent selon la méthode de facturation du Logstore :
Si le Logstore utilise la méthode de facturation Pay-by-feature, vous êtes facturé pour l'espace de stockage, le trafic en lecture, les requêtes, la transformation des données et l'expédition des données. Pour plus d'informations, consultez la documentation sur la facturation.
Si le Logstore utilise la méthode de facturation Pay-by-ingested-data, vous êtes facturé en fonction du volume de données brutes ingérées. Pour plus d'informations, consultez la documentation sur la facturation.
Ressources
-
Projets et Logstores Simple Log Service personnalisés
ImportantNe supprimez pas le projet SLS et le Logstore utilisés pour les journaux d'opérations DMS. Sinon, la collecte des journaux s'arrête.
Les Logstores personnalisés entraînent différents éléments de facturation selon la méthode de facturation.
-
Tableau de bord exclusif
Aucun tableau de bord exclusif n'est disponible.
Procédure
Étape 1 : Enregistrer le projet auprès de DMS
Connectez-vous à la console DMS V5.0 en tant qu'administrateur.
-
Sur la page d'accueil de la console, dans la zone Database Instances, cliquez sur l'icône
.RemarqueSi vous utilisez la console DMS en mode simple, cliquez sur Database Instances dans le volet de navigation de gauche. Dans la section Database Instances, cliquez sur
. -
Sur la page Add Instance, saisissez les informations SLS.
Catégorie
Paramètre
Description
Data Source
-
Sélectionnez Alibaba Cloud.
Basic Information
File and Log Storage
Sélectionnez SLS.
Instance Region
Sélectionnez la région de votre projet SLS.
Connection Method
Par défaut : Connection String Address.
Connection String Address
Généré automatiquement après la sélection d'une Instance Region.
Project name
Saisissez le nom de votre projet SLS.
AccessKey ID
Saisissez votre AccessKey ID Alibaba Cloud pour la vérification d'identité.
RemarquePour savoir comment obtenir un AccessKey ID, consultez la page Créer une AccessKey.
AccessKey Secret
Saisissez le secret AccessKey correspondant à l'AccessKey ID ci-dessus.
RemarquePour savoir comment obtenir un secret AccessKey, consultez la page Créer une AccessKey.
Advanced Feature Pack
Non pris en charge. Le mode par défaut est Flexible Management.
Advanced Information
Environment Type
Sélectionnez un type d'environnement : Dev, Test, Production, Pre-release, SIT, UAT, Stress Testing ou STAG. Types d'environnements d'instance.
Instance Name
Nom d'affichage personnalisé pour le projet SLS dans DMS.
RemarqueVous pouvez modifier le nom de l'instance ultérieurement. Modifier les informations de l'instance.
DBA
Sélectionnez un DBA pour l'instance. Le DBA gère les processus suivants, tels que les demandes d'autorisation.
Query Timeout (s)
Politique de sécurité qui contrôle le temps d'exécution des instructions de requête pour protéger la base de données.
Export Timeout (s)(s)
Politique de sécurité qui contrôle le temps d'exécution des instructions d'exportation pour protéger la base de données.
RemarqueAprès avoir configuré les informations de base, cliquez sur Test Connection en bas de la page et attendez que le test réussisse.
Si le message d'erreur « The execution result of the 'getProject' command is null » s'affiche, vérifiez que le projet a été créé par le compte Alibaba Cloud utilisé pour vous connecter à DMS.
Cliquez sur Submit.
Étape 2 : Créer une tâche dans DMS pour exporter les journaux d'opérations
Connectez-vous à DMS 5.0.
-
Placez le pointeur sur l'icône
dans le coin supérieur gauche et choisissez .RemarqueSi vous utilisez la console DMS en mode normal, choisissez dans la barre de navigation supérieure.
Cliquez sur l'onglet Export logs. Ensuite, dans le coin supérieur droit, cliquez sur New Task.
-
Dans la boîte de dialogue New Export Task, configurez les paramètres suivants.
Paramètre
Obligatoire
Description
Nom de la tâche
Oui
Nom de la tâche d'exportation. Utilisez un nom descriptif pour une identification facile.
Destination Log Service
Oui
Projet Simple Log Service, qui est une unité de gestion des ressources, utilisé pour le stockage des journaux.
SLS Logstore
Oui
Logstore pour les journaux d'opérations DMS exportés. Cliquez sur la zone de saisie et sélectionnez le Logstore de destination.
RemarqueSi le Logstore de destination ne figure pas dans la liste déroulante, cliquez sur Sync Dictionary puis sur OK. DMS collecte automatiquement les métadonnées du Logstore.
Feature Module
Oui
Sélectionnez les modules de fonctionnalités DMS dont vous souhaitez exporter les journaux. Ces modules correspondent aux onglets de l'onglet Operation Logs. Les modules incluent des fonctionnalités telles que la gestion des instances, la gestion des utilisateurs, les autorisations et la requête de données dans la fenêtre SQL. Par défaut, les journaux de All Features sont exportés.
Scheduling Method
Oui
Sélectionnez une méthode de planification pour la tâche.
-
One-time Tasks : Après la création de la tâche d'exportation, elle s'exécute une seule fois.
-
Periodic Tasks : Vous pouvez sélectionner Day, Week ou Month pour exporter les journaux vers le Logstore plusieurs fois en boucle. La première exécution d'une tâche récurrente exporte tous les journaux d'opérations DMS générés depuis l'heure de début des journaux jusqu'à la première heure de démarrage planifiée. Les exécutions suivantes exportent uniquement les journaux incrémentiels. Pour plus d'informations, consultez la section Planification récurrente.
Log Time Range
Non
RemarqueCe paramètre est disponible uniquement lorsque vous définissez Scheduling Method sur One-time Tasks.
Plage de temps pour l'exportation des journaux. Par défaut : les trois dernières années.
Log Start Time
Non
Remarque-
Ce paramètre est disponible uniquement lorsque vous définissez Scheduling Method sur Periodic Tasks.
-
Les tâches périodiques n'ont pas d'heure de fin.
Heure de début des enregistrements de journaux. Par défaut : trois ans avant la création de la tâche.
-
-
Cliquez sur OK. Une tâche d'exportation de journaux est créée. Le système crée également des champs d'index, tels que dbId, dbName et dbUser, dans votre Logstore pour les requêtes et analyses de données ultérieures.
-
Une tâche ponctuelle exporte les journaux une seule fois. Lorsque l'état de la tâche est Successful, les journaux sont exportés.
RemarqueEn raison du délai d'indexation du Logstore, les tâches ponctuelles démarrent environ 90 secondes après leur création.
Une tâche périodique exporte les journaux plusieurs fois. L'état affiche Pending Scheduling avant et après chaque exportation. Consultez les journaux de la tâche pour vérifier si une exécution a réussi.
Vous pouvez également effectuer les opérations suivantes dans la colonne Actions :
Query : Cliquez sur Query. Vous êtes redirigé vers la page SQL Console. Cliquez sur Query. Dans la section des résultats d'exécution en bas de la page, vous pouvez consulter les journaux exportés vers le Logstore.
Task Logs : Cliquez sur Task Logs pour afficher des informations telles que les heures de début et de fin de la tâche, le nombre de journaux livrés et l'état de la tâche.
Pause : Cliquez sur Pause. Dans la boîte de dialogue qui s'affiche, cliquez sur OK. La tâche récurrente est mise en pause.
-
Restart : Cliquez sur Restart. Dans la boîte de dialogue qui s'affiche, cliquez sur OK pour redémarrer une tâche périodique en pause.
RemarqueL'opération de redémarrage n'est pas prise en charge pour les tâches ponctuelles. Cependant, les autres opérations sont prises en charge.
Toutes les opérations, telles que la requête et la pause, sont prises en charge pour les tâches périodiques.
-
Exporter les journaux d'opérations DMS vers Simple Log Service.
Étape 3 : Interroger et analyser les journaux d'opérations DMS exportés dans la console SLS
Connectez-vous à la console Simple Log Service.
-
Dans la section Projects, cliquez sur celui de votre choix.

-
Sur l'onglet , cliquez sur le logstore de votre choix.

-
Dans la zone de recherche, saisissez une instruction de requête et d'analyse.
Une instruction de requête et d'analyse se compose d'une instruction de recherche et d'une instruction analytique au format
Search statement|Analytic statement. Pour plus d'informations sur la syntaxe, consultez les pages Syntaxe et fonctions de recherche et Fonctions d'analyse SQL.Vous pouvez interroger et analyser les informations suivantes dans SLS :
RemarqueLe Logstore dmstest est utilisé à titre d'exemple.
-
Utilisateurs ayant échoué le plus fréquemment à se connecter à une base de données.
__topic__ : DMS_LOG_DELIVERY AND subModule : LOGIN | SELECT concat(cast(operUserId as varchar), '(', operUserName, ')') user, COUNT(*) cnt FROM dmstest WHERE state = '0' GROUP BY operUserId, operUserName ORDER BY cnt DESC LIMIT 10; -
Utilisateurs avec une adresse IP source anormale. L'adresse IP 127.0.0.1 est utilisée à titre d'exemple.
RemarqueL'adresse IP source d'une instance est votre adresse IP locale lorsque vous enregistrez l'instance auprès de DMS. Cette adresse identifie la source de l'accès à l'instance.
__topic__ : DMS_LOG_DELIVERY | SELECT concat(cast(operUserId as varchar), '(', operUserName, ')') user, COUNT(*) cnt FROM dmstest WHERE state = '0' and requestIp in ('127.0.0.1') GROUP BY operUserId, operUserName ORDER BY cnt DESC LIMIT 10; -
Utilisateur ayant accédé le plus fréquemment à DMS.
__topic__ : DMS_LOG_DELIVERY| SELECT concat(cast(operUserId as varchar), '(', operUserName, ')') user, COUNT(*) cnt FROM dmstest GROUP BY operUserId, operUserName ORDER BY cnt DESC LIMIT 10; -
Utilisateurs ayant accédé et opéré sur plusieurs bases de données le même jour.
__topic__: DMS_LOG_DELIVERY | SELECT concat(cast(operUserId as varchar), '(', operUserName, ')') user, date_trunc('day', gmtCreate) time, dbId, COUNT(*) qpd from dmstest GROUP BY time, operUserId, operUserName, dbId ORDER BY time, qpd DESC; -
Utilisateurs ayant échoué à effectuer des opérations de base de données dans DMS.
__topic__ : DMS_LOG_DELIVERY AND moudleName : SQL_CONSOLE | SELECT concat(cast(operUserId as varchar), '(', operUserName, ')') user, actionDesc as sqlStatement, subModule as sqlType, remark as failReason FROM dmstest WHERE state = '-1' order by id; -
Utilisateurs ayant téléchargé le plus fréquemment des données sensibles.
__topic__ : DMS_LOG_DELIVERY AND moudleName : DATA_EXPORT | SELECT concat(cast(operUserId as varchar), '(', operUserName, ')') user, COUNT(*) cnt FROM dmstest WHERE hasSensitiveData = 'true' GROUP BY operUserId, operUserName ORDER BY cnt DESC LIMIT 10; -
Instructions SQL exécutées pour des opérations par lot, telles que la suppression et la mise à jour de données sensibles.
__topic__ : DMS_LOG_DELIVERY | SELECT subModule, COUNT(*) cnt, COUNT(affectRows) affectRow FROM dmstest WHERE subModule != '' GROUP BY subModule ORDER BY cnt DESC; -
Vérification de l'activation de la fonctionnalité de filigrane de données lors de l'exportation des données.
__topic__ : DMS_LOG_DELIVERY AND moudleName : DATA_EXPORT | SELECT targetId as orderId, concat(cast(operUserId as varchar), '(', operUserName, ')') user, COUNT(*) cnt FROM dmstest where actionDesc like '%Enable data watermark: false' GROUP BY targetId, operUserId, operUserName ORDER BY cnt DESC LIMIT 10;RemarquePour rechercher les utilisateurs ayant activé la fonctionnalité de filigrane de données, utilisez l'instruction :
'%Enable data watermark: true'.Pour rechercher les utilisateurs ayant désactivé la fonctionnalité de filigrane de données, utilisez l'instruction :
'%Enable data watermark: false'.
-
Utilisateurs ayant téléchargé des ensembles de résultats SQL depuis la section des résultats d'exécution de la page SQL Console.
__topic__ : DMS_LOG_DELIVERY AND moudleName : SQL_CONSOLE_EXPORT | SELECT concat(cast(operUserId as varchar), '(', operUserName, ')') user, COUNT(*) cnt FROM dmstest GROUP BY operUserId, operUserName ORDER BY cnt DESC LIMIT 10;
-
(Facultatif) Étape 4 : Mettre en pause la tâche récurrente
Si vous avez créé une tâche récurrente à l'étape 2 (avec Scheduling Method défini sur Periodic Tasks) et que vous avez terminé l'analyse des journaux d'opérations DMS, vous pouvez mettre la tâche en pause.
Connectez-vous à DMS 5.0.
-
Placez le pointeur sur l'icône
dans le coin supérieur gauche et choisissez .RemarqueSi vous utilisez la console DMS en mode normal, choisissez dans la barre de navigation supérieure.
Cliquez sur l'onglet Export Logs.
Dans la colonne Actions de la tâche récurrente, cliquez sur Pause.
Dans la boîte de dialogue qui s'affiche, cliquez sur OK.
Étapes suivantes
Le projet SLS n'est pas supprimé automatiquement après la fin ou la mise en pause de la tâche d'exportation. Pour éviter des frais inutiles, accédez à la console Simple Log Service et supprimez le projet que vous avez sélectionné pour l'exportation des journaux une fois votre analyse terminée.
Champs de journal bruts dans SLS
Principaux champs des journaux d'opérations DMS importés dans SLS :
|
Champ |
Description |
|
id |
ID unique du journal. |
|
gmt_create |
Heure de création du journal. |
|
gmt_modified |
Heure de modification du journal. |
|
oper_user_id |
ID utilisateur de l'opérateur. |
|
oper_user_name |
Nom de l'opérateur. |
|
module_name |
Module de fonctionnalité exporté :
|
|
sub_module |
Sous-module de fonctionnalité. Par exemple, pour SQL_CONSOLE, le sous-module fait référence au type d'instruction SQL exécutée par un utilisateur. |
|
db_id |
ID de la base de données sur laquelle l'opération est effectuée. Il s'agit de l'ID dans DMS. |
|
db_name |
Nom de la base de données sur laquelle l'opération est effectuée. |
|
is_logic_db |
Indique si la base de données est une base de données logique. |
|
instance_id |
ID de l'instance sur laquelle l'opération est effectuée. Il s'agit de l'ID dans DMS. |
|
instance_name |
Nom de l'instance sur laquelle l'opération est effectuée. |
|
action_desc |
Description de l'opération. |
|
remark |
Remarques. |
|
has_sensitive_data |
Indique si le journal contient des informations sensibles. |