Addons for Icinga: Visualisation & Maps

There is a wealth of information that can be gathered by Icinga’s monitoring core. The question is, how best to visualise it? To complement the Icinga Classic and Icinga Web UIs, there are plenty of great addons to map your network with real time status information, connect the dots in monitoring business processes and even see the temperature distribution in a data center. Below are just a couple examples – the possibilities are endless.
 
NagVisNagVis is an Icinga compatible addon that displays colour-coded, monitoring information in myriad ways – on network maps, server-rack photos, maps of data centers and geographical regions. As it also supports the Business Process Addons for Nagios and Icinga, it too can offer visuals that connect the chain of business processes and their consequent availability.
Requisites: Icinga Core with IDOUtils (with MySQL database and MKLivestatus), web server, PHP, Graphvis (for Automap feature)
Features: Scalable network maps (Automap), network overlays on Open Street Maps (Geomap), traffic flow visualisation (Weathermap), status overlays on images, mouse-over host/service details, optional performance data graphing, web configuration UI, installer tool.
Version compatibility: All NagVis versions (v1.7.4 at time of writing) with all Icinga versions
More info & documentation: www.nagvis.org
 
BusinessProcessAddonsAs mentioned above, the Business Process Addons are two tools that help visualise the relationships between monitored objects that form business processes. The ‘Business Process View’ addon displays the aggregate status of a business process, based on the statuses of component hosts/service, accounting for dependencies and priority levels. The ‘Business Impact’ addon simulates the failure of one or more components to analyse the consequences for an overall business process. In Icinga Web, the ‘Business Process View’ is currently supported as a native cronk, boasting extra features.
Requisites: Icinga Core with IDOUtils, web server, Perl (with CGI, DBI and JSON::XS modules)
Features: ‘And / or’ process configurations, priorities, processes within processes configuration, component hosts and services drill down views, and comments. The Business Process cronk for Icinga Web also features drag n drop process configuration editor, event history sidebar, and dynamic tree views.
Version compatibility: All ‘Business Process Addons’ versions (v0.9.6 at time of writing) with all Icinga Core versions. The Business Process Icinga cronk is packaged with Icinga-Web v1.0.3 and newer.
More info & demo system: http://bp-addon.monitoringexchange.org
 
NagMapA simple little standalone addon, NagMap displays colour-coded, status information as pins and network links on Google Maps.
Requisites: Web server, PHP
Features: Network overlays on Google Maps, call outs with links to Icinga Classic or Web, MRTG and Smokeping pages for detailed status information.
Version compatibility: All NagMap versions (v 1.0 at time of writing) with all Icinga versions
More info & documentation: https://github.com/hecko/nagmap/
 
HeatmapForIcingaHeatmap is a tool that simulates and displays the thermal profile of a server room or data center as a colour-coded map. Using Icinga monitoring information, rack, sensor positions and airflow definitions, it generates a thermal model that simulates the distribution of heat to detect temperature problems early. It is a cronk built specifically for Icinga Web.
Requisites: Icinga Web (and IDOUtils), MySQL database, PHP (with CLI and gd, mysql libraries), optional ImageMagick image manipulation library
Features: Drag ‘n’ drop editor for mapping server rooms, heat flow simulation, dashboard, custom colour schemes and map generation scheduling.
Version compatibility: All Heatmap versions with all Icinga Web versions
More info & documentation: https://www.netways.org/projects/heatmap-for-icinga

Addons for Icinga: Performance Monitoring Tools

Though Icinga is great for monitoring the availability and status of hosts and services, it’s often good to reflect the monitored performance and plan ahead. Being able to view performance data in the form of graphs allows trends and potential problems to be detected early. The following tools are just a handful of  popular open source graphing addons compatible with Icinga.
 
Providing data collection and display, PNP4Nagios stores plugin output in a Round Robin database via RRDtool and features a user interface based on Kohanna and JQuery. Once set up it is very user friendly. To reduce storage load, it consolidates old data by averaging values. However this results in lower resolution graphs for time intervals further in the past.
Requisites: Perl, RRD tool and PHP.
Features: Template-based graphs; view all services of a host; define graph objects and time intervals freely; zooming; mouse-over thumbnail graphs in Icinga Classic & Icinga Web; CSV, JSON, XML export.
Version compatibility: All PNP4Nagios versions (v0.6 at time of writing) with all Icinga versions, Classic and Web.
More info & documentation: www.pnp4nagios.org
 
Graphite stores any type of time-series data and generates real-time graphs out of them, making it ideal for performance trending. Carbon, a Twisted daemon receives data and stores it in a Whisper database. Similar to RRDtool, older data loses resolution quality. On the flip side it offers high resolution, per-second precision for new data and allows for irregular data intervals. Finally graphs are generated via Cairo on the fly and displayed in a Django based web application. Data collection is achieved through third party tools.
Requisites: Python and Pycairo; Django and django-tagging; Twisted and zope-interface; fontconfig and a font package; a WSGI server and web server.
Features: Scalable system, generate graphs on demand – metrics need not be preconfigured; define graph objects and time intervals freely; URL API with JSON, CSV and PNG output.
Version compatibility: All Graphite (v0.9.10 at time of writing) with all Icinga versions. However a 3rd party tool to transport Icinga performance data to Graphite is necessary, e.g. via script or forwarder such as Metricinga and icinga-to-graphite. A tool to assist Graphite integration into PNP4Nagios is also available, though unstable.
More info & documentation: http://graphite.wikidot.com
 
