Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.


Avertissement
titleEn cours de rédaction

Cette documentation est en cours de rédaction/relecture. N'hésitez pas à nous faire des retours.

Sommaire

Après quelques tests de traitement des logs apache de moodle, il nous a semblé plus pertinent de travailler directement sur la base des logs de moodle.

...

Mise en place d'une table des logs temporaire (facultatif)

Avertissement

Si vous n'utilisez pas de table temporaire, vous pouvez supprimer l'appel au script purge_db_logs.py qui nettoie cette table temporaire afin d'accélérer les traitements.


Cette étape est facultative mais a le mérite de faciliter le traitement des logs. Nous utilisons la possibilité offerte par moodle de stocker une partie des logs dans une base externe en plus de la base habituelle.
Ceci va nous permettre de traiter quotidiennement la totalité des logs depuis notre dernier traitement. Il suffira de supprimer les logs de cette nouvelle base à la fin du traitement logstash.

...

  1. Logstash va devoir se connecter à la base de données de moodle pour récupérer ses informations. Pour cela, nous utilisons le plugin input jdbc. Pour qu'il puisse fonctionner il faut télécharger le driver correspondant à votre installation et paramétrer correctement les configurations logstash correspondantes. Un exemple est donné dans les fichiers sur github.
  2. Il faut

    copier le fichier de mapping des activités (moodle-activites.yml généré par liste_modules.py) que vous avez créé précédemment dans le dossier /opt/agimus-ng/build/logstash/maps/ de votre serveur agimus. Il sera utilisé dans le traitement des logs de la base logstash-moodle-from-db.conf.

    Il faut exécuter le script de récupération des catégories moodle. Vous pouvez l'intégrer dans le traitement quotidien ou l'exécuter ponctuellement. L'important est que le fichier résultat (logstash/maps/moodle-activites.yml) soit présent

    Bloc de code
    /opt/logstash/bin/logstash -f logstash/opt/agimus-ng/build/logstash/logstash-moodle-categories.conf
    Vous devez soit relancer le script de déploiement soit recopier les nouveaux fichiers liés à moodle (dans scripts/moodle et dans logstash/logstash-moodle-*) et les adapter à votre environnement
    gen_mappings/moodle_categories/


  3. Ajouter le nouveau template elasticsearch

    Bloc de code
    languagejs
    titletemplate moodle pour elasticsearch
    collapsetrue
    PUT  _template/moodlemoodledb
     
    {
        "order" : 2,
        "template": "logstash-*",
        "settings": {},
        "mappings": {
          "coursmoodle": {
            "dynamic_templates"index_patterns" : [
              {
                "type_activites_as_int": {
                  "mapping": {
                    "type": "integer"
                  },
                  "path_match": "mdl_type_activites."ag-moodledb-*"
                }
              }
            ],
            "propertiessettings": {
              "mdl_nom_cat": {
                "index": "not_analyzed" },
                "type": "string",
                "fields""mappings" : {}
              },
              "mdl_activites": {
                "properties": {
                  "nom_activite": {
                    "index": "not_analyzed",
                    "type": "string",
                    "fields": {}
      mdl_courseid" : {
                },
                  "id_activite": {
                    "type""type" : "integer"
                  }
                },
                "type": "nested"
              },
              "mdl_nom_niv2": {
                "index": "not_analyzed",
                "type": "string",
                "fields": {}
              },
              "mdl_id_niv2": {
                "type": "integer"
              },
              "mdl_actif": {
                "type": "boolean"
              },
              "mdl_nom_niv1": {
                "index": "not_analyzed",
                "type": "string",
                "fields": {}
              },
              "mdl_courseid": {
                "type": "integer"
              },
              "mdl_id_cat": {
                "type": "integer"
              },
              "mdl_nom_cours": {
                "index": "not_analyzed",
      contextinstanceid" : {
              "type": "string",
                "fields": {}
              },
              "mdl_id_niv1": {
                "type": "integer"
              }
            }
          },
          "moodledblog": {
            "properties": {
              "uid": {
                "index": "not_analyzed",
                "type": "string",
                "fields": {}
              },
              "mdl_nom_niv2": {
                "index": "not_analyzed",
                "type": "string",
                "fields": {}objectid" : {
              },
              "mdl_nom_niv1": {
                "index": "not_analyzed",
                "type": "string",
                "fields": {}
              },
              "mdl_objectid": {
                "type": "integer"
              },
              "mdl_contextid": {
                "type": "integer"
              },
              "mdl_nom_cours": {
                "index": "not_analyzed",
                "type": "string",
                "fields": {}
              },
              "mdl_target": {
        "integer"
            "index": "not_analyzed",
                "type": "string",
                "fields": {}
              },
              "mdl_objecttable": {
                "index": "not_analyzed",
                "type": "string",
                "fields": {}
              },
              "mdl_nom_cat"actif" : {
                "index": "not_analyzed",
                "type": "string",
                "fields": {}
              },
              "mdl_actif": {
                "type": "boolean"
              },
              "mdl_courseid": {
                "type": "integer"
              },
              "mdl_crud": {
                "index": "not_analyzed",
                "type": "string",
                "fields": {}
              },
              "mdl_id": {
                "type": "integer"
              },
              "mdl_action": {
                "index": "not_analyzed",
                "type": "string",
                "fields": {}
              },
              "mdl_component": {
                "index": "not_analyzed",
                "type": "string",
                "fields": {}
              },
              "mdl_activite": {
                "index": "not_analyzed",
                "type": "string",
                "fields": {}
              },
              "mdl_contextinstanceid": {
                "type": "integer"
              }
            }
          }
        },
        "aliases": {}
    }"aliases" : { }
      }


  4. Vous trouverez l'appel à ce Il faut également activer le traitement quotidien dans le fichier de batch daily_batch.sh

...