Moodleのオンラインユーザ数を可視化

学認連携Moodleの繁忙期を前に、オンラインユーザ数を可視化することを思いついた。もちろんMoodle内部にそのような仕掛けはあるが、可視化ページの「Logged in Users」をMoodleのオンラインユーザ数と勘違いされている場合があったため、rraに記録し可視化するのが有用であると考えた。

オンラインユーザ数を取得するスクリプトの作成

#blocks/online_users/block_online_users.phpを参考にした
#/bin/sh
pass='your password'
db='your database'
output=`/usr/bin/mysql -s -umdluser -p$pass $db -e "SELECT count(u.id) FROM mdl_user u WHERE u.lastaccess > unix_timestamp(now()) - 300 AND u.lastaccess <= now() AND u.deleted = 0"`
echo $output

これを実行し単独の数値が出力されるか確認する。確認できたら、データインプットメソッドへの登録、データテンプレートの作成、データソースの登録、グラフテンプレートの登録と進めれば良い。おやじさんのページがひじょうに参考になりました。

結果は以下の通り。まだまだ改善の余地はあるが何とか間に合いました。

security-learning のオンラインユーザ数
security-learning のオンラインユーザ数
 

Cactiで複数年のデータを比較

CactiはRRDToolをバックエンドに持ち、MRTG(古い!)より柔軟な可視化ができる優れたツールである。これで学認連携Moodle講習サイトの負荷を可視化している。昨年は400日で良いかと思っていたが、やはり比較するには2年以上の記録を残しておく必要があることに気付き、以下のように変更した。

RRDの大きさを、すべてのスコープに渡って800日有効に設定
RRDの大きさを、すべてのスコープに渡って800日有効に設定

なお、この設定についてはサバカン様の技術情報をそのまま使わせていただいています。本記事は備忘のリンク元として記述しました。

追記 2015/09/11 上記記事はリンク切れになっているようです。同様の記述はこちらにもありました。