29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / eZ Publish / eZ Publish: Documentation technique / eZ Publish : Features -- Fonctionnalités / Audit trailing -- Enregistrer l'activité système





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

Audit trailing -- Enregistrer l'activité système

Date de publication: le mercredi 23 novembre 2011 à 10h44
Dernière modification: par Pascal BOYER le mercredi 23 novembre 2011 à 10h44

10/06/2011 2:02

Versions 4.x +

It is possible to automatically generate audit logs based on what the users are doing with the system. This feature can be useful for big sites with many administrators and editors where information about various operations should be logged and stored. For example, auditing makes it possible to find out which user that removed content, from which IP address the request came from and so on.
Il est possible de générer automatiquement des fichiers d'enregistrement (log) de l'activité des utilisateurs sur le système. Cette fonction est très utile pour les sites de grande taille comportant de nombreux administrateurs et éditeurs, sites pour lesquels des informations sur une grande variété d'opérations doivent être enregistrées et conservées. L'audit permet par exemple de retrouver l'utilisateur ayant supprimer tel contenu, l'adresse IP d'où provient une requête, etc.
The system provides a set of built-in audit functions that make it possible to generate audit logs for different types of activities. At minimum, for every operation, the system logs the following information:
eZ Publish fournit un jeu de fonctions d'audit intégrées au système qui permettent de générer des journaux/logs d'audit relatifs à différents types d'activités. Pour chaque opération, le système enregistre au minimum les informations suivantes:

  • When it happened (timestamp)
    Quand est survenue l'opération (timestamp)
  • Where the request came from (IP address)
    L'adresse IP d'où provenait la requête
  • Which user that did it (username and ID number)
    Le nom et l'ID de l'utilisateur responsable de l'opération

Note that most audit functions provide additional information. The following example shows how a record in one of the log files look like after a node has been moved.
Retenez que la plupart des fonctions d'audit fournissent des informations supplémentaires. L'exemple ci-dessous montre à quoi ressemble un enregistrement d'un fichier de log après le déplacement d'un nœud:

[ May 23 2007 14:47:58 ] [127.0.0.1] [editor:16]
Node ID: 124
Old parent node ID: 2
New parent node ID: 59
Object ID: 114
Content Name: Folder
Comment: Moved the node to the given node: eZContentObjectTreeNode::move()

The following table shows the available built-in audit functions along with when they are triggered, what kind of information that is actually logged and the default log file where the information is stored.
Le tableau ci-dessous dresse la liste des fonctions d'audit intégrées ainsi que l'action qui les déclenche, le type d'informations enregistrées et les noms des fichiers dans lesquels celles-ci sont enregistrées:

Audit function
Fonction d'audit
Activity
Activité
Logged information
Information enregistrée
Default log file
Fichier de log par défaut
user-login Successful login attempts
Essais réussis de connexion
  • Timestamp
    Date de connexion au format timestamp UNIX
  • IP address
    Adresse IP
  • User (name:ID)
    ID et nom de l'utilisateur connecté
login.log
user-failed-login Failed login attempts
Essais ratés de connexion
  • Timestamp
    Date de connexion au format timestamp UNIX
  • IP address
    Adresse IP
  • User (name:ID)
    ID et nom de l'utilisateur avec lesquels les essais de connexion ont été faits.
failed_login.log
content-move Location change of content
Déplacement de contenu
  • Timestamp
    Date de déplacement au format timestamp UNIX
  • IP address
    Adresse IP
  • User (name:ID)
    ID et nom de l'utilisateur
  • Old parent node ID
    ID de l'ancien nœud parent
  • New parent node ID
    ID du nouveau nœud parent
  • Object ID
    ID de l'objet déplacé
  • Object name
    Nom de l'objet déplacé
  • Comment
    Commentaire
content_move.log
content-delete Removal of content
Suppression de contenu
  • Timestamp
    Date de suppression au format timestamp UNIX
  • IP address
    Adresse IP
  • User (name:ID)
    ID et nom de l'utilisateur
  • Node ID
    ID du noeud encapsulant l'objet supprimé
  • Object ID
    ID de l'objet supprimé
  • Object name
    Nom de l'objet supprimé
  • Comment
    Commentaire
content_delete.log
content-hide Hide/unhide a content node
Cache/Publie un nœud de contenu
  • Node ID
    ID du nœud
  • Object ID
    ID de l'objet
  • Object Name
    Nom de l'objet
  • Timestamp
  • Comment
    Commentaire
content_hide.log
role-change Role and policy changes
Modifications de rôles et de droits
  • Timestamp
    Date de modification au format timestamp UNIX
  • IP address
    Adresse IP
  • User (name:ID)
    ID et nom de l'utilisateur
  • Role ID
    ID du rôle modifié
  • Role name
    Nom du rôle modifié
  • Comment
    Commentaire
role_change.log
role-assign Role assignment to users and groups
Assignation de rôle aux utilisateurs ou aux groupes d'utilisateurs
  • Timestamp
    Date d'assignation au format timestamp UNIX
  • IP address
    Adresse IP
  • User (name:ID)
    ID et nom de l'utilisateur
  • Role ID
    ID du rôle assigné
  • Role name
    Nom du rôle assigné
  • Object name
    Nom de l'objet
  • Comment
    Commentaire
role_assign.log
section-assign Section assignments
Assignation de sections
  • Timestamp
    Date d'assignation au format timestamp UNIX
  • IP address
    Adresse IP
  • User (name:ID)
    ID et nom de l'utilisateur
  • Section ID
    ID de la section assignée
  • Section name
    Nom de la section
  • Node ID
    ID du noeud
  • Object ID
    ID de l'objet
  • Object name
    Nom de l'objet
  • Comment
    Commentaire
