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