Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am a developper, but since I know Unix and use Linux at home, I have to handle ten webservers and hundred of websites, DNS adress, webservices, well, too many bits of informations to check.

We are moving from one IP class to another one, and it is time to make a map of all importants services. But how can I handle all these informations and check for not working ones?

I thinks units tests could be a solution, like this (in pseudo php code)

$this->checkSOAP('', array('function'=>'getdate', 'param'=>array(...));
$this->checkIP(, '');

A checkHTTP() call could check the HTTP code (200, 404, ...), the time to answer, ...

Does this already exists? What do you thinks about this?


share|improve this question
up vote 9 down vote accepted

I think I'd probably start by looking at Nagios, or Zabbix (as you seem to like PHP). If you're monitoring any number of servers, then you really should have some kind of monitoring system in place.

Pingdom is a good external checking service, but isn't ideal for checking services that you don't want to expose to the public internet.

share|improve this answer
Can I monitor web/ssh/ftp/sftp/svn over https access with Nagios/Zabbix, and check if all run after a big change like DNS move? I will try both to learn, thanks! – Cédric Girard Jul 6 '10 at 12:20
With Nagios, you set up checks which then monitor the services you're interested in. There's a massive community-driven effort to share pre-written checks. for example. – Tom O'Connor Jul 6 '10 at 12:50
If you want to ease yourself into Nagios, I recommend using NCONF as a frontend. It is well developed and makes it easy to use Nagios. – Tyler K Jul 6 '10 at 20:45
@Tyler I like the look of that. – Tom O'Connor Jul 7 '10 at 7:13

Cucumber is designed for "behavior driven development". You build a language to describe some behavior, and then you can verify that behavior. I'm not a huge fan of the declaration style it uses, but it can certainly be used to build something like unit tests for servers.

share|improve this answer
+1 Interesting way to look at the problem – Tom O'Connor Jul 6 '10 at 12:47

You can either use Munin. This software maby not so powerful as Nagios and etc. but it's VERY flexible and you can easy fit it's node-part to gather any info you need.

share|improve this answer
Munin is better for graphing continuous datapoints than notifying critical service failures. Nagios does this extremely well. – Tom O'Connor Jul 6 '10 at 12:48

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.