際際滷

際際滷Share a Scribd company logo
Best Practices in Moodle
Administration
Jonathan Moore
Founder
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
Format
 Variety of tips / tricks
 Learn the possibilities
 Some hands on
 Ask questions!
 Share your tips
Getting to Know You
 How many new admins?
 How many running Moodle 2.5? Moodle
2.6? Moodle 2.7?
 Anyone running Moodle older than 2.5?
 Any Moodle 1.9 sites?
 Are you a 'geeky admin' or instructional
admin?
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?
Outages
 80% of failures are bad changes
 80% of downtime finding the bad change
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?
Hands-on
 Forming a Change Advisory Board
 Who?
 How often?
 What are we controlling?
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
Hands-on
 Local Moodle install
Admin Know Thy Server
 Monitoring: Cacti
 SNMP monitoring
 Round robin log storage
 Alerts and Notifications: Nagios
 SNMP alert system
 Have your servers page or text you!

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
Performance Tips
 PHP Accelerator  APC / OPCache
 MySQL 
 Buffers and Query Caching
 Use InnoDB
 Use MariaDB build
 Sessions
 Moodle source code location
Performance Tweaking
 Memory Budget
 Concurrency
 5 Things Making Your Site Slow
 Testing
Hands-on
 Visit phpinfo
 Site Administration  Server 
phpInfo
 Confirm PHP version
 Confirm if PHP Accelerator
More Tips
 Batch cron.php runs for multiple Moodles
 Check state of indexes and bigints
 Perform database maintenance
Performance Testing Tools
 Admins
 jMeter
 Apache ab utility
 Devs
 Behat / Sellenium
 XProf
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
User Management
 Plan ahead Moodle sites grow fast!
 Measure twice cut once
 Automate

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!

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
Hands-on
 Bulk upload users with a flat file
 External DB enrollmet setup
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
Hands-on
 Duplicate a role and edit

Course backups not a full backup!

Disable automated course backups?

Yesterday instance

Backup Elements

Moodle code

Moodledata

Database
Backups Management
Hands-on
 Make a Moodle backup
 Copy Moodle source dir
 Copy Moodle data dir
 'dump' database to sql file

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
Hands-on
 Enable debugging
 Site Admin  Development 
Debugging
 Increase debugging level
 Enable display
 Enable performance info
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
Hands-on
 Visit issue tracker
 Http://tracker.moodle.org
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
Common Plug-in Types
 Blocks
 Activity modules
 Filters
 Auth
 Enrollment
 Local
 Themes
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
Hands-on
 Install the certificate module
 Install Adminer
MyODBC
 Windows client software
 Connect MySQL to desktop applications
 Make ad hoc reports in MS Access, Excel,
Open Office, etc.
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
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
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
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
Hands-on
 Run security report
 Enable force logins
 Show secure logins setting
 Show kpass/last pass password manager
 Go to Moodle Docs security FAQ
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.
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
Hands-on
 Change theme
 Open theme settings
 Add image
 Change colors
Questions?
 http://elearningconsultancy.com
 jonathan@elearningconsultancy.com
 Twitter: @moorejon
 Skype: moorejon07
What we do
 Expert advice and eLearning program review
 Evangelism and training
 Instructional design
 Custom development
 System tuning
 Performance assessment

More Related Content

Best practices in Moodle administration Monatana Moot 2014

  • 1. Best Practices in Moodle Administration Jonathan Moore Founder
  • 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. Format Variety of tips / tricks Learn the possibilities Some hands on Ask questions! Share your tips
  • 4. Getting to Know You How many new admins? How many running Moodle 2.5? Moodle 2.6? Moodle 2.7? Anyone running Moodle older than 2.5? Any Moodle 1.9 sites? Are you a 'geeky admin' or instructional admin?
  • 5. 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?
  • 6. Outages 80% of failures are bad changes 80% of downtime finding the bad change
  • 7. 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?
  • 8. Hands-on Forming a Change Advisory Board Who? How often? What are we controlling?
  • 9. 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
  • 11. Admin Know Thy Server Monitoring: Cacti SNMP monitoring Round robin log storage Alerts and Notifications: Nagios SNMP alert system Have your servers page or text you!
  • 12. 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
  • 13. Performance Tips PHP Accelerator APC / OPCache MySQL Buffers and Query Caching Use InnoDB Use MariaDB build Sessions Moodle source code location
  • 14. Performance Tweaking Memory Budget Concurrency 5 Things Making Your Site Slow Testing
  • 15. Hands-on Visit phpinfo Site Administration Server phpInfo Confirm PHP version Confirm if PHP Accelerator
  • 16. More Tips Batch cron.php runs for multiple Moodles Check state of indexes and bigints Perform database maintenance
  • 17. Performance Testing Tools Admins jMeter Apache ab utility Devs Behat / Sellenium XProf
  • 18. 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
  • 19. User Management Plan ahead Moodle sites grow fast! Measure twice cut once Automate
  • 20. 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!
  • 21. 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
  • 22. Hands-on Bulk upload users with a flat file External DB enrollmet setup
  • 23. 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
  • 24. Hands-on Duplicate a role and edit
  • 25. Course backups not a full backup! Disable automated course backups? Yesterday instance Backup Elements Moodle code Moodledata Database Backups Management
  • 26. Hands-on Make a Moodle backup Copy Moodle source dir Copy Moodle data dir 'dump' database to sql file
  • 27. 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
  • 28. Hands-on Enable debugging Site Admin Development Debugging Increase debugging level Enable display Enable performance info
  • 29. 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
  • 30. Hands-on Visit issue tracker Http://tracker.moodle.org
  • 31. 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
  • 32. Common Plug-in Types Blocks Activity modules Filters Auth Enrollment Local Themes
  • 33. 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
  • 34. Hands-on Install the certificate module Install Adminer
  • 35. MyODBC Windows client software Connect MySQL to desktop applications Make ad hoc reports in MS Access, Excel, Open Office, etc.
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. Hands-on Run security report Enable force logins Show secure logins setting Show kpass/last pass password manager Go to Moodle Docs security FAQ
  • 41. 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.
  • 42. 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
  • 43. Hands-on Change theme Open theme settings Add image Change colors
  • 45. What we do Expert advice and eLearning program review Evangelism and training Instructional design Custom development System tuning Performance assessment