Nagios is a monitoring solution for hosts and network services although it will monitor almost anything you can think of. It is extensible in as much as it uses plugins (of which many are already available) to determine whether a host or a service is up or not. When invoked, the Nagios plugin returns a code (OK, WARNING, CRITICAL) as well as a short description back to the Nagios monitoring manager. For our remote mail servers, I wanted to ensure that we could use our corporate Nagios installation to do the monitoring of the distant hosts. Being behind firewalls which we don’t control, our only option is to use HTTPS to connect to the machines, which is what I’ll be using. Our central Nagios installation uses NRPE(Nagios Remote Program Execution) to invoke a check_xmlrpc plugin on a host in our DMZ(Demilitarized Zone), giving it the name of the target machine and the service to check for. That plugin then contacts an XML-RPC service via HTTPS on the distant host to perform the desired check and return the usual Nagios-like status such as OK, WARNING or CRITICAL to the plugin on our side of the world. And so the status goes back to the Nagios manager for further processing. The service on the distant host is a simple script built around XML-RPC for PHP. As soon as the first mini-server goes live, we’ll be monitoring disk capacities, the health of the LDAP server and of course the uptime of the system (I want to know if someone has power-cycled the system).