I agree that his threat model would have to be analized to really give a good answer, but I disagree on the post #2 idea. What he proposed not only requires another machine, but also doesn't actually tell us anything. Just because a specific document isn't changed, doesn't mean the machine or website is not compromised. It doesn't tell us if data was stolen from his db, etc. I've also actually seen interesting wordpress hacks that only reacted to specific geo locations - so what was happening was the admin was accessing his site and all looked fine but then some users were access and getting redirected. Nowadays it's mostly just bots scanning for common exploits and using them... you don't even get the god damned courtesy of having a human being hack you anymore :/
Speaking of the above - it also might be worthwhile to simply block geos in which you don't do business. I for instance found a ton of bot scans on some of my sites coming from the near east and africa - places I get no customers from.
If we're talking strictly about uptime monitoring, getting informed if your SSL
certificate expires etc then freshping or pingdom are great for that and cheap/free. You can also set them up to require a specific output for an http request. Sure, you can roll your own with a cron but that requires coding which if he can't do himself will cost him more then probably several years of either of those services, especially if he wants to implement an SMS gateway to get notifications that way. I personally have email notifications on my phone turned off for instance because it was turning my phone into a leash.