Moodleのログ分析による効果的な授業支援

24
Moodle のののののののの のののののののの のの のの

Transcript of Moodleのログ分析による効果的な授業支援

Page 1: Moodleのログ分析による効果的な授業支援

Moodle のログ分析による効果的な授業支援

不破 崇行

Page 2: Moodleのログ分析による効果的な授業支援

自己紹介

• 不破 崇行 ( ふわ たかゆき )• 北海道札幌市在住のプログラマ

• 趣味• Moodle プラグイン開発

• https://github.com/yuesan/• その他プログラミング (PHP/C#/Perl...)• 落語鑑賞など

Page 3: Moodleのログ分析による効果的な授業支援

過去の制作物Mamiline(block)• 最初に開発したログ可視化ツール• Moodle のログを集計し、「見える化」できる

ビューワー• 学生に「ふりかえり」をしてもらう事が狙い

• 現在、後継プラグイン (Minerva) を開発中• ソースコード

• https://github.com/yuesan/moodle-block_mamiline

Page 4: Moodleのログ分析による効果的な授業支援

過去の制作物Misaka(block)

• Moodle のログデータを学生ごとに集計し、「やる気が出る」アドバイスを出す

• ポジティブなアドバイスのみ出すことで、モチベーションを上げる

• ソースコード• https://github.com/yuesan/moodle-

block_misaka

Page 5: Moodleのログ分析による効果的な授業支援

本日の発表内容

• elasticsearch を使用した Moodle 上のログデータ集積方法• Kibana による elasticsearch 上の集積データ可視化

Page 6: Moodleのログ分析による効果的な授業支援

Moodle におけるログの収集と記録

• Moodle には、ユーザーの行動を記録するログを保存する機能がある

Moodle へのアクセス

ログデータがサーバに

記録される

Moodle データベースサーバなどMoodle ユーザー

Page 7: Moodleのログ分析による効果的な授業支援

ログの保存先 ( ログストア )• Moodle2.x からログの保存方式が変更になり、 DB 以外のミドルウェ

アにもログデータを保存できるようになった。

ログデータを

複数送信

Moodle 複数のミドルウェア

Page 8: Moodleのログ分析による効果的な授業支援

Moodle におけるログ呼び出し時のシーケンス

https://docs.moodle.org/dev/Logging_2#Benefits_of_the_new_logging_system

レポート表示用プラグイン

Page 9: Moodleのログ分析による効果的な授業支援

logging2 のメリット(Benefits of the new logging system)• 公式サイトから引用• https://docs.moodle.org/dev/Logging_2#Benefits_of_the_new_logging_

system

• A few benefits of the new logging system are:• it allows capture of richer information from Moodle about actions;• it provides control over how much information is logged;• it abstracts log writing and reading so logging can be scaled;• it lets you write/read logs to/from any external system through the use

of logstore plugins;• it allows control over how much logging history is kept; and• it supports research, reporting and analytics.

Page 10: Moodleのログ分析による効果的な授業支援

標準のログストア (standard_log)• 何も設定をしていない場合、従来通り MySQL など DB 上に記録され

る• standard_log というログストア名

Page 11: Moodleのログ分析による効果的な授業支援

standard_log で保存される項目

• 次に挙げる項目はよく使う項目を抜粋カラム名 記録される内容 実際の記録例

eventname イベント名 \core\event\user_loggedincomponent プラグイン名 mod_quizaction 表示 or 書き込み viewedtarget どのプラグインに向けて行動したか course_modulecontextid コンテキスト id 60userid ユーザー id 10timecreated 書き込み時刻 1470138816 (UNIX 時間 )ip IP アドレス 123.456.17.9

Page 12: Moodleのログ分析による効果的な授業支援

ログ送信時のメリット

• ログに送信する項目は任意に増やす事 ( 拡張 ) が出来る。• Moodle の core で使用する項目さえ送信していれば、自由に送信することが

出来る• ログストアの実装次第では、プラグイン内のデータ ( 小テストの詳細情報な

ど )を細かく送信することが出来る。

• ログストアのアーキテクチャによって、この自由度は変わるケースがある。• standard_log では拡張することが出来ない

