Pourquoi surveiller Moodle ? il ne va pas s’échapper !

Non bien sur :-) , mais Moodle est une application de plus en plus critique et de plus en plus touffue. Critique car pour de nombreuses organisation Moodle est devenu un outil central de la stratégie e-learning. Et touffue car son architecture modulaire fait que cela induit de la complexité horizontale et verticale.

Et il y a bien sûr la somme de tous les usages de tous les utilisateurs connectés, mais il y a aussi tout un ensemble de processus automatiques qui traitent, transforment, nettoient les données accumulées dans votre plate-forme LMS Moodle.

Le cycle de vie de la plate-forme étant assez rapide, (une nouvelle version de code majeure tous les 6 à 8 mois), les mises à jour sont des courses contre la montre dans un environnement massifié.

Les premières approches les plus directes ont été de développer petit à petit des rapports additionnels (plugins tiers) qui se sont ajoutés aux rapports standard de Moodle. Mais la pratique a des limites : en restant dans la plate-forme, les rapports et les indicateurs demandés peuvent (et le font) induire des charges de calcul incompatibles avec l’exploitation courante.

Le cas de Moodle multiples

Lorsque l’on gère de multiples Moodle de manière répartie (Ce qu’on appelle donc multi-tenant), l’architecture de Moodle répond mal au besoin de consolidation des indicateurs sur plusieurs LMS Moodle.

De plus, lorsque l’on doit gérer un grand nombre d’unités Moodle dans un environnement très décentralisé  se pose rapidement la question des déploiements et de la maintenance de l’outil de surveillance lui-même.

Pour toutes ces raisons, et aboutissant à la conclusion qu’un outil flexible, efficient et facilement extensible ne pouvait finalement qu’être en dehors de l’architecture technique propre de Moodle, nous avons lancé une expérimentation de construction d’une solution d’écoute des données de Moodle sur la base d’une plate-forme Zabbix.

Pourquoi superviser Moodle avec Zabbix ?

  • C’est une solution qui est elle-même open-source,
  • Le principe de collecte de données est bien plus flexible et facile à travailler qu’avec son ancêtre Nagios,
  • La structure d’administration de Zabbix est bien architecturée pour multiplier des « instances parallèles » de collecteurs de données,
  • Les « templates » Zabbix permettent un déploiement facilité sur de gros parcs multi-tenant,
  • Une structure astucieuse de la collecte de données permettant de concevoir une observation « dans les deux sens » : du serveur de supervision à l’applicatif en mode actif, ou de l’applicatif vers le serveur de supervision, en mode passif.

Il s’agit en bien d’apporter une réponse simple, et libre à la « surveillance » et « observation » des indicateurs clefs de fonctionnement dans un environnement potentiellement de très nombreuses installations Moodle.

La génèse de ce projet lié à Moodle

Le projet a été sous-tendu par plusieurs impératifs issus d’une longue expérience d’essais ou de limites antérieures sur ces questions de rapports et d’indicateurs globaux.

  • D’une part, laisser faire à chaque morceau de la solution ce qu’il sait bien faire,
  • D’autre part, examiner de manière détaillée les impacts en performance et la possibilité de les gérer au mieux.

Zabbix est donc chargé de collecter des « indicateurs » calculés dans une plate-forme Moodle.

Ces indicateurs sont collectés dans Moodle par un plugin spécifique travaillant avec le cron pour cadencer les fréquences d’émission. L’émission utilise un outil simple de la technologie zabbix  qui permet d’envoyer des données à un serveur configuré de manière adéquate.

Moodle effectue donc le minimum, c’est à dire l’obtention de la mesure dans ses données. Tout le reste, le stockage, la consolidation, la création de graphes, l’agencement est effectué par le moteur Zabbix.

Celui-ci pouvant être facilement déporté sur un autre serveur, la charge de manipulation des données collectées peut être totalement dissociée de celle de l’infrastructure Moodle.

En résultat une excellente surveillance de la « bonne santé » de votre Moodle et la collecte de données statistiques d’indicateurs clés, utiles aussi bien pour les décideurs que les équipes pédagogiques Moodle.

Un modèle extensible pour des données pédagogiques

Dans le foisonnement des fonctionnalités se trouvent probablement des données qui intéressent certains opérateurs pédagogiques. Comme il est difficile de tout prévoir à l’avance. Il était donc intéressant de trouver un modèle facilement extensible. Côté Zabbix tout se fait dans des définitions de modèles par configuration. Aucune remise en cause du « code » de Zabbix n’est nécessaire.

Côté Moodle, les indicateurs sont définis dans des fichiers spécifiques, par thématique, et il est très simple de construire un nouveau jeu d’indicateurs et de l’ajouter au plugin.

Un modèle respectueux de la modularité de Moodle

Un certain nombre de plugins tiers oublient le modèle de modularité de Moodle. Leur conception prend en compte tout les aspects de l’offre standard de Moodle, mais oublient que des plugins additionnels (qui rentrent pourtant dans leur focus) peuvent être ajoutés à la plate-forme. Le modèle choisi pour la surveillance Zabbix tient compte de cette modularité et fournit un modèle général pour que d’autres plugins tiers puissent « se faire observer » par des indicateurs spécifiques.

Des indicateurs émis à des rythmes adaptés

Tous les indicateurs ne portent pas sur les mêmes durées. Les indicateurs sont répartis dans des groupes selon leur « fréquence d’échantillonnage », constante, quotidienne, hebdomadaire ou mensuelle. Cette adaptabilité permet d’ajuster au plus juste la quantité de données à stocker dans Zabbix, et la charge induite dans Moodle.

Des indicateurs pédagogiques nombreux et précis

Ne cherchez pas les « indicateurs techniques » du serveur dans ce plugin ! Zabbix dispose en natif de tous les modèles permettant de surveiller des serveurs et des systèmes d’exploitation.

Il s’agit bien de collecter des indicateurs « métier » c’est-à-dire, sur l’exploitation pédagogique de la plate-forme.

Une soixantaine d’indicateurs ont été déjà codés dans le plugin « de base », des observateurs sur les cours, le rythme de création des cours, les utilisateurs, leur évolution, les connexions, mais aussi des indicateurs plus fins comme le nombre de remises de devoir ou les participations aux forums.