Assistance technique

Comment purger les logs?

 
C'est moi :-)
Re: Comment purger les logs?
Moodleurs particulièrement utilesTraducteurs
Bonjour Daniel,

Avant d'y aller "à la sauvage", tu peux déjà définir dans l'interface de Moodle la "durée de conservation des historiques". Ainsi, Moodle supprimera de lui même (via le cron) les éléments plus anciens.

Sinon, il doit être possible assez facilement de supprimer les historiques des cours qui n'existent plus.

J'avais aussi rencontré un problème avec les méta-cours masqués, qui engendraient un bogue dans les historiques, et leur remplissage très rapide, il faudrait vérifier si c'est le cas...

A part ça, tu ne devrais normalement pas perdre grand chose à supprimer des éléments dans les historiques, hormis bien entendu la possibilité de les consulter, de pouvoir établir des statistiques...

Séverin
 
Moyenne des évaluations  -
C'est moi :-)
Re: Comment purger les logs?
Moodleurs particulièrement utilesTraducteurs

Concernant les historiques des cours qui n'existent plus.

Recherche de ces historiques :

SELECT DISTINCT courseid
FROM mdl_logstore_standard_log
WHERE courseid NOT IN (SELECT DISTINCT id FROM mdl_course);

Attention, manifestement beaucoup de choses sont liées au cours "0". Pour connaitre le nombre de lignes concernées :

SELECT COUNT(1)
FROM mdl_logstore_standard_log
WHERE courseid = 0;

Et du coup, si tu veux supprimer les historiques liés aux cours qui n'existent plus, mais sans toucher aux éléments liés au cours "0" :

DELETE FROM mdl_logstore_standard_log
WHERE courseid NOT IN (SELECT DISTINCT id FROM mdl_course)
AND courseid != 0;
Séverin

 
Moyenne des évaluations Utile (1)
C'est moi :-)
Re: Comment purger les logs?
Moodleurs particulièrement utilesTraducteurs

Attention, comme je l'expliquais dans ce message, supprimer des enregistrements des tables ne libérera pas forcément de la place disque (avec InnoDB) !

Par ailleurs, tu nous dis que cela "te pose des problèmes", mais tu n'as pas expliqué lesquels !

Séverin

 
Moyenne des évaluations  -
Daniel
Re: Comment purger les logs?
Moodleurs particulièrement utiles

Merci Séverin pour ces pistes.

Le problème est simplement que la création d'un clone de secours avec Softaculous (par sécurité) avant d'effectuer la mise à jour d'un Moodle 2.8 vers 3.1 bloque à un certain stade en raison de la taille de cette table.

Comme je n'avais jamais rencontré ce problème auparavant, j'ai contacté o2switch qui comme à son habitude m'a répondu promptement et complètement.

Voir leur réponse détaillée dans le fichier joint.

Daniel

 
Moyenne des évaluations  -
C'est moi :-)
Re: Comment purger les logs?
Moodleurs particulièrement utilesTraducteurs

Je trouve leur réponse bien, plutôt complète et argumentée.

Par contre, contrairement à ce qu'ils préconisent, je ne viderais pas complètement la table en question sans me poser de question !

La version utilisée étant 2.8, je suppose qu'elle date déjà d'un certain temps, et qu'il y a des éléments anciens qui doivent pouvoir en être supprimés, et qui ne changeraient peut-être strictement rien en terme de données visibles / exploitables, contrairement à un vidage complet !

(Re)lire pour cela mes différents messages...

Séverin

 
Moyenne des évaluations  -
Daniel
Re: Comment purger les logs?
Moodleurs particulièrement utiles

Bonjour,

requête1

Oui, version 2.8 que j'avais installée à l'époque puis... plus de nouvelles.

Si j'avais suivi l'évolution de cette PF depuis le début  je n'aurais sans doute pas eu ce genre de surprise.

On ne me l'a pas demandé. Et la PF est blindée de cours.

J'avais imaginé de leur installer un nouveau Moodle de secours tout propre et réinstaller tous les cours, mais il y en a trop...

En ce qui concerne tes requêtes sur la base:

  • Résultat requête 1: Ci-contre.
  • Résultat requête 2: Ci-dessous.

requête2

Demain, sauf contre-ordre, je lancerai la requête 3 ?

Le lancement manuel du Cron a duré très longtemps avec en finale des erreurs 503.

cron

Pas de modifications visibles de la taille de la table mdl_log. Toujours 15,1GO.

