Can't go wrong with Monit. You can set threshholds, various tests, things to do for timeouts, failures, etc.
I love it. It's the first line of defense on a machine - but if the whole server itself is hosted (network dies, not pingable), you're severely more fucked than needing a local babysitter.