Puppet Class: nagios::nsca::server

Defined in:
manifests/nsca/server.pp

Overview

Class: nagios::nsca::server

Installs and configures the nsca server and ensure it’s up and running. This class also collects the resources tagged with “nagios-$fqdn”. They typically got exported using nagios::service::nsca.

Example usage:

include nagios
include nagios::nsca::server

Parameters:

  • decryption_method (Any) (defaults to: pick($nagios_nsca_decryption_method, '0'))
  • debug (Any) (defaults to: 0)


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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'manifests/nsca/server.pp', line 12

class nagios::nsca::server(
  $decryption_method = pick($nagios_nsca_decryption_method, '0'),

  $debug = 0,
) {

  include ::nagios::params

  # variables used in ERB template
  $basename = $nagios::params::basename

  if !defined (Package['nsca']) {
    package {'nsca':
      ensure => installed;
    }
  }

  service {'nsca':
    ensure     => running,
    enable     => true,
    hasrestart => true,
    hasstatus  => false,
    pattern    => '/usr/sbin/nsca',
    require    => Package['nsca'],
  }

  $get_tag = "nagios-${::nagios::nsca_server_tag}"

  Nagios::Host   <<| tag == $get_tag |>>
  Nagios_service <<| tag == $get_tag |>>
  Nagios_command <<| tag == $get_tag |>>
  File           <<| tag == $get_tag |>>

  Nagios_host    { require => File[$nagios::params::resourcedir] }
  Nagios_service { require => File[$nagios::params::resourcedir] }
  Nagios_command { require => File[$nagios::params::resourcedir] }

  $nsca_group = $::osfamily ? {
    'Debian' => 'nogroup',
    'RedHat' => 'nagios',
  }

  $nagios_nsca_cfg = $::osfamily ? {
    'Debian' => '/etc/nsca.cfg',
    'RedHat' => "${nagios::params::rootdir}/nsca.cfg",
  }

  $command_file = $::osfamily ? {
    'Debian' => '/var/lib/nagios3/rw/nagios.cmd',
    'RedHat' => '/var/spool/nagios/cmd/nagios.cmd',
  }

  $alternate_dump_file = $::osfamily ? {
    'Debian' => '/var/run/nagios/nsca.dump',
    'RedHat' => '/var/spool/nagios/cmd/nsca.dump',
  }

  file {$nagios_nsca_cfg:
    ensure  => file,
    owner   => root,
    group   => nagios,
    mode    => '0640',
    content => template('nagios/nsca.cfg.erb'),
    require => [Package['nsca'], Package['nagios']],
    notify  => Service['nsca'],
  }

}