I have been using Pingdom to monitor my server. Pingdom only support monitoring one server for the free account, and the interval between to checks is 30 min, which is too long for my need (also for everyone I believe). And you need to pay over $40 a month to get the public status page feature.
As I got more and more VPSes and Dedicated servers, I starts to look for a better service to monitor all of them. After trying a few other services, I decided to go with Uptime Robot which provide up to 50 monitors and 5 min intervals with their free plan, and 1 min intervals for paid plan (only $4.5 a month). You can monitor via webpage/keyword, ping and custom port.
They don’t provide status page either, but they have very nice APIs – I
will write wrote another article on this. After testing it for months on 15 servers, I am completely happy with it.