Audit
Au cours du fonctionnement quotidien d'EMu, un administrateur ou un utilisateur peut avoir besoin de savoir qui a modifié un enregistrement, quand il a été modifié et quelles modifications ont été effectuées. L’outil d'audit crée des Traces d'audit, une séquence d'enregistrements qui décrivent les opérations réalisées par un utilisateur et l'heure à laquelle les changements ont été faits. Ces enregistrements comprennent généralement :
- les opérations réalisées (insertions, mises à jour, etc.)
- les modules affectés (ex. eparties)
- le nom de l'utilisateur
- la date et l'heure
- le NEI de l'enregistrement affecté
- les données spécifiques aux opérations réalisées (ex. champs changés pour une mise à jour)
- le sous-système de la base de données qui a effectué l'opération
EMu dispose d'un outil d'audit entièrement intégré. L’outil comprend un Module Trace d'audit (eaudit), avec des traces d'audit complètes pour toutes les opérations enregistrées pour la surveillance. Il existe cinq niveaux pour lesquels des rapports d'audit peuvent être générés :
- modification (insertions, mises à jour, suppressions)
- recherche (requête)
- affichage (visualisé, trié, rapporté)
- connexion (premier accès à un module dans une cession en cours)
- tout (toutes les opérations de base de données)
Chacun de ces paramètres peut être réglé pour chaque module, cela veut dire qu'il est possible de surveiller toutes les modifications faites sur les enregistrements du module Personnes / Organisations par exemple, alors que les enregistrements du module Multimédia peuvent être audités sur les modifications, recherche et affichage.
Chaque module EMu contient un onglet Audit qui liste tous les enregistrements de trace d'audit pour l'enregistrement en cours. Chaque enregistrement détaille l’opération effectuée, la personne qui l'a effectué et la date à laquelle elle a été effectuée. Il est également possible, depuis cet onglet, d’afficher l’enregistrement complet de la trace d’audit dans le module Trace d’audit.
La fonction d'Audit est extensible, cela permet à d'autres services qui requièrent un accès à des informations détaillées relatives à des changements d'enregistrements d'utiliser cette fonctionnalité. En particulier deux autres services utilisent la fonctionnalité d'audit pour surveiller les modifications d'enregistrements. Le premier est le service archiver (archiveur), qui permet de stocker dans un fichier les traces d'audit XML brutes. Le second est le service sync (synchronisation), qui est utilisé pour s'assurer que les enregistrements dépendants sont mis à jour lorsque l'enregistrement maître est modifié.
Un autre service qui utilise la fonction d'audit est l'archiveur. Tous les rapports d'audit XML générés sont transmis au service archiveur pour déterminer si une copie doit être placée dans un fichier pour archivage. Ce service permet aux administrateurs de conserver une copie de sauvegarde de tous les rapports d'audit XML (qui peuvent être utilisés comme référence ou fournis à d'autres logiciels comme données d'entrée).
Pour activer le service archiveur, le répertoire logs/audit doit exister sur le serveur EMu. Par défaut, le répertoire n'existe pas lors de l'installation d'EMu et doit être créé par un administrateur. Lors de la première création du répertoire, le sous-système d'audit doit être redémarré via :
emuload stop audit
emuload start audit
Tous les rapports d'audit XML d'une journée sont placés dans un seul fichier dans le répertoire logs/audit. Le nom du fichier prend la forme aaaa-mm-jj. Une fois que toutes les entrées d'un jour ont été ajoutées, le fichier est compressé (avec gzip) et renommé en aaaa-mm-jj.gz. Pour visualiser un fichier d'archive compressé, utilisez :
gzcat yyyy-mm-dd.gz
L'archiveur peut être désactivé soit en renommant le répertoire logs/audit ou en le supprimant. Une fois désactivé le sous-système d'audit doit être redémarré via :
emuload stop audit
emuload start audit
Le service synchronisation (sync) est utilisé pour s'assurer que tous les enregistrements qui extraient des données depuis d'autres enregistrements sont à jour. Par exemple, un enregistrement du module Catalogue peut copier le champ Nom Complet du module Personnes / Organisations vers le champ Nom du Créateur pour une oeuvre d'art. La copie est utilisée pour autoriser des recherches très rapides sur le champ Nom du Créateur dans le catalogue. Si l'enregistrement dans le module Personnes / Organisations est changé de façon à ce que la valeur du champ Nom Complet soit modifiée, tous les enregistrements qui copient la valeur Nom Complet doivent être mis à jour avec la nouvelle valeur.
Une table est maintenue automatiquement dans etc/syncmap et est utilisée par le service synchronisation (sync) pour déterminer quels champs ont besoin d'être mis à jour lorsqu'un champ est modifié. Dans l'exemple ci-dessous la carte contiendrait :
eparties NamFullName ecatalogue CreCreatorRef_tab
Cela indique que lorsque le champ NamFullName dans la table eparties est changé, le champ CreCreatorRef_tab dans la table ecatalogue est contrôle pour vérifier si la valeur a besoin d'être mise à jour.
Le service sync est une charge d'arrière-plan et est contrôlé par la commande emuload. Dans le fonctionnement quotidien du système, le service sync doit être en cours d'exécution pour garantir que les enregistrements sont toujours à jour.