190 lines
7.9 KiB
Puppet
190 lines
7.9 KiB
Puppet
## confdroid_nagios::server::nagios.pp
|
|
# Module name: confdroid_nagios
|
|
# Author: 12ww1160 (12ww1160@confdroid.com)
|
|
# @summary Class manages Nagios configuration for the confdroid_nagios module.
|
|
###############################################################################
|
|
class confdroid_nagios::server::nagios (
|
|
|
|
) inherits confdroid_nagios::params {
|
|
if $ng_nagios_server == $fqdn {
|
|
@@nagios_host { "localhost_${fqdn}":
|
|
ensure => $ng_ping_ensure,
|
|
alias => 'localhost',
|
|
address => '127.0.0.1',
|
|
use => 'linux-server',
|
|
target => $ng_target_localhost,
|
|
hostgroups => 'linux-servers',
|
|
contacts => $ng_contact_name,
|
|
max_check_attempts => $ng_max_check_attempts,
|
|
notification_period => '24x7',
|
|
owner => $ng_user,
|
|
group => $ng_user,
|
|
mode => '0640',
|
|
check_command => "check_ping!${ng_ping_warn}!${ng_ping_crit}",
|
|
notify => Service[$ng_service],
|
|
}
|
|
|
|
@@nagios_host { $fqdn:
|
|
ensure => $ng_ping_ensure,
|
|
alias => 'nag001',
|
|
address => '127.0.0.1',
|
|
use => 'linux-server',
|
|
target => $ng_target_localhost,
|
|
hostgroups => 'linux-servers',
|
|
contacts => $ng_contact_name,
|
|
max_check_attempts => $ng_max_check_attempts,
|
|
notification_period => '24x7',
|
|
owner => $ng_user,
|
|
group => $ng_user,
|
|
mode => '0640',
|
|
check_command => "check_ping!${ng_ping_warn}!${ng_ping_crit}",
|
|
notify => Service[$ng_service],
|
|
}
|
|
|
|
@@nagios_service { 'check_nagios_localhost':
|
|
check_command => "check_nagios!${ng_spool_dir}/status.dat!5!/usr/sbin/nagios",
|
|
use => 'generic-service',
|
|
host_name => "localhost_${fqdn}",
|
|
notification_period => '24x7',
|
|
service_description => 'localhost_nagios_service',
|
|
target => $ng_target_service,
|
|
owner => $ng_user,
|
|
group => $ng_user,
|
|
mode => '0640',
|
|
contacts => $ng_contact_name,
|
|
notify => Service[$ng_service],
|
|
}
|
|
|
|
@@nagios_service { 'root_partition_localhost':
|
|
ensure => $ng_disk_ensure,
|
|
check_command => "check_nrpe!check_disk!${ng_disk_warn}!${ng_disk_crit}!/",
|
|
use => 'generic-service',
|
|
host_name => "localhost_${fqdn}",
|
|
contacts => $ng_contact_name,
|
|
notification_period => '24x7',
|
|
service_description => 'localhost_root_partition',
|
|
servicegroups => 'linux-services',
|
|
target => $ng_target_service,
|
|
owner => $ng_user,
|
|
group => $ng_user,
|
|
mode => '0640',
|
|
notify => Service[$ng_service],
|
|
}
|
|
|
|
if $ng_enable_swap_check == true {
|
|
@@nagios_service { 'Swap_Usage_localhost':
|
|
ensure => $ng_swap_ensure,
|
|
check_command => "check_nrpe!check_swap!${ng_swap_warn}!${ng_swap_crit}",
|
|
use => 'generic-service',
|
|
host_name => "localhost_${fqdn}",
|
|
contacts => $ng_contact_name,
|
|
notification_period => '24x7',
|
|
service_description => 'localhost_swap_usage',
|
|
servicegroups => 'linux-services',
|
|
target => $ng_target_service,
|
|
owner => $ng_user,
|
|
group => $ng_user,
|
|
mode => '0640',
|
|
notify => Service[$ng_service],
|
|
}
|
|
}
|
|
|
|
@@nagios_service { 'Local_Users_localhost':
|
|
ensure => $ng_users_ensure,
|
|
check_command => "check_nrpe!check_users!${ng_users_warn}!${ng_users_crit}",
|
|
use => 'generic-service',
|
|
host_name => "localhost_${fqdn}",
|
|
contacts => $ng_contact_name,
|
|
notification_period => '24x7',
|
|
service_description => 'localhost_local_users',
|
|
servicegroups => 'linux-services',
|
|
target => $ng_target_service,
|
|
owner => $ng_user,
|
|
group => $ng_user,
|
|
mode => '0640',
|
|
notify => Service[$ng_service],
|
|
}
|
|
|
|
@@nagios_service { 'Total_Processes_localhost':
|
|
ensure => $ng_procs_tot_ensure,
|
|
check_command => "check_nrpe!check_procs!${ng_procs_tot_warn}!${ng_procs_tot_crit}!${ng_procs_tot_param}",
|
|
use => 'generic-service',
|
|
host_name => "localhost_${fqdn}",
|
|
contacts => $ng_contact_name,
|
|
notification_period => '24x7',
|
|
service_description => 'localhost_total_processes',
|
|
servicegroups => 'linux-services',
|
|
target => $ng_target_service,
|
|
owner => $ng_user,
|
|
group => $ng_user,
|
|
mode => '0640',
|
|
notify => Service[$ng_service],
|
|
}
|
|
|
|
@@nagios_service { 'Zombie_Processes_localhost':
|
|
ensure => $ng_procs_z_ensure,
|
|
check_command => "check_nrpe!check_procs!${ng_procs_z_warn}!${ng_procs_z_crit}!${ng_procs_z_param}",
|
|
use => 'generic-service',
|
|
host_name => "localhost_${fqdn}",
|
|
contacts => $ng_contact_name,
|
|
notification_period => '24x7',
|
|
service_description => 'localhost_zombie_processes',
|
|
servicegroups => 'linux-services',
|
|
target => $ng_target_service,
|
|
owner => $ng_user,
|
|
group => $ng_user,
|
|
mode => '0640',
|
|
notify => Service[$ng_service],
|
|
}
|
|
|
|
@@nagios_service { 'Current_Load_localhost':
|
|
ensure => $ng_load_ensure,
|
|
check_command => "check_nrpe!check_load!${ng_load_warn}!${ng_load_crit}",
|
|
use => 'generic-service',
|
|
host_name => "localhost_${fqdn}",
|
|
contacts => $ng_contact_name,
|
|
notification_period => '24x7',
|
|
service_description => 'localhost_current_load',
|
|
servicegroups => 'linux-services',
|
|
target => $ng_target_service,
|
|
owner => $ng_user,
|
|
group => $ng_user,
|
|
mode => '0640',
|
|
notify => Service[$ng_service],
|
|
}
|
|
|
|
resources { ['nagios_host',
|
|
'nagios_hostgroup',
|
|
'nagios_hostdependency',
|
|
'nagios_hostescalation',
|
|
'nagios_hostextinfo',
|
|
'nagios_service',
|
|
'nagios_servicegroup',
|
|
'nagios_servicedependency',
|
|
'nagios_serviceescalation',
|
|
'nagios_serviceextinfo',
|
|
'nagios_contact',
|
|
'nagios_contactgroup',
|
|
'nagios_command',
|
|
'nagios_timeperiod']:
|
|
purge => true,
|
|
}
|
|
|
|
# collect resources and populate /etc/nagios/conf.d/nagios_*.cfg
|
|
Nagios_host <<||>> { notify => Service['nagios'] }
|
|
Nagios_hostgroup <<||>> { notify => Service['nagios'] }
|
|
Nagios_hostdependency <<||>> { notify => Service['nagios'] }
|
|
Nagios_hostescalation <<||>> { notify => Service['nagios'] }
|
|
Nagios_hostextinfo <<||>> { notify => Service['nagios'] }
|
|
Nagios_service <<||>> { notify => Service['nagios'] }
|
|
Nagios_servicegroup <<||>> { notify => Service['nagios'] }
|
|
Nagios_servicedependency <<||>> { notify => Service['nagios'] }
|
|
Nagios_serviceescalation <<||>> { notify => Service['nagios'] }
|
|
Nagios_serviceextinfo <<||>> { notify => Service['nagios'] }
|
|
Nagios_contact <<||>> { notify => Service['nagios'] }
|
|
Nagios_contactgroup <<||>> { notify => Service['nagios'] }
|
|
Nagios_command <<||>> { notify => Service['nagios'] }
|
|
Nagios_timeperiod <<||>> { notify => Service['nagios'] }
|
|
}
|
|
}
|