## cd_nagios::server::service.pp # Module name: cd_nagios # Author: Arne Teuke (arne_teuke@ConfDroid.com) # # License: # This file is part of cd_nagios. # # cd_nagios is used for providing automatic configuration of Nagios # Copyright (C) 2016 ConfDroid (copyright@ConfDroid.com) # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # @summary Class manages the service(s) for cd_nagios. ############################################################################# class cd_nagios::server::service ( ) inherits cd_nagios::params { if $::fqdn == $ng_nagios_server { if $ng_include_nrpe == true { require cd_nrpe } require cd_nagios::server::files require cd_nagios::server::access_rules require cd_nagios::nagios::objects::config require cd_nagios::nagios::resources::resource service { $ng_service: ensure => running, hasstatus => true, hasrestart => true, enable => true, } @@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 => 'ops', 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 => $ng_nagios_service_cmd, 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 => 'ops', } @@nagios_host { $::fqdn: ensure => $ng_ping_ensure, alias => $::hostname, address => $::fqdn, use => 'linux-server', target => $ng_target_host, hostgroups => 'linux-servers', contacts => 'ops', 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_user], } @@nagios_service { "root_partition_${::hostname}": ensure => $ng_disk_ensure, check_command => "check_nrpe!check_disk!${ng_disk_warn}!${ng_disk_crit}!/", use => 'generic-service', host_name => $::fqdn, contacts => 'ops', notification_period => '24x7', service_description => "${::hostname}_root_partition", servicegroups => 'linux-services', target => $ng_target_service, owner => $ng_user, group => $ng_user, mode => '0640', } if $ng_enable_swap_check == true { @@nagios_service { "Swap_Usage_${::hostname}": ensure => $ng_swap_ensure, check_command => "check_nrpe!check_swap!${ng_swap_warn}!${ng_swap_crit}", use => 'generic-service', host_name => $::fqdn, contacts => 'ops', notification_period => '24x7', service_description => "${::hostname}_swap_usage", servicegroups => 'linux-services', target => $ng_target_service, owner => $ng_user, group => $ng_user, mode => '0640', } } @@nagios_service { "Local_Users_${::hostname}": ensure => $ng_users_ensure, check_command => "check_nrpe!check_users!${ng_users_warn}!${ng_users_crit}", use => 'generic-service', host_name => $::fqdn, contacts => 'ops', notification_period => '24x7', service_description => "${::hostname}_local_users", servicegroups => 'linux-services', target => $ng_target_service, owner => $ng_user, group => $ng_user, mode => '0640', } @@nagios_service { "Total Processes_${::hostname}": ensure => $ng_procs_tot_ens, check_command => "check_nrpe!check_procs!${ng_procs_tot_warn}!${ng_procs_tot_crit}!${ng_procs_tot_param}", use => 'generic-service', host_name => $::fqdn, contacts => 'ops', notification_period => '24x7', service_description => "${::hostname}_total_processes", servicegroups => 'linux-services', target => $ng_target_service, owner => $ng_user, group => $ng_user, mode => '0640', } @@nagios_service { "Zombie Processes_${::hostname}": 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 => $::fqdn, contacts => 'ops', notification_period => '24x7', service_description => "${::hostname}_zombie_processes", servicegroups => 'linux-services', target => $ng_target_service, owner => $ng_user, group => $ng_user, mode => '0640', } @@nagios_service { "Current_Load_${::hostname}": ensure => $ng_load_ensure, check_command => "check_nrpe!check_load!${ng_load_warn}!${ng_load_crit}", use => 'generic-service', host_name => $::fqdn, contacts => 'ops', notification_period => '24x7', service_description => "${::hostname}_current_load", servicegroups => 'linux-services', target => $ng_target_service, owner => $ng_user, group => $ng_user, mode => '0640', } 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'] } } }