section_assign.log
order-delete Removal of webshop orders
Suppression d'ordres d'achat
  • Timestamp
    Date de suppression au format timestamp UNIX
  • IP address
    Adresse IP
  • User (name:ID)
    ID et nom de l'utilisateur
  • Order ID
    ID de l'ordre supprimé
  • Comment
    Commentaire
order_delete.log

Configuration

By default, the auditing feature is turned off. In order to use audit trailing on your site, enable the "Audit" setting located in the "[AuditSettings]" section of an override for the "audit.ini" configuration file. Using the "AuditFileNames" configuration array located in the same file, you can specify which types of activities that should be logged (which audit functions that should be used) and to which files they should be logged. The audit function names must be the array keys and the log file names should be the values. Note that the default configuration logs everything to a collection of files (refer to the table in the previous section for details). 
Comme, par défaut, la fonction d'audit est désactivée, vous devez l'activer en positionnant, dans la section [AuditSettings] d'une surcharge du fichier audit.ini, le paramètre Audit sur enabled. Avec le tableau AuditFileNames de la même section, vous pouvez spécifier les types d'activités que vous souhaitez enregistrer (quelles fonctions d'audit doivent être utilisées) ainsi que les fichiers dans lesquels vous souhaitez enregistrer les informations. Les noms des fonctions d'audit doivent être les clefs du tableau et le nom des fichiers de log, les valeurs de ce tableau. Retenez que la configuration par défaut enregistre absolument tout dans les fichiers présentés par le tableau ci-dessus.

The "LogDir" setting can be used to specify where the audit log files should be stored. The default directory is "var/log/audit".
Le paramètre LogDir , qui peut être utilisé pour définir l'emplacement des fichiers de log, a, par défaut, pour valeur var/log/audit

Exemple

Let's say that you wish to audit successful log-in attempts and changes to roles and policies while ignoring all other activities. Start by creating an override for "audit.ini" and making sure that it contains the following lines:
Supposons que vous souhaitiez enregistrer les essais réussis de connexion ainsi que les modifications de rôles et droits tout en ignorant toutes les autres activités du système. Commencez alors par créer une surcharge du fichier de configuration audit.ini en vous assurant qu'elle contienne ces quelques lignes:

[AuditSettings]
Audit=enabled
LogDir=var/log/my_audit
AuditFileNames[]
AuditFileNames[user-login]=login.log
AuditFileNames[role-change]=role_change.log

Information about successful log-in attempts will end up in the "login.log" file. Information about role and policy changes will be put in the "role_change.log" file. Both files will be located in the "var/log/my_audit" directory. Each record in these files will contain a time-stamp pointing to the exact date and time when an operation was performed, which user that is associated with it (username and ID number) and which IP address the request came from. Records related to role and policy changes will have additional information.
Les informations sur les essais réussis de connexion seront ajoutées à la fin du fichier login.log et celles relatives aux modifications des rôles et droits ajoutées à la fin du fichier role_change.log. Ces deux fichiers sont situés dans le répertoire var/log/my_audit/ et chacun de leurs enregistrements contient un timestamp UNIX indiquant la date et l'heure exactes auxquelles s'est produit l'événement, l'utilisateur (son ID et son nom) associé à cet événement et l'adresse IP d'où provient la requête. Les enregistrements relatifs aux modifications des rôles et droits comporteront des informations supplémentaires.

Creating new audit functions / Créer de nouvelles fonctions d'audit

This section provides tips for PHP developers who want to create their own audit functions.
Ce paragraphe dévoile quelques trucs pour les développeurs PHP souhaitant créer leurs propres fonctions d'audit.

Sometimes you may need to create a new audit function, i.e. to make the system log information about a specific operation to a particular audit log file. For example, if you wish to create a new audit function called "my-new-audit" and store information about operations to a file called "info.log", you can do the following:
Il se peut que vous souhaitiez créer une nouvelle fonction d'audit, c'est à dire que vous vouliez que le système enregistre, dans un fichier particulier, des informations relatives à une activité spécifique. Si vous souhaitez, par exemple, créer une nouvelle fonction d'audit nommée my-new-audit et enregistrer les informations dans un fichier info.log, alors:

  1. Make sure that the "Audit" setting located in the [AuditSettings] section of an override for "audit.ini" is enabled and add a new element to the "AuditFileNames" configuration array by inserting the following line:
    Assurez-vous que le paramètre Audit situé dans la section [AuditSettings] d'une surcharge du fichier audit.ini ait bien pour valeur enabled puis ajoutez un nouvel élément au tableau AuditFileNames avec la ligne suivante:

    AuditFileNames[my-new-audit]=info.log
  2. In the PHP code which defines the operation that should be logged, you can do something like this:
    Dans le code PHP qui définit l'activité qui sera enregistrée, écrivez quelque chose comme ça:

    include_once( "kernel/classes/ezaudit.php" );
    eZAudit::writeAudit( 'my-new-audit', array( 'User id' => $userID,
    'Comment' => 'The operation XYZ was performed.' ) );

    Elements like 'Name of something' => <valueOfSomething> define which information that should be written to the "info.log" file when the operation is performed.
    Les éléments tel que 'Name of something' => <valueOfSomething> définissent l'information devant être écrite dans le fichier info.log lorsque l'activité auditée survient.

For example, a record in the log file can look like this:
Voici à quoi ressemble, par exemple, un enregistrement du fichier info.log:

[ May 23 2007 14:44:04 ] [127.0.0.1] [anonymous:10]
User id: 10
Comment: The operation XYZ was performed.

Commentaires