Best Practices In Moodle Administration

  • Upload
    moorejon

  • View
    12.192

  • Download
    0

Embed Size (px)

Citation preview

Best Practices in Moodle Administration

Jonathan MooreFounder

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 were in this session last year?

Interest in new features in 2.8 / 2.9?

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 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

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

Moodle.orgDownloads

Current builds

Choose Mac / PC

Admin Know Thy Server

Monitoring: Cacti / ZennossSNMP monitoring

Round robin log storage

Alerts and Notifications: NagiosSNMP 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 issueApache 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

AdminsjMeter

Apache ab utility

DevsBehat / 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

Hands-on

Download jMeter

Show ab

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!

Enrollment Management

Enrollments vs course role assignments

Enrollments using cohorts

Expand?

Hands-on

Enroll a cohort into a course

Assign user role in course without enrollment

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 atAdmin: 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 ElementsMoodle code

Moodledata

Database

Backups Management

Hands-on

Make a Moodle backupCopy 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 searchGoogle

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 debugGeneral 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

[email protected]

Twitter: @moorejon

Skype: moorejon07

What we do

Expert advice and eLearning program review

Evangelism and training

Instructional design

Custom development

System tuning

Performance assessment