No comprendo mais j'ai confiance... donc j'exécute sourire

Daniel

 

 

 
Moyenne des évaluations  -
C'est moi :-)
Re: Comment purger les logs?
Moodleurs particulièrement utilesTraducteurs

Aucun risque avec la 3ème requête : elle ne fait que supprimer les historiques liés aux cours qui n'existent plus sur le Moodle !

Effectivement, pas mal d'éléments liés au cours "0", il faudrait sans doute fouiller un peu plus...

Et apparemment, il y a d'autres soucis sur cette plateforme.

 
Moyenne des évaluations  -
Daniel
Re: Comment purger les logs?
Moodleurs particulièrement utiles

C'est fait.

Réponse : 2468 lignes supprimées. (Traitement en 1.2855 sec)

Mais ma table monstrueuse est toujours de 15GO

Je pense qu'il n'y a eu que des cours ajoutés depuis l'origine mais guère ou pas de cours supprimés.

Comment trouver ce cours id=0 dans la multitude de cours installés? J'aimerais bien l'examiner un peu...

Dois-je conseiller à mon client de prendre contact avec un spécialiste informatique Moodle sur place ?

Secteur NANTES.

Daniel

 
Moyenne des évaluations  -
Avatar Nicolas Martignoni
Re: Comment purger les logs?
 
Moyenne des évaluations  -
C'est moi :-)
Re: Comment purger les logs?
Moodleurs particulièrement utilesTraducteurs

En l'occurrence, vu le peu de lignes supprimées, je doute que ça change grand chose...

Par contre, Daniel ne nous a toujours pas donné l'information essentielle : la durée de conservation des logs !

Durée qu'il suffirait normalement de réduire, afin que Moodle supprime de lui-même (via le cron) un très grand nombre d'enregistrements... cela devrait ensuite suffire à ce que les scripts PHP de sauvegarde puissent s'exécuter correctement. Ou a minima permettre un export via ssh qui prendra moins de temps et de place.

 
Moyenne des évaluations  -
C'est moi :-)
Re: Comment purger les logs?
Moodleurs particulièrement utilesTraducteurs

Concernant les éléments liés au cours "0", pour en savoir plus, tu peux lancer la requête suivante :

SELECT DISTINCT eventname, action, COUNT(1) AS Nb
FROM mdl_logstore_standard_log
WHERE courseid = 0
GROUP BY eventname, action;

Séverin

 
Moyenne des évaluations  -
Daniel
Re: Comment purger les logs?
Moodleurs particulièrement utiles

Bonsoir...

  1. J'ai cherché dans les sauvegardes un cours id=0 ... Pas trouvé. Sachant que le id=1 est la page d'accueil quel peut bien être un cours 0 dans Moodle?
  2. Le lancement de la requête ci-dessus me renvoie une erreur. erreur requête 3
  3. Ou puis-je trouver, dans Moodle le durée de conservation des logs? S'il s'agit des historiques...(pour parler en français...)  ils étaient à "Ne jamais effacer" et je les ai portés hier à 365 jours par précaution. Mais je n'ai vu aucun changement dans la taille de cette table de 15GO. Vu la date actuelle je pourrais peut-être tenter 90 jours environ pour conserver les historiques depuis la rentrée ?

Merci pour votre persévérance à m'aider à régler ce problème, nouveau pour moi.

Daniel

 
Moyenne des évaluations  -
C'est moi :-)
Re: Comment purger les logs?
Moodleurs particulièrement utilesTraducteurs

Bonjour Daniel,

  1. Effectivement, il n'existe pas de cours 0, c'est pour cela que je l'avais mis entre guillemets. J'imagine que cela correspond à des éléments "spéciaux", liés à la plateforme.
  2. Ma requête fonctionne, lancée directement depuis la ligne de commande MySql (qui ne rajoute rien à ce que je lui demande). Vu ton message d'erreur, je suppose que tu utilises un outil qui rajoute une option limitant le nombre de lignes affichées en sortie. Du coup, il doit suffire d'enlever le ";" final.
  3. Oui, c'est bien des historiques qu'il est question ! Si rien n'était supprimé, ça ne m'étonne pas que ça grossissait. Pour que la suppression se fasse, il faut que le cron fonctionne, et que dans les "Tâches programmées", la tâche "Nettoyage de la table d'historiques" soit active ! Un nettoyage devrait ainsi avoir lieu après l'horaire d'exécution de cette tâche.
    Tu devrais déjà voir des changements en passant à un an ! Si vraiment nécessaire, tu pourrais ensuite baisser cette durée, mais plutôt de façon progressive...

