diff --git a/manifests/server/nagios.pp b/manifests/server/nagios.pp new file mode 100644 index 0000000..6dd9aff --- /dev/null +++ b/manifests/server/nagios.pp @@ -0,0 +1,172 @@ +## 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': + 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_service { 'check_nagios_localhost': + check_command => "check_nagios!${ng_spool_dir}/status.dat!5!/usr/sbin/nagios", + use => 'generic-service', + host_name => 'localhost', + 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', + 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', + 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', + 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', + 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', + 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', + 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'] } + } +} diff --git a/manifests/server/service.pp b/manifests/server/service.pp index 0200156..754970d 100644 --- a/manifests/server/service.pp +++ b/manifests/server/service.pp @@ -10,6 +10,7 @@ class confdroid_nagios::server::service ( if $ng_nagios_server == $fqdn { require confdroid_nagios::server::access_rules require confdroid_nagios::nagios::config + require confdroid_nagios::server::nagios exec { 'ng_restart_httpd': command => 'systemctl restart httpd', @@ -25,167 +26,5 @@ class confdroid_nagios::server::service ( hasstatus => true, require => Exec['ng_restart_httpd'], } - - @@nagios_host { 'localhost': - 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_service { 'check_nagios_localhost': - check_command => "check_nagios!${ng_spool_dir}/status.dat!5!/usr/sbin/nagios", - use => 'generic-service', - host_name => 'localhost', - 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', - 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', - 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', - 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', - 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', - 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', - 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'] } } }