I use and recommend NodePing.
One of the key responsibilities in running a web host (or really, systems administration in general) is knowing when something goes wrong. You want to find out before customers do. As a customer, I’d much rather have a problem, check the status page, and find someone is working on it than be the first to open a ticket.
Two kinds of monitoring are needed:

  • Internal – is MySQL up? Aee we running low on disk space? Is some process chewing up all CPU?
  • External – is the server up? You won’t get an alert from your internal monitor if the server is down. Some services are better monitored from the outside, like HTTP. If apache is up but I’ve borked the firewall rules, then what really matters is that visitors can’t see web pages.

For internal monitoring, I’m using Zabbix. There are certainly others – Nagios is famous and there’s Cacti, Observium, etc.

For external monitoring, I use NodePing. They have all the features that the “big guys” (like Pingdom) have, but at a much lower cost. The interface is easy to use and alerts are easy to setup. I think you could get external monitoring setup in about 15 minutes using their service, and that includes the time to register.

You could roll your own monitoring but having professionals do it is a nice backstop. NodePing is a third party, so while your monitoring system could be down, you have the additional protection of “another set of eyes”.

I think third party external monitoring is really critical, so then it’s just a choice of different providers. NodePing does a great job at a good price.