Une autre possibilité serait de supprimer les historiques qui ne sont pas liés à des actions réelles des utilisateurs (origin='web'), mais liés à des actions effectuées par Moodle (origin='cli'). La dernière ligne (optionnelle) permet de limiter à ce qui est plus ancien qu'une date spécifiée (au lieu de tout supprimer).

DELETE FROM mdl_logstore_standard_log
WHERE origin='cli'
AND timecreated < UNIX_TIMESTAMP ('2016-01-01')

Séverin

 
Moyenne des évaluations  -
Daniel
Re: Comment purger les logs?
Moodleurs particulièrement utiles

Bonjour Séverin.

Merci pour ta persévérance.

  1. Les dernières requêtes ont été lancées dans l'onglet SQL de PhpMyadmin. En, supprimant le ; final ça passe. Mais elles donnent 0 lignes effacées. Et la table est toujours de 15GO.
  2. Voici la copie de la ligne de la tâche demandée. Dernière exécution le 5 septembre...! Et que signifie ASAP ? Voilà une page sur laquelle je ne suis jamais allé sur aucun de mes Moodle...table histo
  3. J'ai déjà baissé la conservation des historiques à 90 jours (début d'année scolaire) mais il n'y a aucun changement.
  4. C'est quoi ce "Prochaine exécution: ASAP" ? "Dès que possible" ? En réinitialisant l'exécution de cette tâche, ASAP a été remplacé par "vendredi 2 décembre à 4H55. Il va peut-être se passer quelque chose dans la nuit qui vient... Espoir
  5. Je me demande si je devrais pas réinitialiser toutes ces tâches programmées repérées ASAP?

Daniel

 
Moyenne des évaluations  -
Avatar Nicolas Martignoni
Re: Comment purger les logs?
DéveloppeursMoodleurs particulièrement utilesTraducteurs

ASAP = A soon as possible, i.e. au prochain lancement du cron. Si ce terme est affiché, ça signifie que le cron n'est pas lancé régulièrement. Est-ce que ton cron se lance bien toutes les minutes, comme c'est désormais recommandé (ou au moins toutes les 3 minutes) ?

La tâche en question se lance par défaut tous les jours à 4h03 du matin (pour autant que le cron tourne toutes les minutes). Donc oui, bonne surprise cette nuit. C'est cependant surprenant que chez toi, ce soit à 4h55, mais peu importe.

Non, il ne sert à rien de réinitialiser les tâches ASAP. Il faut simplement lancer le cron toutes les minutes (je sais, je me répète). D'ailleurs, que veux-tu dire par là, revenir à la programmation par défaut ?

Et finalement, même si les enregistrements sont supprimés de la table, l'espace disque qu'elle occupe ne sera pas diminué, comme Séverin l'a expliqué plus haut.


 
Moyenne des évaluations  -
Daniel
Re: Comment purger les logs?
Moodleurs particulièrement utiles

Bonjour,

Mon CRON était toutes les dix minutes. Je l'ai passé à une minute.  C'est une PF 2.7 néanmoins. Je ne sais si à l'époque de telles valeurs étaient recommandées?

