Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Nagios::Object::ConfigUser Contributed Perl DocumentaNagios::Object::Config(3)

       Nagios::Object::Config -	Perl objects to	represent Nagios configuration

       This is a module	for parsing and	processing Nagios object configuration
       files into perl objects.

	   Create a new	configuration object.  If Version is not specified,
	   the already weak validation will be weakened	further	to allow
	   mixing of Nagios 1.0	and 2.0	configurations.	 For now, the minor
	   numbers of Version are ignored.  Do not specify any letters as in

	   To enable regular expression	matching, use either the
	   "regexp_matching" or	"true_regexp_matching" arguments to new().
	   See enable_regexp_matching()	and enable_true_regexp_matching()

	    my $objects	= Nagios::Object::Config->new();
	    my $objects	= Nagios::Object::Config->new( Version => 1.2 );

	    my $objects	= Nagios::Object::Config->new(
			       Version => 2.0,
			       regexp_matching => 1,
			       true_regexp_matching => 2

	   Parse a nagios object configuration file into memory.  Although
	   Nagios::Objects will	be created, they are not really	usable until
	   the register() method is called.

	    $parser->parse( "myfile.cfg" );

	   Search through the list of objects' names and return	the first
	   match.  The second argument is optional.  Always using it can
	   considerably	reduce the size	of the list to be searched, so it is

	    my $object = $parser->find_object( "localhost" );
	    my $object = $parser->find_object( "oracle", "Nagios::Service" );

	   Search through the list of objects' names and return	all the
	   matches.  The second	argument is required.

	    my @object_list = $parser->find_objects( "load", "Nagios::Service" );

	   Search through the list of objects' names and return	a list of
	   matches.  The first argument	will be	evaluated as a regular
	   expression.	 The second argument is	required and specifies what
	   kind	of object to search for.

	   The regular expressions are created by translating the "*" to ".*?"
	   and "?"  to ".".   For now (v0.9), this code	completely ignores
	   Nagios's use_regexp_matching	and use_true_regexp_matching and does
	   full	RE matching all	the time.

	    my @objects	= $parser->find_objects_by_regex( "switch_*", "Nagios::Host" );
	    my @objects	= $parser->find_objects_by_regex( "server0?", "Nagios::Host" );

	   Obtain a reference to all objects of	the specified Nagios object

	   Usage: $objects = all_objects_for_type($object_type)

	       $object_type - A	specific Nagios	object type, i.e.

	       A reference to an array of references to	all objects of the
	       type associated with this configuration.	 Objects of this type
	       to the configuration following the call to this method _will_
	       accessible through this reference after the fact.

	       Note that the array reference by	the return value may be	empty.


	       my $contacts = $config->all_objects_for_type("Nagios::Contact");
	       if (scalar(@$contacts) == 0) {
		   print "No contacts have yet been defined\n";
	       } else {
		   foreach $contact (@$contacts) {

	   Returns an arrayref with all	objects	parsed from the	config in it.

	    my $everything = $config->all_objects;

	   Search through the objects parsed thus far, looking for a
	   particular textual name.  When found, return	that object.  If
	   called with two arguments, it will search through all objects
	   currently loaded until a match is found.  A third argument may
	   specify the type of object to search	for, which may speed up	the
	   search considerably.

	    my $object = $parser->find_attribute( "command_name", "check_host_alive" );
	    my $object = $parser->find_attribute( "command_name", "check_host_alive", 'Nagios::Host' );

	   Resolve the template	for the	specified object.  Templates will not
	   work	until this has been done.

	    $parser->resolve( $object );

	   Examine all attributes of an	object and link	all of it's references
	   to other Nagios objects to their respective perl objects.  If this
	   isn't called, some methods will return the textual name instead of
	   a perl object.

	    $parser->register( $host_object );
	    my $timeperiod_object = $host_object->notification_period;

	   Resolve all objects currently loaded	into memory.  This can be
	   called any number of	times without corruption.


	   Same	deal as	resolve_objects(), but as you'd	guess, it registers
	   all objects currently loaded	into memory.


	   This	correlates to the "use_regexp_matching"	option in nagios.cfg.
	   When	this option is enabled,	Nagios::Object::Config will translate
	   "*" to ".*?"	and "?"	to "." and evaluate the	result as a perl RE,
	   anchored at both ends for any value that can	point to multiple
	   other objects (^ and	$ are added to either end).


	   This	correlates to the "use_true_regexp_matching" option in
	   nagios.cfg.	 This is very similar to the enable_regexp_matching()
	   option, but matches more data and allows more powerful RE syntax.
	   These modules will allow you	the full power of perl RE's - this is
	   probably more than is available in Nagios, so don't blame me	if
	   something works here	but not	in Nagios (it's	usually	the other way
	   around anyways).

	   The generated RE's have the same translation	as above, but do not
	   have	the anchors to ^ and $.

	   This	option always supercedes enable_regexp_matching.


       list_hosts(), list_hostgroups(),	etc.
	   Returns an array/arrayref of	objects	of the given type.


       Al Tobey	<> Contributions	From:
	   Lynne Lawrence (API & bugs)

perl v5.32.0			  2020-08-10	     Nagios::Object::Config(3)


Want to link to this manual page? Use this URL:

home | help