This is fairly simple. You can achieve this through the SSH2 module for PHP (have it SSH in and run 'uptime') or have a simple script on each server and grab them centrally. If it fails to connect, then you can mark the servers as being down.
AYKsolutions.com - High Bandwidth Specialists - 100TB/1Gbps/10Gbps Unmetered/CDN/DDOS Protected Over 20 Global Locations - Asia, Mexico, Brazil, Australia, US, CA, EU - Bare Metal and Virtual Cloud. All Managed. View our current Specials. We are Professional. Painless. Polite.
I have been coding a php script that is using fsockopen and can be found here mrvinux.com/mvstatus i'll add a download link later on,nothing to install just upload and your good to go.
It shows web server load averages and uptime that's runing linux mvstatus shows if Cpanel,FTP,Mysql,Apache,Email(POP3),Email(IMAP),Webmail is up or down you can add more ports to.