Nagios is a powerful monitoring system that enables organizations to identify and resolve IT infrastructure problems before they affect critical business processes.
Nagios watches hosts and services that you specify, alerting you when things go bad and when they get better. Some of its many features include monitoring of network services (SMTP, POP3, HTTP, NNTP, ICMP, etc.), monitoring of host resources (processor load, disk usage, etc.), and contact notifications when service or host problems occur and get resolved (via email, pager, or user-defined method).
Nagios is extremely customizable. Its mechanism for checking the status of hosts and services is to run standalone programs the communicate with the Nagios master via their standardoutput and return codes. It is therefore relatively easy to add new status checks to Nagios without much work beyond writing the standalone program and configuring Nagios to call it.