6

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->checkHTTP('www.myweb.com');
$this->checkHTTPS('www.myweb.com');
$this->checkSOAP('https://www.myweb.com/ws.php', array('function'=>'getdate', 'param'=>array(...));
$this->checkIP(127.254.25.5, 'www.myweb.com');

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

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

Regards
Cédric

Pierre.Vriens
  • 1,159
  • 34
  • 15
  • 19
Cédric Girard
  • 417
  • 2
  • 12
  • 25

3 Answers3

9

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.

Tom O'Connor
  • 27,480
  • 10
  • 73
  • 148
  • 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 06 '10 at 12:20
  • 1
    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. http://exchange.nagios.org/directory/Plugins/ for example. – Tom O'Connor Jul 06 '10 at 12:50
  • 1
    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. http://www.nconf.org/dokuwiki/doku.php – Tyler K Jul 06 '10 at 20:45
  • @Tyler I like the look of that. – Tom O'Connor Jul 07 '10 at 07:13
3

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.

Evan Broder
  • 821
  • 5
  • 5
1

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.

Ivan Chuchman
  • 320
  • 1
  • 3
  • Munin is better for graphing continuous datapoints than notifying critical service failures. Nagios does this extremely well. – Tom O'Connor Jul 06 '10 at 12:48