Et comme à chaque fois que je le lance manuellement il passe beaucoup de temps et se termine par des erreurs inexplicables pour moi (voir copie d'écran plus haut dans le fil) cette nouvelle programmation ne me rassure pas.

Ce matin la plupart des tâches sont repassées sur ASAP. Semblant indiquer que le cron ne peut faire complètement son travail et qu'il reporte à plus tard cette charge. Un peu comme moi d'ailleurs ces temps-ci...grand sourire

Hier j'avais réinitialisé le timing de ces tâches à la valeur par défaut en cochant la case.  initTask

_______________________________________________________________________________________________

Par ailleurs le gestionnaire de la plateforme me signale qu'il a demandé aux étudiants d'insérer, dans leur calendrier personnel Moodle en page d'accueil le calendrier de l'école établi sur Google Agenda. Il pense "qu'une tonne" de notifications se déversent en permanence dans Moodle et que c'est peut-être cela qui a fait gonfler cette table de logs de taille 15GO.

Au pire si aucune solution satisfaisante n'est trouvée je vais carrément vider cette table rien que pour voir si cela s'arrange. D'autant plus que les erreurs signalées en fin de tâche CRON semblent aussi concerner un agenda calendar.

Daniel

 
Moyenne des évaluations  -
C'est moi :-)
Re: Comment purger les logs?
Moodleurs particulièrement utilesTraducteurs

Bonjour,

Effectivement, ASAP ("As Soon As Possible") signifie "Dès que possible", soit la prochaine exécution du cron. En soi, il n'est pas anormal que certaines tâches soit définies comme "ASAP", car elles doivent s'exécuter le plus régulièrement possible.

Mais en l'occurrence, si ASAP est affiché pour cette tâche, c'est parce que, manifestement, elle n'a pas été exécutée (correctement) depuis très longtemps (on constate le 5 septembre ! ). Et de toute façon, elle n'avait rien supprimé vu que la conservation des historiques était infinie !

De ce que l'on voit sur la copie d'écran, elle est programmée à 4h00, chaque jour. Du coup, le premier cron qui s'exécute à partir de 4h00 devrait lancer cette tâche.

Et je suppose que si 4h55 s'est affiché, c'est parce que le cron doit tourner une (seule) fois par heure, à la minute 55.

Mais effectivement, il devrait avoir effectué cette tâche cette nuit.

Comme je le disais précédemment, je trouve dommage (voire "dangereux") de passer directement de "ne jamais supprimer les historiques" à "conserver 90 jours", car cela impliquera des suppressions de données qui pourraient être utiles, ainsi qu'un temps d'exécution de cette tâche largement augmenté, et qui risque donc de planter en cours de route... Il faudrait déjà s'assurer que le nettoyage fonctionne, et voir quel résultat cela apporte, avant de baisser la valeur drastiquement, mais plutôt la baisser de façon progressive (si nécessaire).

Première question : le cron est-il bien actif régulièrement ?

Même si l'exécution très régulière du cron (idéalement chaque minute) est recommandée, n'avoir qu'une exécution par heure ne devrait pas être rédhibitoire (pour ce genre de tâche), mais entrainer des ralentissements (voire des réactions bizarres pour certains éléments). De nombreux établissements fonctionnent encore avec peu d'exécutions par heure...

Même si la place disque n'est pas libérée, ce n'est (a priori) pas ce qui gêne Daniel en l'occurrence, le but étant de pouvoir effectuer une sauvegarde de la base. Et cette sauvegarde, elle, bénéficiera des lignes effacées, en ne les sauvegardant pas.

Daniel : quand tu dis que les "dernières requêtes n'ont rien supprimé", pourrais tu préciser très clairement de quels requêtes tu parles ? Parce que je reste très étonné qu'il n'existe aucune ligne dans les historiques d'origine "cli" !

Il est également possible que le déroulement de certaines tâches programmées plante, et empêche l'exécution d'autres tâches (même si de ce que j'avais compris, cela ne devrait plus être le cas depuis Moodle 2.7 et cette nouvelle organisation du cron). Dans ce cas, il faudrait peut-être essayer de désactiver (temporairement) les tâches non indispensables et/ou qui plantent.

Séverin

 
Moyenne des évaluations  -
Daniel
Re: Comment purger les logs?
Moodleurs particulièrement utiles

Merci Séverin pour ces explications détaillées.

Je vais essayer:

  1. De comprendre tout ce que tu me dis.
  2. Sans doute de vider cette table gigantesque (avec l'autorisation que j'ai reçue du gestionnaire de PF) pour voir si les choses se passent mieux.
  3. De regarder ce qui se passe du côté de ce calendrier de page d'accueil avec Google calendar intégré par tous les élèves qui semble être le point de départ des problèmes et la cause du remplissage exagéré de cette table. Il leur a été conseillé d'intégrer le calendar de l'école stocké sur Google dans leur calendrier personnel Moodle accessible en page d'accueil. Du coup il doit y avoir des tonnes de calendriers identiques...
  4. Les trois requêtes dont je parle sont celles que tu m'as données dès le début et que j'ai lancées successivement dans l'onglet SQL de phpmyadmin.
  5. Je n'ai pas de message informant que le cron "n'a pas été activé depuis plus de 24h" dans les notifications. Par contre je pense qu'il ne va pas au bout de son travail et il dure assez longtemps. Je le constate lors de mes lancements en manuel. Je n'ai d'ailleurs pas l'info du temps d'exécution en finale.

Après une semaine d’atermoiements je vais essayer sans doute d'autres solutions plus brutales.

Tiens ce qui pourrait être utile c'est de pouvoir effacer tous les calendriers... Désactiver le plugin ou mieux le désinstaller proprement puis le réinstaller.

Car les étudiants accèdent dans chaque cours, par une URL directement à leur emploi du temps sur l'agenda Google. Cette duplication dans le calendrier de la page d'accueil me semble inutile.

Enfin il est facile de vider la table de 15GO sans requête simplement en cliquant sur l'icône "vider" dans phpmyadmin.

table

 

Daniel

 
Moyenne des évaluations  -
C'est moi :-)
Re: Comment purger les logs?
Moodleurs particulièrement utilesTraducteurs

Daniel,

Effectivement, je crois qu'il est vraiment nécessaire que tu prennes le temps de (bien) relire la totalité de cette discussion, de comprendre le sens de mes différents messages, et d'en tenir compte !

Les 3 premières requêtes étaient surtout de la consultation, puis une requête de suppression d'éléments liés aux cours qui n'existent plus. Il est donc normal que rien de plus ne soit supprimé.

Mais entre-temps, je t'ai indiqué d'autres requêtes pour supprimer les éléments "interne" de Moodle (origin='cli') et te permettre de mieux quantifier les différents types d'informations existants, pour savoir ensuite quoi supprimer.

Je t'ai aussi suggéré de désactiver (temporairement) certaines tâches, pour arriver à une exécution correcte du cron, jusqu'au bout (qui affiche le temps total pris).

Effectivement, il est facile de tout supprimer ("bêtement"), sans chercher à faire dans le détail. Après tout, c'est une solution ("violente"), si tu es certain de ne plus jamais avoir besoin du moindre historique passé, des moindres statistiques, voire de la moindre obligation de pouvoir retrouver trace d'actions effectuées...

Mais je pense que déjà la suppression des éléments avec origin='cli' devrait faire une grosse différence, tout en gardant trace des actions effectuées par les utilisateurs. Et le nettoyage automatique intégré de Moodle, en gardant 1 an aussi.

Séverin

 
Moyenne des évaluations  -
Anne
Re: Comment purger les logs?
 

Bonjour Daniel

Nous avons eu aussi des soucis en début d'année 2016 sur la taille des logs.

Voir la discussion ici : https://moodle.org/mod/forum/discuss.php?d=326903

Ce sont particulièrement les google calendar qui nous on posé pb. En effet , à chaque cron, cela recréé un événement pour chaque entrée de chacun des  calendriers... En l'occurence pour nous , deux calendriers google , intégré dans une centaine de calendrier Moodle.

Bon courage

Anne



 
Moyenne des évaluations Utile (1)
Daniel
Re: Comment purger les logs?
Moodleurs particulièrement utiles

Bonjour Anne,

C'est en effet sur cette piste que je travaille.

Ayant réussi à cloner le site, je peux me livrer sans risques à des investigations.

J'informe mon client de cela.

Je n'avais pas repéré cette discussion de janvier 2016.

Merci à toi.

Daniel

 
Moyenne des évaluations  -
Avatar Pierre Poirier
Re: Comment purger les logs?
 

Salut

Je me greffe à la discussion avec du retard.
Je me retrouve dans le même cas que Daniel.
Séverin, quand tu parles des historiques perdus suite à une purge manuelle, je ne trouve pas d'infos concernant précisément ces historiques. 

Si je vide mdl_logstore_standard_log, à part les stats, rien n'est perdu, non ? Pas de problèmes pour les utilisateurs ?

Bref, merci pour la réponse.

Cordialement


Pierre

 
Moyenne des évaluations  -
C'est moi :-)
Re: Comment purger les logs?
Moodleurs particulièrement utilesTraducteurs

Bonjour,

Supprimer les historiques ne supprimera rien en soi qui touche directement le travail des étudiants.

Par contre, il ne sera plus forcément possible de revoir l'historique des différentes actions effectuées.

Suivant les contextes, cela peut être (très) gênant.

Séverin

 
Moyenne des évaluations  -
Avatar Pierre Poirier
Re: Comment purger les logs?
 

Merci pour la rapidité de ta réponse.
J'avais besoin d'une confirmation (le fameux transfert de responsabilité ;))

Il faut que je prenne une bdd plus grande de toute façon .

Pierre

 
Moyenne des évaluations  -