 Sorry but I would just like to tell you how we set up anagios monitoring system at Strath-CLied to monitor our Moodle infrastructure and application. We have been running Moodle for 5 or 6 years now and with good uptime and it is really quite a stable system but we still have occasional problems when they're going to happen and what has happened so to do that we use this software Nagios we use a free open source version of it called core DIY Nagios has been around since 1999 so it's incredibly stable and mature and it looks like 1999 but that's another question. It enables monitoring of pretty much anything that you know you may want to to monitor in an IT system like network protocols, system resources, CPU, RAM, if you've got data sensors that have got things like probes or temperature sensors in them or anything it can monitor all that stuff so it's actually a really good system for for monitoring sort of the whole thing if you like and it does that by it runs on a server and monitors all the other servers and provides this kind of web front end for it which I'll show you later on. So the actual checks are done using plugins rather than being built into the software so there's a bit like Moodle there's about 50 core plugins that are actually shipped with the software they'll check all sorts of things and there's about 4,000 community created ones so it can check almost anything it's fantastic for that. So here's some examples just of the kind of thing that the plugins might return to you to tell you for example that your server's up and it's responding quickly or send me or isn't waiting to send any messages which is a problem we've had with our Moodle servers before or like your Apache services up. So some of these things like PING there's a a public interface but for things where there isn't a public interface where maybe a service is sitting behind a firewall or something like that we use this NADJOS remote plugin execution plugin essentially which just runs on the server to be monitored and securely passes the check data back to your NADJOS server so there's no need for security problems in your firewall or anything like that. So basically you just set up all the machines that you're monitoring be it servers or bits of IT hardware or whatever their hosts and you set up services which are things to be monitored within that host and NADJOS will give you these quite useful but not very pretty overview diagrams so the one on the top left is the very very high level it just shows you your system is kind of okay. The one on the bottom will show you each host and you know the status of it and the one at the top was every service the status of them individually. The reason it's really good for monitoring a Moodle service is because there are plugins for like all the kind of the bits that you would normally have in a Moodle set up like you know MySQL, Postgres and all that like Memcash D and the various different servers and it's also fairly easy to write your own plugins because it is just a shelf script to my colleague Michael I'm not sure if he's here wrote a plugin in a bit of an hour I think it was to to monitor end-to-end the Shibboleth login process using the B-hug testing framework actually and that that was like a really quick development but it was really useful so so I guess that's about infrastructure monitoring but we also wanted to monitor things within Moodle the application you know things like has the event cube become too big or has the cron job not run for long enough so what we did was we developed this plugin local Nagios which I think University of Kent also developed something similar but it allows it provides one single Nagios plugin check Moodle it's called and it will communicate with this plugin to do any check that you want it to do and pass the results back to Nagios. An example of where we've used this is like the events queue which we have a third party plugin that makes heavy use of that and it quite often gets blocked and it's a real nightmare to troubleshoot so we can now just monitor that and we say if the events queue gets beyond you know 100 events or something like let us know. Schedule tasks are another thing that are quite useful to monitor if you've got something that's like a really important schedule task and you expect it to run regularly you can get Nagios to let you know if it's maybe not run for an hour or something when you're expecting it to run every five minutes so instead of hard coding these checks into the plugin that we wrote we wrote a kind of a mini framework which allows any of the plugins we write to kind of expose anything as a service that can be monitored by by Nagios so you can then plug them straight into the application. Some successes we've had with this approach a couple of times we've been able to basically notice that shibboleth is down and get it fixed before anybody complained which is useful that's also an interesting one because we're monitoring somebody else's service it's not actually ours but we have to get it done. The events queue we've now got it so that we have a threshold set so if it gets beyond a certain level it'll warn us that you know that the events queue isn't working so we no longer have to notice that it's broken we can actually fix it really really quickly now so and what do you need to run Nagios basically you just need an old pc or an old server it's still kind of 1999 technology so it's all shell scripts and you don't need anything particularly major probably wouldn't run an apple too but the other thing you need is a bit of linux know how but actually probably not that much you just need to be able to write be able to write a shell script and that's really about it's got quite a high or a steep learning curve but it's also very very sort of simple at heart so that the theory of it is quite you know you always you're always well oriented because you know how it works so so that was a quick overview of how we use Nagios to monitor the application.