Unlike most graphing tools, inGraph stores performance data in a relational database, supporting MySQL, PostgreSQL and SQLite. It comes with a check_ingraph plugin to retrieve relevant data for graphs and displays them with the help of NodeJS. Compared to the RRD based tools, inGraph offers detailed graphs regardless of the age of the performance data and interval definition after initiation of the monitoring process too.
Requisites: Curl and xmlrpc enabled PHP, Apache2, Python with python-devel and python-setuptools, SQLAlchemy, MySQL or PostgreSQL python drivers.
Features: Comments; template-based graphs; view all services of a host; define graph objects and time intervals freely; zooming; mouse-over thumbnail graphs in Icinga Classic & Icinga Web; CSV and XML export.
Version compatibility: All versions of InGraph (v1.0.1 at time of writing) and Icinga Classic; Icinga Web 1.5.0 or newer.
More info & documentation: www.netways.org/projects/ingraph
 
NagiosGraph offers self-contained data collection and display. Performance data is collected from plugin output and stored as RRD files. Graphs are then generated and managed mostly through CGI scripts via the RRDtool perl interface, RRDs.
Requisites: RRDtool recommended; CGI and RRDs perl modules; GD perl module recommended.
Features: Parameter-based graph generation; view all services of a host and vice versa; define graph objects and time intervals freely; zooming within graph; mouse-over thumbnail graphs in Icinga Classic & Icinga Web; CSV, XML export.
Version compatibility: All NagiosGraph (v1.4.4 at time of writing) with all Icinga versions.
More info & documentation: http://nagiosgraph.sourceforge.net
 

Addons for Icinga: Configuration Interfaces & Tools

Every now and again, admins can make their life easier. Below are just a couple configuration helpers that we know to work well with Icinga. All are open source and free to download!
 
This PHP based tool saves data to MySQL database from which it exports the finished configuration files via local file or remote access. NagiosQL offers a structured interface with a side menu of configuration objects grouped by supervision, alerting, commands, specialties and other tools.
Requisites: Web server, a PEAR module, MySQL database, PHP and a few extensions.
NagiosQL also comes with installation assistant to check for missing packages.
Features: Host and service templates, cloning, auto backup of configuration files, consistency checks, syntax verification, user group view restrictions, configuration importer, translations in various languages, support for large and distributed environments… and more.
Version compatibility: All NagiosQL versions (latest v3.1.1) with all Icinga versions.
More info & demo system: www.nagiosql.org
 
Similarly, NConf is based on PHP and saves data into a MySQL database. It was designed with large-scale distributed environments in mind, and presents configuration objects in a menu broken down into basic, additional, server and administration groups.
Requisites: Apache web server, PHP, MySQL and Perl.
Just to be sure, NConf even comes with a web-based pre-installation checker.
Features: Host and service templates, cloning, multi-modification, host dependency viewer (define and view parent-child relationships), multiple authentication modes, CSV file importer, configuration importer…. and more.
Version compatibility: All NConf versions (latest v1.2.6) with all Icinga versions.
More info & demo system: www.nconf.org
 
 
LConf stores configuration objects on a LDAP server and exports text config files that run independently when in operation. It uses any LDAP browser as an interface, which is then structured by the user. So configuration objects can be organised into a tree view by host or application groups, location or instances for example..
Requisites: OpenLDAP server, Perl with LDAP libraries, and LDAP utils for corresponding operating system.
A small shell script installer is included to help with installation and distribute LConf scripts to the desired directory.
Features: Drag’n’drop configuration (if used with LDAP Admin browser), search/replace function, host and service templates, host and service dependencies, inheritance, custom variables, configuration import script, support for large distributed environments… and more.
Version compatibility: All LConf versions (latest v1.1.1) with all Icinga versions.
This addon also includes an ‘LConf for Icinga’ sub-project which offers a special module for integration into the new interface, Icinga Web 1.3+.
More info: www.netways.org/projects/lconf
 

[NOTE (added 21.10.13): The Icingen project is no longer active and links may be outdated.]
A relatively new config tool, Icingen is a bash script configuration generator built just for Icinga. It applies existing Icinga service templates to hosts and host groups.
Requisites: SNMP plugins, Catdoc
Features: host and service templates, passive clusters, supports distributed environments.
Version compatibility: All Icingen versions (latest v0.2.1) with all Icinga versions.
More info: http://icingen.opendoc.net 
English language docs are available at http://opendoc.net/icingen/dev/README.txt
 
If you have a favourite configuration interface or tool for Icinga we haven’t covered, please let us know in the comments below.