diff --git a/manifests/nagios/objects/commands.pp b/manifests/nagios/objects/commands.pp index ca20522..33001f3 100644 --- a/manifests/nagios/objects/commands.pp +++ b/manifests/nagios/objects/commands.pp @@ -25,226 +25,227 @@ class cd_nagios::nagios::objects::commands ( ) inherits cd_nagios::params { - require cd_nagios::main::install + if $::fqdn == $ng_nagios_server { - @@nagios_command { 'notify-host-by-email': - ensure => present, - command_name => 'notify-host-by-email', - command_line => '/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTADDRESS$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTADDRESS$ is $HOSTSTATE$ **" $CONTACTEMAIL$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'notify-host-by-email': + ensure => present, + command_name => 'notify-host-by-email', + command_line => '/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTADDRESS$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTADDRESS$ is $HOSTSTATE$ **" $CONTACTEMAIL$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'notify-service-by-email': - ensure => present, - command_name => 'notify-service-by-email', - command_line => '/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'notify-service-by-email': + ensure => present, + command_name => 'notify-service-by-email', + command_line => '/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check-host-alive': - ensure => present, - command_name => 'check-host-alive', - command_line => '$USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check-host-alive': + ensure => present, + command_name => 'check-host-alive', + command_line => '$USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_disk': - ensure => present, - command_name => 'check_disk', - command_line => '$USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_disk': + ensure => present, + command_name => 'check_disk', + command_line => '$USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_local_load': - ensure => present, - command_name => 'check_local_load', - command_line => '$USER1$/check_load -w $ARG1$ -c $ARG2$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_local_load': + ensure => present, + command_name => 'check_local_load', + command_line => '$USER1$/check_load -w $ARG1$ -c $ARG2$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_local_procs': - ensure => present, - command_name => 'check_local_procs', - command_line => '$USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_local_procs': + ensure => present, + command_name => 'check_local_procs', + command_line => '$USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_local_users': - ensure => present, - command_name => 'check_local_users', - command_line => '$USER1$/check_users -w $ARG1$ -c $ARG2$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_local_users': + ensure => present, + command_name => 'check_local_users', + command_line => '$USER1$/check_users -w $ARG1$ -c $ARG2$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_local_swap': - ensure => present, - command_name => 'check_local_swap', - command_line => '$USER1$/check_swap -w $ARG1$ -c $ARG2$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_local_swap': + ensure => present, + command_name => 'check_local_swap', + command_line => '$USER1$/check_swap -w $ARG1$ -c $ARG2$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_ftp': - ensure => present, - command_name => 'check_ftp', - command_line => '$USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_ftp': + ensure => present, + command_name => 'check_ftp', + command_line => '$USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_snmp': - ensure => present, - command_name => 'check_snmp', - command_line => '$USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_snmp': + ensure => present, + command_name => 'check_snmp', + command_line => '$USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_http': - ensure => present, - command_name => 'check_http', - command_line => '$USER1$/check_http -I $HOSTADDRESS$ $ARG1$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_http': + ensure => present, + command_name => 'check_http', + command_line => '$USER1$/check_http -I $HOSTADDRESS$ $ARG1$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_ssh': - ensure => present, - command_name => 'check_ssh', - command_line => '$USER1$/check_ssh $ARG1$ $HOSTADDRESS$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_ssh': + ensure => present, + command_name => 'check_ssh', + command_line => '$USER1$/check_ssh $ARG1$ $HOSTADDRESS$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_ping': - ensure => present, - command_name => 'check_ping', - command_line => '$USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_ping': + ensure => present, + command_name => 'check_ping', + command_line => '$USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_tcp': - ensure => present, - command_name => 'check_tcp', - command_line => '$USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_tcp': + ensure => present, + command_name => 'check_tcp', + command_line => '$USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_udp': - ensure => present, - command_name => 'check_udp', - command_line => '$USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_udp': + ensure => present, + command_name => 'check_udp', + command_line => '$USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_nrpe': - ensure => present, - command_name => 'check_nrpe', - command_line => '$USER1$/check_nrpe -t 30 -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ $ARG3$ $ARG4$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_nrpe': + ensure => present, + command_name => 'check_nrpe', + command_line => '$USER1$/check_nrpe -t 30 -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ $ARG3$ $ARG4$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_nagios': - ensure => present, - command_name => 'check_nagios', - command_line => '$USER1$/check_nagios -F $ARG1$ -e $ARG2$ -C $ARG3$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_nagios': + ensure => present, + command_name => 'check_nagios', + command_line => '$USER1$/check_nagios -F $ARG1$ -e $ARG2$ -C $ARG3$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_bandwidth': - ensure => present, - command_name => 'check_bandwidth', - command_line => '$USER1$/check_bandwidth.sh -t 30 -H $HOSTADDRESS$ linux $ARG1$ $ARG2$ $ARG3$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_bandwidth': + ensure => present, + command_name => 'check_bandwidth', + command_line => '$USER1$/check_bandwidth.sh -t 30 -H $HOSTADDRESS$ linux $ARG1$ $ARG2$ $ARG3$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_jenkins_api': - ensure => present, - command_name => 'check_jenkins_api', - command_line => '$USER1$/check_http -H $HOSTADDRESS$ -u /api/xml?depth=0 -R quietingDown.false $ARG1$ $ARG2$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'check_jenkins_api': + ensure => present, + command_name => 'check_jenkins_api', + command_line => '$USER1$/check_http -H $HOSTADDRESS$ -u /api/xml?depth=0 -R quietingDown.false $ARG1$ $ARG2$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'process-service-perfdata-file': - ensure => present, - command_name => 'process-service-perfdata-file', - command_line => '/bin/mv /var/log/pnp4nagios/service-perfdata /var/spool/pnp4nagios/service-perfdata.$TIMET$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'process-service-perfdata-file': + ensure => present, + command_name => 'process-service-perfdata-file', + command_line => '/bin/mv /var/log/pnp4nagios/service-perfdata /var/spool/pnp4nagios/service-perfdata.$TIMET$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'process-host-perfdata-file': - ensure => present, - command_name => 'process-host-perfdata-file', - command_line => '/bin/mv /var/log/pnp4nagios/host-perfdata /var/spool/pnp4nagios/host-perfdata.$TIMET$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, - } + @@nagios_command { 'process-host-perfdata-file': + ensure => present, + command_name => 'process-host-perfdata-file', + command_line => '/bin/mv /var/log/pnp4nagios/host-perfdata /var/spool/pnp4nagios/host-perfdata.$TIMET$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } - @@nagios_command { 'check_ntp_time': - ensure => present, - command_name => 'check_ntp_time', - command_line => '$USER1$/check_ntp_time -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$', - owner => 'nagios', - group => 'nagios', - mode => '0640', - target => $ng_target_command, + @@nagios_command { 'check_ntp_time': + ensure => present, + command_name => 'check_ntp_time', + command_line => '$USER1$/check_ntp_time -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$', + owner => 'nagios', + group => 'nagios', + mode => '0640', + target => $ng_target_command, + } } } diff --git a/manifests/nagios/objects/config.pp b/manifests/nagios/objects/config.pp index ff8508c..df37af5 100644 --- a/manifests/nagios/objects/config.pp +++ b/manifests/nagios/objects/config.pp @@ -36,6 +36,7 @@ class cd_nagios::nagios::objects::config ( require cd_nagios::nagios::objects::add_hostgroup_rules require cd_nagios::nagios::objects::servicegroups require cd_nagios::nagios::objects::add_servicegroup_rules + require cd_nagios::nagios::objects::timeperiods } } diff --git a/manifests/nagios/objects/timeperiods.pp b/manifests/nagios/objects/timeperiods.pp new file mode 100644 index 0000000..5947a75 --- /dev/null +++ b/manifests/nagios/objects/timeperiods.pp @@ -0,0 +1,48 @@ +# cd_nagios::nagios::objects::timeperiods.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 all timeperiods for NAGIOS through Puppet exports, +# and populates /etc/nagios/conf.d/nagios_timeperiods.cfg. +################################################################################ +class cd_nagios::nagios::objects::timeperiods ( + +) inherits cd_nagios::params { + + if $::fqdn == $ng_nagios_server { + + @@nagios_timeperiod { '24x7': + ensure => present, + timeperiod_name => '24x7', + alias => '24 Hours A Day, 7 Days A Week', + monday => '00:00-24:00', + tuesday => '00:00-24:00', + wednesday => '00:00-24:00', + thursday => '00:00-24:00', + friday => '00:00-24:00', + saturday => '00:00-24:00', + sunday => '00:00-24:00', + owner => $ng_user, + group => $ng_user, + mode => '0640', + register => '1', + target => $ng_tgt_timeperiods_base, + } + } +} diff --git a/manifests/params.pp b/manifests/params.pp index b5832b4..55fa492 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -964,7 +964,7 @@ $ng_certbot_live = "${ng_certbot_main_dir}/live" $ng_target_templates = "${ng_conf_d_dir}/nagios_templates.cfg" $ng_templates_head_erb = 'cd_nagios/nagios/templates_cfg_head.erb' $ng_templates_rule_erb = 'cd_nagios/nagios/templates_cfg_rule.erb' -$ng_target_timeperiods = "${ng_conf_d_dir}/timeperiods.cfg" +$ng_tgt_timeperiods_base = "${ng_conf_d_dir}/timeperiods.cfg" $ng_target_localhost = "${ng_conf_d_dir}/nagios_localhost.cfg" $ng_target_host = "${ng_conf_d_dir}/nagios_host.cfg" $ng_target_hostgroup_base = "${ng_conf_d_dir}/nagios_hostgroups_base.cfg"