There is no single answer to this, and your solutions depend on your level of expertise, OS, architecture etc.
The most basic check is to (ideally remotely) regularly do an http request to a defined location and monitor its availability. Doing this can be trivially simple if you buy into "The Cloud". Services like Uptime Robot and Pingdom offer these services.
Getting more complex you can do DNS checks to ensure domain names are reachable, ensure SSL and domain expirys etc - really this depends on your point of difference.
Getting further into the weeds, if you are a real techy (and again, this can often be outsourced to the cloud), running something like Nagios can be used to monitor (and graph) arbitrary resources on your servers - so you can tell things like response times, disk usage, number of Apache processes, server load and so on.
Using graphs is particularly helpful when to tell trends and can often make it apparent when something is up. Also, looking at number of requests and metrics from Fail2Ban, Wordfence or whatever security systems you have can be useful, as can bandwidth utilization.