Skip to content

puppet-modules/puppet-nagios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Overview
========

To use the nagios resources, activate storeconfigs on the puppetmaster.

Monitor
-------

On one node the "nagios" class has to be included. This installs nagios and
apache and configures the cgi on http://node/nagios/


Hosts
-----

On a node which shall be monitored with nagios, include the "nagios::target".
This just creates a host declaration for this hosts "$fqdn".
Set the $nagios_parent variable in the node scope for enabling the reachability
features of nagios. If a node needs more customisation, use the
"nagios::host" component directly.

To monitor hosts not managed by puppet, add "nagios::extra_host"s to the
monitoring node. These can be used as intermediate $nagios_parent's


Services
--------

Services can be monitored by using the "nagios::service" component.

The simplest form is::

	nagios::service { check_dns: }

The intention being obviously to put such declarations into a component defining
a service, thereby being automatically applied together with all instances of
the service.



Caveats
=======


Performance
-----------

A major drawback is that currently the needed storeconfig setting and
subsequent filling of the database is really a drag on performance. 0.22.1
for example breaks at approximatly 120 monitored services (depends on H/W of
course). 0.22.3 has improved that my a factor of 3-4. 


Consistency/Validation/Verification
-----------------------------------

After convergance of the configuration, the system is obviously consistent.
That is, all defined services are monitored. The problem is though, that it is
neither automatically valid - it is not guaranteed that all components declare a
nagios::service - and even if the configuration is valid it definitly is
unverified, since that is always a judgment call for an external observer.



Examples
========

Usage example::

node nagios {

	include nagios

	# Declare another nagios command
	nagios::command { http_port: command_line
=> '/usr/lib/nagios/plugins/check_http -p $ARG1$ -H $HOSTADDRESS$ -I
$HOSTADDRESS$'

	# Declare unmanaged hosts
	nagios_extra_host {
        	"router01":
                	parent => "gateway",
                	ip => "10.0.0.1";
        	"router02":
                	parent => "router01",
                	ip => "192.168.0.1";
	}

}


node target {

	# Monitor this host
	$nagios_parent = "router01"
	include nagios_target

	# monitor a service
	$apache2_port = 8080
	include apache

	# The apache class actually does this somewhere:
	#nagios::service { "http_${apache2_port}":
	#       check_command => "http_port!${apache2_port}"
	#}
	# which goes via export/collect to the nagios node.

}


License
=======

Copyright (C) 2007 David Schmitt <[email protected]>
See the file LICENSE in the top directory for the full license.

About

configure nagios to monitor hosts and services

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published