summaryrefslogtreecommitdiff
path: root/manifests/nrpe/base.pp
blob: 3412f7e7803463b187ccc22fef01ca2354ba134f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
class nagios::nrpe::base {

    if $nagios_nrpe_cfgdir == '' { $nagios_nrpe_cfgdir = '/etc/nagios' }
    if $processorcount == '' { $processorcount = 1 }

    # libwww-perl for check_apache
    include perl::extensions::libwww 

    package { [ 'nagios-nrpe-server', 'nagios-plugins-basic' ]:
      ensure => present;
    }

    # Special-case lenny. the package doesn't exist
    if $::lsbdistcodename != 'lenny' {
      package { 'libnagios-plugin-perl': ensure => present; }
    }

    file { [ $nagios_nrpe_cfgdir, "$nagios_nrpe_cfgdir/nrpe.d" ]:
      ensure => directory }

    if $nagios_nrpe_dont_blame == '' { $nagios_nrpe_dont_blame = 1 }
    file { "$nagios_nrpe_cfgdir/nrpe.cfg":
      content => template('nagios/nrpe/nrpe.cfg'),
      owner   => root, group => root, mode => '0644';
    }

    # default commands
    nagios::nrpe::command { 'basic_nrpe':
      source => [ "puppet:///modules/site-nagios/configs/nrpe/nrpe_commands.${::fqdn}.cfg",
                  'puppet:///modules/site-nagios/configs/nrpe/nrpe_commands.cfg',
                  'puppet:///modules/nagios/nrpe/nrpe_commands.cfg' ],
    }
    # the check for load should be customized for each server based on number
    # of CPUs and the type of activity.
    $warning_1_threshold = 7 * $processorcount
    $warning_5_threshold = 6 * $processorcount
    $warning_15_threshold = 5 * $processorcount
    $critical_1_threshold = 10 * $processorcount
    $critical_5_threshold = 9 * $processorcount
    $critical_15_threshold = 8 * $processorcount
    nagios::nrpe::command { 'check_load':
      command_line => "${::nagios::nrpe::nagios_plugin_dir}/check_load -w ${warning_1_threshold},${warning_5_threshold},${warning_15_threshold} -c ${critical_1_threshold},${critical_5_threshold},${critical_15_threshold}",
    }

    service { 'nagios-nrpe-server':
      ensure    => running,
      enable    => true,
      pattern   => 'nrpe',
      subscribe => File["$nagios_nrpe_cfgdir/nrpe.cfg"],
      require   => Package['nagios-nrpe-server'],
    }
}