Architecture

Icinga consists of 3 components which work in tandem: Core, API and Web. Together they share and interact through a common database, the IDODB (Icinga Data Out Database).

Icinga Core manages monitoring tasks, receiving check results from various plugins. It then communicates these results to the IDODB through the IDOMOD interface and IDO2DB service daemon over SSL encrypted TCP sockets. Though both come packaged (previously known as IDOUtils) with the Core; they are single standing components which can be separated to distribute the data and processes across multiple servers. See below distributed setup example.

Icinga API then fetches information such as check results from the core, through the IDODB. Thanks to its database extraction layer with libdbi and ocilib, Icinga can support the most popular relational database management systems. PHP based, the Icinga API is free from complex data schemas, and has no dependencies on other libraries or frameworks. It also supports various interfaces, from database PHP-PDO output to pipe and SSH input.

Data collected from the IDODB by the Icinga API is then presented in the Icinga Web or any other portal interface addon. Writing addons and plugins for Icinga is made much easier through this structure as the API acts as an interpreter for the extensions, saving a lot of coding stress.

Icinga Web is in essence an online portal to view Icinga monitoring results and send commands to Icinga core. Here host and service status, history, notifications and status maps are available to keep a check on the health of your network in real-time. A graphing addon such as PNP or GrapherV2 can be integrated to Icinga Web to generate performance charts for reporting. As an Ajax driven web interface, it is flexible and customizable through dragging and dropping screen components we call cronks. For more information see Icinga Web.

  • Share/Bookmark