Nagios, as others have mentioned, is an open-source infrastructure for monitoring remote systems from a central server. Remote systems report "service" status via a simple message, and the central monitoring server either "actively" asks for that status via a direct connection or the remote system reports it "passively" e.g. over http. (The quoted words are Nagios terminology.) The central server is configured using a set of text files which define the remote hosts, services, schedule, etc.
This is a very brief description of what Nagios offers, however gives you an idea of the type of infrastructure to expect. Nagios' strength comes from the simplicity of the status message. A "service" is anything that reports a status in the form that Nagios can ingest. It can be written in any language, on any platform. Many extensions have been developed and are available from the Nagios library.
The commercial version is called Nagios XI, and it puts a nice front end on top of the configuration files, using a database to store the metadata and RRDTool-based graphing module to generate reports.
We've been using Nagios XI for about six months. There is definitely a learning curve, and the administrative GUI needs some work to handle large-scale installations, however we're happy with the cost-benefit.