Puppet Class: nagios::client
- Defined in:
- manifests/client.pp
Overview
Class: nagios::client
This class will set up a node to host nrpe commands which can be accessed for monitoring via your nagios server
Parameters
- nagios_server
-
The $nagios_server which can access this node for monitoring
- nagios_version
-
The version of nagios plugins to install
- nrpe_config
-
The nrpe_config file to manage
- user
-
The user which the nrpe client should run as
- group
-
The group which the nrpe client should run as
Authors
Christopher Johnson - cjohn@ceh.ac.uk
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'manifests/client.pp', line 18
class nagios::client (
$nagios_server,
$nagios_version = installed,
$nrpe_config = $::nagios::nrpe_config,
$user = $::nagios::user,
$group = $::nagios::group
) {
if ! defined(Class['::nagios']) {
fail('You must include the nagios base class before nagios::client')
}
# Install nagios nrpe server and plugins
package { [$::nagios::nrpe_plugins, $::nagios::nrpe_package] :
ensure => $nagios_version,
provider => $::nagios::package_provider,
before => File[$::nagios::plugins_path],
}
concat { $nrpe_config :
require => Package[$::nagios::nrpe_package],
}
concat::fragment { "allowed_hosts ${nrpe_config}":
target => $nrpe_config,
content => "allowed_hosts=${nagios_server}\n",
}
concat::fragment { "nrpe_user ${nrpe_config}":
target => $nrpe_config,
content => "nrpe_user=${user}\n",
}
concat::fragment { "nrpe_group ${nrpe_config}":
target => $nrpe_config,
content => "nrpe_group=${group}\n",
}
# On Mac OS X we need to link to the plist to create the nagios service
if $::kernel == 'Darwin' {
file { "/Library/LaunchDaemons/${::nagios::nrpe_service}.plist" :
ensure => 'file',
mode => '0444',
source => '/usr/local/opt/nrpe/homebrew.mxcl.nrpe.plist',
before => Service[$::nagios::nrpe_service],
}
}
# Keep the nrpe service running
service { $::nagios::nrpe_service :
ensure => running,
enable => true,
subscribe => File[$nrpe_config],
}
# Notify the nrpe service if the user or group change
Package[$::nagios::nrpe_package] -> User[$user] ~> Service[$::nagios::nrpe_service]
Package[$::nagios::nrpe_package] -> Group[$group] ~> Service[$::nagios::nrpe_service]
}
|