Page 13: Moodleのログ分析による効果的な授業支援

standard_log のデメリット

• ログの記録項目を拡張できない• リレーショナル DB(RDB) では、カラム拡張自体は行うことが出来るが

コストがかかる• カラムを途中で増やした場合、一部で Moodle の動作に

不具合が発生する危険性がある• 元々 RDB はカラムを途中で拡張するような設計にはなっていないため、動的

拡張が仕様上不可能

• 1 テーブルに全て格納するため、レコード数が増えるにつれてパフォーマンス低下するおそれがある• SELECT * FRON mdl_standard_log などワイルドカードを使う SQL を投げ

てしまうと DB サーバに高負荷がかかってしまい、 Moodle の動作に支障が出る

Page 14: Moodleのログ分析による効果的な授業支援

解決策全文検索エンジンをログストアとして使用する• standard_log ではデータ拡張性に限界があるため、別の方法を検討したい• そこで、 elasticsearch(エラスティックサーチ ) という

全文検索エンジンにログを投入し、分析可能な状態にする• オープンソース全文検索ソフトウェア• 無償で利用可能• 世界中で利用実績がある• JSON形式での入出力が出来る

Page 15: Moodleのログ分析による効果的な授業支援

ログの保存先 ( ログストア )• Moodle2.x からログの保存方式が変更になり、 DB 以外のミドルウェ

アにもログデータを保存できるようになった。

ログデータを

複数送信

Moodle 複数のミドルウェア

Page 16: Moodleのログ分析による効果的な授業支援

解決策全文検索エンジンをログストアとして使用する• standard_log ではデータ拡張性に限界があるため、別の方法を検討したい• そこで、 elasticsearch(エラスティックサーチ ) という

全文検索エンジンにログを投入し、分析可能な状態にする• オープンソース全文検索ソフトウェア• 無償で利用可能• 世界中で利用実績がある• JSON形式での入出力が出来る

Page 17: Moodleのログ分析による効果的な授業支援

全文検索エンジンをログストアにするメリット• ログ検索・抽出・可視化のように、件数が多く

リアルタイムで処理させたい場合には、elasticsearch など全文検索エンジンを使用

•今回は、無償で利用可能な elasticsearch を利用

Page 18: Moodleのログ分析による効果的な授業支援

elasticsearch のメリット

• 項目拡張が自由に出来る• JSON形式でデータを投入できるため、

キーを自由に定義出来る• モジュールごとに、成績情報を細かく

保存させることが出来る

Page 19: Moodleのログ分析による効果的な授業支援

elasticsearch のメリット

• 可視化ツールが提供されている• Kibana( きばな ) というツールを

Web サーバにインストール• Lucene クエリを打ち込むと

そのままログデータを検索出来る

Page 20: Moodleのログ分析による効果的な授業支援

Moodle + elasticsearch の仕組み

•今回はデータ変換を容易に行うために、アダプターとしてfluentd を使用• ログの書き出しが発生した瞬間に elasticsearch へログデータが転送される仕組み

Moodle からログを出力

fluentd を経由させ、elasticsearch でも読み込めるように変換する

elasticsearch にデータを投入させることで検索可能にする

Page 21: Moodleのログ分析による効果的な授業支援

Moodle 上のピークタイム(X: 時間 Y: アクセスカウント )• どの時間帯に学生が Moodle を利用しているかの把握• 例:休日に学生は「どの時間帯」に

Moodle へアクセスしているかを分析• 行動分析効果的な課題の締め切り設定に活用できる

Page 22: Moodleのログ分析による効果的な授業支援

課題提出した時間帯を分析

• data.action=“assigned” で分析• 2秒ぐらいで結果が出ます。

Page 23: Moodleのログ分析による効果的な授業支援

デモ

• Moodle3.2 + elasticsearch5 + Kibana5 の組み合わせで可視化のデモを行います

Page 24: Moodleのログ分析による効果的な授業支援

まとめ

•膨大なログデータを分析・可視化する場合、全文検索エンジンを応用することで効果的な分析・可視化を行うことが出来る

• elasticsearch + Kibana の組み合わせを使うことで、効果的にログデータの可視化を行うことが出来る