====== Module accesslog ======
Ce module permet d'historiser les actions effecutés sur une base LDAP dans une autre base LDAP dédiée. Il est possible, via des paramètres de configuration de choisir quelles actions sont historisées (modification, recherche, bind, ...) et combien de temps sont conservés les évènements historisés. Chaque évènement historisé le serra sous la forme d'un objet LDAP stocké à la racine de la base de stockage de l'historique.
===== Installation =====
Il faut d'abord charger le module //dynlist// : ldapmodify -Y EXTERNAL -H ldapi:/// << EOF
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: accesslog
EOF
Il faut ensuite créer la base LDAP qui servira au stockage de l'historique : mkdir /var/lib/ldap/my-database-accesslog/
chown openldap: /var/lib/ldap/my-database-accesslog/
ldapadd -Y EXTERNAL -H ldapi:/// << EOF
dn: olcDatabase={2}mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcSuffix: cn=my-database-accesslog
olcDbDirectory: /var/lib/ldap/my-database-accesslog/
olcAccess: {0}to *
by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage
by * break
olcDbIndex: reqDn,reqStart,reqEnd,reqType,reqSession,reqAuthzID,objectClass eq
olcDbMaxSize: 1073741824
EOF
Pour finir, il faut configurer l'overlay //accesslog// pour votre base : ldapadd -Y EXTERNAL -H ldapi:/// << EOF
dn: olcOverlay={1}accesslog,olcDatabase={1}mdb,cn=config
objectClass: olcAccesslogConfig
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {1}accesslog
olcAccessLogDB: cn=my-database-accesslog
olcAccessLogOps: writes session
olcAccessLogPurge: 365+00:00 1+00:00
olcAccessLogOld: objectClass=*
EOF
Dans cet exemple, les opérations relatives aux écritures et aux sessions utilisateurs seront historisés. La rétention de ces entrées est de 365 jours et la purge est exécutée en tâche de fond tous les jours. Pour plus d'informations, consulter la [[https://www.openldap.org/doc/admin24/overlays.html#Access%20Logging|documentation]], le manuel (''man slapo-accesslog'') ou encore le [[https://www.zytrax.com/books/ldap/ch6/accesslog.html|guide LDAP sur Zytrax.com]].
==== Purge/réduction des logs ====
Pour purger les logs, le plus simple est de stopper le service, purger toute la base et relancer le service :
service slapd stop
rm -f /var/lib/ldap/accesslog/*
service slapd start
**Alternativement, vous pouvez réduire la période de rétention** des logs en ajustant la valeur de l'attribut ''olcAccessLogPurge'' dans la configuration de l'overlay ''accesslog'' de votre database.
Ce paramètre contient deux valeurs, la première indiquant la rétention et la seconde la fréquence de purge. Par exemple, la valeur est ''365+00:00 1+00:00'' indique une rétention de 365 jours et une purge
une fois par jour. En cas de modification de cette valeur, une purge est lancée immédiatement.