Nagios Core serves as the basic event scheduler, event processor, and alert manager for elements that are monitored. It features several APIs that are used to extend its capabilities to perform additional tasks, is implemented as a daemon written in C for performance reasons, & is designed to run natively on Linux/*nix systems.
Architecture and Scope
Nagios Core has been designed with a focused, extensible architecture that is designed for flexibility and scalability. It provides several APIs to allow its feature-set to be easily extended through additional addons. This architecture has proved to be successful and has spawned the creation of thousands of addon projects that extend its core feature set.
The scope of Nagios Core is primarily focused the duties of check scheduling, check execution, check processing, event handling, and alerting. Performing checks, sending notifications, processing performance data, and many other tasks are generally out-of-scope for Nagios Core and are handled by other Nagios projects.
Nagios Core has historically and still does ship with a default CGI interface. The CGIs provide Nagios users with the basic functionality required to view and manage elements that are monitored by Nagios Core. The CGIs have become the standard Nagios Core interface and are often used as an API by many Nagios extensions. Many users deploy additional frontends to customize the look, feel, and functionality of their Nagios UI. Nagios V-Shell is a new frontend that is currently being developed as the official PHP frontend to Nagios Core.
There is a rich variety of addons that provide additional features that are out-of-scope for Nagios Core itself, including configuration frontends, performance graphing, auto-discovery, and distributed monitoring, among others. These features are implemented in different Nagios projects, which are developed independently and can be found at Nagios Exchange.