Icinga / Nagios Plugins

GraphDash Module for Icinga 2

This Icingaweb2 module adds a new host Graph Dashboard to the Icinga Web GUI that puts together the most important performance graphs on a single page. This allows for quick visual health checks of a host without the need to click through numerous pnp graphs. The selection and order of graphs to be shown are freely configurable via Web GUI. Each class of devices (servers, routers, ...) can have a it's own set of graphs that are inherited and may be overriden at any level. Released under MIT Open Source License.

Installation: Create a subdirectory ../icingaweb2/modules/graphdash and extract the contents there. Then enable GraphDash in the module configuration of the Icinga GUI.

1.12.2017: After upgrading to Icinga 2.8 there have been reports of GraphDash failing with not showing any graphs. This can be resolved permanently by upgrading to the latest GIT Master versions of Icingaweb2 and Director and re-reploying all objects once.

Download GEOTEK GraphDash V.1.0
2017-04-26: Inital Release

Download GEOTEK GraphDash_V.1.0.1 
2020-06-25: Bugfix Release that makes it work with Icinga Web V.2.8.0 and PHP 7.4


PNP Default Template for Icinga 2

This is an enhanced Default Template for pnp4nagios and IcingaWeb2 that completely replaces the rather basic default template that comes with pnp4nagios. This template was made because because I was fed up from insane measurement units such as 10mGB or 10Mms, the unappealing, oldfashioned and inconsistent graph colors and the amount of time it took to apply and manage changes across numerous templates in order to keep them consistent. While it seems impossible to solve all rrdgraphe issues completely, it is believed to be an improvement and should work sufficiently with most Nagios Check Commands out of the box.


  • Modern looking graphs that matches the Icingaweb2 color scheme
  • Global graph attributes can be very easily changed
  • Avoids display of weird Units such as 2222.5mGB or 0.10kms (well, at least mostly)
  • Makes all graps show consistent measurement units so that througput is always shown in GB/s for example, no matter if scripts exports RRD data in KB/s, B/s or any other UOM
  • Allow graphs to be shown in such a way, that it is immediately apparent from the overwiew window if something is wrong or not (hostalive4 for example)
  • Correct or add UOMs (Units of measurement, such as MB) for checks with broken or missing UOM in performance data
  • Change the name of unclear graph data to something more comprehensible, possibly in your native language
  • Change behaviour of specific graphs without the need to create and manage multiple templates
  • All changes for specific graphs are easily managed in one place (this file)
  • Modifications may be done based either on the Icinga2 Service Name or on the Check Command Name. In contrast, the pnpnagios
  • template system allows to use only the Check Command Name
  • Easily reorder graphs, so that the most important graph is shown first and displayed in the Icingaweb2 overview page
  • Easily suppress graphs that need not be shown
  • Allows to add comments to a graph
  • Combine multiple data points into graphs, freely override graph style (line / area / gradient) and color

Download GEOTEK Default Template V.1.1.1
Download GEOTEK Default Template V.1.2


Perl script for Icinga / Nagios to monitor temperature, disk and SMART status of all hard disks in QNAP NAS boxes via SNMP. Disk temperatures are returned as performance data. Should work on most (if not any) QNAP boxes that support SNMP. Based on Michael Geigers check_qnap_hdd with some bugfixes and improvements:

  • Corrected Perl Dependencies
  • Allows to specify SNMP community via -C parameter
  • Improved SMART Notification: SMART Status "Normal" is misleading as it indicates a predictive failure warning. The script returns a "Warning" condition instead of "Critical" in this case
  • Vertical alignment of visual HDD status looks nicer
  • Add support for newer Qnap models - e.g. TS-879 Pro
  • Don't get confused by emty drive slots (previous version returned UNKNOWN result)

Download check_qnap_hdd V.1.2


Perl script for Icinga / Nagios to monitor logical volume status on QNAP NAS boxes via SNMP. Returns used space of all volumes as performance data and allows setting usage percentage limits. Based on Michael Geigers check_qnap_volumes with changed behavior, bug fixes and improvements:

  • Corrected Perl Dependencies
  • Allows to specify SNMP community via -C parameter
  • Changed behavior: Performance data now shows the used space versus total space which is more intuitive
  • Changed behavior: Changed behavior: Warning and critical levels are now referring to used percentage instead of free percentage
  • Renamed to check_qnap_vol due to changed behavior
  • Removed "QNAP" from output. Shortens line and possibly allows to use with other NAS makes (if they use the NAS MIB)
  • Made output more informative like so:
    "Volumes OK - [Mirror Disk Volume: Drive 1 2]: 331GB (84%) of 393GB used, 62GB free"
  • Putting each volume on a new line makes output more readable with multiple volumes
  • Handle zero volume sizes correctly (caused div by zero error before) and give hint to possible assignment as iSCSI target

Download check_qnap_vol V.1.3


Icinga / Nagios check Plugin to test FTP speed by writing and reading a test file and measuring the time taken. Performance Data is supplied for Read and Write Speed in MBytes/s. Warning and Critical limits can be set for Write Speed. Test file size can be specified in order to adjust the tradeoff between network load and test accuracy. Instead of reading the written test file immediately after writing (which would give inaccurate results due to disk cashing) we are always reading the file written during the previous test interval. This is not intended as an accurate speed test but allows to judge performance variations over time and set performance limits for backup space repositories that must have a minimum throughput in order to allow backup jobs to finish in a given time window.


check_ftp_speed.php -H <host> -u <username> -p <password> -f <test file path> -s <test file size (kBytes)> -w <warning (Write MBytes/s)> -c <critical (Write MBytes/s)>

Download: check_ftp_speed V.1.0

wmic for Debian 10

When checking Windows status via plugins like WMI Plus the wmic library is needed, but while this WMI Client is still available in the Debian repository it seems to be abandoned and doesn't work any more with Windows Build 2004 and later. As a quick and dirty workaround here is a compiled Debian 10 binary that continues to work with current (2021) builds of Windows 10, Server 2012, Server 2016 and Server 2019.

Download: wmic for Debian 10 x64