The Perl Advent Calendar needs more articles for 2022. Submit your idea today!


Monitoring::Plugin::Config - read nagios plugin .ini style config files


    # Read given nagios plugin config file
    $Config = Monitoring::Plugin::Config->read( '/etc/nagios/plugins.ini' );

    # Search for and read default nagios plugin config file
    $Config = Monitoring::Plugin::Config->read();

    # Access sections and properties (returns scalars or arrayrefs)
    $rootproperty =  $Config->{_}->{rootproperty};
    $one = $Config->{section}->{one};
    $Foo = $Config->{section}->{Foo};


Monitoring::Plugin::Config is a subclass of the excellent Config::Tiny, with the following changes:

  • Repeated keys are allowed within sections, returning lists instead of scalars

  • Write functionality has been removed i.e. access is read only

  • Monitoring::Plugin::Config searches for a default nagios plugins file if no explicit filename is given to read(). The current standard locations checked are:

    /usr/local/etc/nagios /etc/opt/nagios/plugins.ini

    To use a custom location, set a NAGIOS_CONFIG_PATH environment variable to the set of directories that should be checked. The first plugins.ini or nagios-plugins.ini file found will be used.


Config::Tiny, Monitoring::Plugin


This code is maintained by the Monitoring Plugin Development Team: see


Copyright (C) 2014 by Monitoring Plugin Team Copyright (C) 2006-2014 by Nagios Plugin Development Team

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.