Best Practices In Moodle Administration

12,428 views

Published on

Best Practices In Moodle Administration

Published in: Technology

Best Practices In Moodle Administration

  1. 1. Best Practices in Moodle Administration Jonathan Moore Founder
  2. 2. Background and Context ● Managed thousands of Moodle sites ● Managed millions of Moodle user accounts ● Over 10 years experience with Moodle ● Tuning, scalability, and performance expert ● Author of Moodle Module Development
  3. 3. Format ● Variety of tips / tricks ● Learn the possibilities ● Some hands on ● Ask questions! ● Share your tips
  4. 4. Getting to Know You ● How many were in this session last year? ● Interest in new features in 2.8 / 2.9?
  5. 5. Getting to Know You ● How many new admins? ● How many running Moodle 2.6? Moodle 2.7? Moodle 2.8? ● Anyone running Moodle older than 2.6? ● Any Moodle 1.9 sites? ● Are you a 'geeky
  6. 6. Getting to Know You ● How many host your own Moodle site? ● What OS are you running? ● What web server are you running? ● What database are you running? ● What are you hoping to learn today?
  7. 7. Outages ● 80% of failures are bad changes ● 80% of downtime finding the bad change
  8. 8. Outages ● 80% of failures are bad changes ● 80% of downtime finding the bad change
  9. 9. Moodle Mission Critical? Use Change Management! ● Have a stakeholder change advisory board ● Who are our stakeholders? ● What should we control? ● What causes downtime? ● What causes user issues?
  10. 10. Hands-on ● Forming a Change Advisory Board ● Who? ● How often? ● What are we controlling?
  11. 11. Change Management Tips ● Control settings management ● Control module approval ● Control stack changes ● Document the how's and why's ● Be responsive ● Read the Visible Ops book
  12. 12. Hands-on ● Local Moodle install ● Moodle.org – Downloads – Current builds – Choose Mac / PC
  13. 13. Admin Know Thy Server ● Monitoring: Cacti / Zennoss ● SNMP monitoring ● Round robin log storage ● Alerts and Notifications: Nagios ● SNMP alert system ● Have your servers page or text you!
  14. 14. ● Linux most used for scalability ● Windows lower performance for PHP apps, but improving ● Mac OSX forking performance issue ● Apache and MySQL concurrency issue Platform Selection
  15. 15. Performance Tips ● PHP Accelerator – APC / OPCache ● MySQL – – Buffers and Query Caching – Use InnoDB – Use MariaDB build ● Sessions ● Moodle source code location
  16. 16. Performance Tweaking ● Memory Budget ● Concurrency ● 5 Things Making Your Site Slow ● Testing
  17. 17. Hands-on ● Visit phpinfo ● Site Administration → Server → phpInfo ● Confirm PHP version ● Confirm if PHP Accelerator
  18. 18. More Tips ● Batch cron.php runs for multiple Moodles ● Check state of indexes and bigints ● Perform database maintenance
  19. 19. Performance Testing Tools ● Admins – jMeter – Apache ab utility ● Devs – Behat / Sellenium – XProf
  20. 20. JMeter Benchmarking ● Simulates simultaneous user activity ● Gathers response and throughput results ● Not a browser can't test javascript ● Can use to measure +/- of changes ● Can use to estimate expected concurrency, but harder ● Moodle 2.6 and onward has builtin integration
  21. 21. User Management ● Plan ahead Moodle sites grow fast! ● Measure twice cut once ● Automate
  22. 22.  Great combination: LDAP authentication with external database enrolment  Automate account creation  Enrollment Plug-ins − Automate course creation − Automate teacher assignment − Automate student enrollments  Synchronization scripts A Better Way – Automate!
  23. 23.  Automate user creation, course creation and enrolments  Use LDAP auth + external DB enrolment  Get higher adoption rates from instructors  Instructor can focus more time on teaching less on the technology Just-in-Case Model
  24. 24. Hands-on ● Bulk upload users with a flat file ● External DB enrollmet setup
  25. 25. Roles ● Avoid changing built in roles ● Remember reset defaults option ● Know what level to apply roles at – Admin: global – Course Creator: global, or category – Student, Teacher: course ● Know what level capabilities work at ● Make new roles by copying most similar existing role
  26. 26. Hands-on ● Duplicate a role and edit
  27. 27. ● Course backups not a full backup! ● Disable automated course backups? ● Yesterday instance ● Backup Elements ● Moodle code ● Moodledata ● Database Backups Management
  28. 28. Hands-on ● Make a Moodle backup – Copy Moodle source dir – Copy Moodle data dir – 'dump' database to sql file
  29. 29. ● Use an issue tracker / ticket system ● Get a detailed user report ● Use Moodle debugger ● Reproduce issue ● Use search ● Google ● Moodle tracker ● Moodle forums and docs Finding and Fixing
  30. 30. Hands-on ● Enable debugging ● Site Admin → Development → Debugging ● Increase debugging level ● Enable display ● Enable performance info
  31. 31. Moodle Issue Tracker  Use notification screen to confirm version  Moodle Issue Tracker »Vote for bugs »Set a watch your important bugs »Store issue ID in your support system for later reference »http://tracker.moodle.org
  32. 32. Hands-on ● Visit issue tracker ● Http://tracker.moodle.org
  33. 33. Custom Development and Modules  Don't load modules just because they are available  Use modules over “hacks”  Use the forums to evaluate modules  Use the author's profile to research the creator  Consider long term availability  Consider security
  34. 34. Common Plug-in Types ● Blocks ● Activity modules ● Filters ● Auth ● Enrollment ● Local ● Themes
  35. 35. PhpMyAdmin / Adminer  Useful and powerful, but dangerous  Useful to pull reports not built into Moodle  Change settings not in GUI  Fix Moodle when “broken” by user error  Reset administrator password if locked out
  36. 36. Hands-on ● Install the certificate module ● Install Adminer
  37. 37. MyODBC  Windows client software  Connect MySQL to desktop applications  Make ad hoc reports in MS Access, Excel, Open Office, etc.
  38. 38. Various Admin Helpers ● Moodle debug ● General debugging ● Performance debugging ● phpinfo – confirm your php build ● iperf – test your network ● Iostat / sar – linux disk usage stats ● strace – see what a process is doing
  39. 39. Security ● Security report ● Use password salts ● User passwords – less secure then ever! – Know about password managers like lastpass and keepass ● Don't give web server user write permissions to Moodle source
  40. 40. General Security ● Select Enterprise class OS with long term update support. ● Automate updates / have set release schedule ● Moodledata outside of web root ● Try mod_sec ● Consider using weekly stable git for Moodle auto updates ● Consider forced logins ● HTTPS logins
  41. 41. General Security ● Select Enterprise class OS with long term update support. ● Automate updates / have set release schedule ● Moodledata outside of web root ● Try mod_sec ● Consider using weekly stable git for Moodle auto updates ● Consider forced logins ● HTTPS logins
  42. 42. Hands-on ● Run security report ● Enable force logins ● Show secure logins setting ● Show kpass/last pass password manager ● Go to Moodle Docs security FAQ
  43. 43. Email delivery  Make sure you have valid reverse DNS  Make sure you have permission to send email for primary administrator's email account  Use email debug to help diagnose problems.
  44. 44. Custom themes  Start with a basic theme  Copy existing theme to a new folder name  Prevents upgrades from wiping out  Test on a non-production site  Test with many browsers / screen sizes
  45. 45. Hands-on ● Change theme ● Open theme settings ● Add image ● Change colors
  46. 46. Questions? ● http://elearningconsultancy.com ● jonathan@elearningconsultancy.com ● Twitter: @moorejon ● Skype: moorejon07
  47. 47. What we do ● Expert advice and eLearning program review ● Evangelism and training ● Instructional design ● Custom development ● System tuning ● Performance assessment

×