diff --git a/README.md b/README.md index c2de47d..0a1f15d 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,8 @@ Configuration * manage nagios.cfg through parameters * manage Nagios users through external Puppet rules via define * manage Nagios commands through Puppet exports +* manage Nagios template definitions through external Puppet rules via define +* manage Nagios main contacts through Puppet exports. Additional contacts can be created through external Puppet rules via define, to avoid having to alter the module code. * configure NRPE on clients (optional) * configure firewall (optional) * configure selinux policies (optional) @@ -67,6 +69,8 @@ All dependencies must be included in the catalogue. * [cd_firewall](https://gitlab.puppetsoft.com/12WW1160/cd_firewall) or [puppetlabs firewall](https://github.com/puppetlabs/puppetlabs-firewall) (optional) * [cd_selinux](https://gitlab.puppetsoft.com/12WW1160/cd_selinux) for selinux policy adjustments * [cd_certbot](https://gitlab.puppetsoft.com/12WW1160/cd_certbot) to auto-manage TLS certificates (optional) +* [cd_stdlib](https://gitlab.puppetsoft.com/12WW1160/cd_stdlib) or [puppetlabs stdlib](https://github.com/puppetlabs/puppetlabs-stdlib) to facilitate concat +* [cd-concat](https://gitlab.puppetsoft.com/12WW1160/cd_stdlib) or [puppetlabs concat](https://github.com/puppetlabs/puppetlabs-concat) to concatenate configuration files from different sources. ### Deployment diff --git a/manifests/nagios/objects/add_contact.pp b/manifests/nagios/objects/add_contact.pp new file mode 100644 index 0000000..520d644 --- /dev/null +++ b/manifests/nagios/objects/add_contact.pp @@ -0,0 +1,35 @@ +## cd_nagios::nagios::objects::add_contact.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 Define manages additional contacts known to NAGIOS through external +# Puppet rules, and populates /etc/nagios/conf.d/nagios_add_contact.cfg. +# @example +################################################################################ +define cd_nagios::nagios::objects::add_contact ( + +$ng_contact_name = undef, +$ng_contact_use = 'generic-contact', +$ng_contact_alias = undef, +$ng_contact_email = undef, +$ng_contact_groups = undef, + +) { + +} diff --git a/manifests/nagios/objects/add_contact_rules.pp b/manifests/nagios/objects/add_contact_rules.pp new file mode 100644 index 0000000..3384911 --- /dev/null +++ b/manifests/nagios/objects/add_contact_rules.pp @@ -0,0 +1,69 @@ +## cd_nagios::nagios::objects::add_contact_rules.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 /etc/nagios/conf.d/nagios_add_contact.cfg through +# concat. +# @example +# cd_nagios::nagios::objects::add_contact { 'example_user': +# ng_contact_name => 'example_user', +# ng_contact_alias => 'Example User', +# ng_contact_groups => 'admins', +# ng_contact_email => 'example@example.net', +# } +################################################################################ +class cd_nagios::nagios::objects::add_contact_rules ( + +) inherits cd_nagios::params { + + if $::fqdn == $ng_nagios_server { + + # manage /etc/nagios/conf.d/nagios_add_contacts.cfg + + concat { $ng_target_add_contact: + ensure => present, + path => $ng_target_add_contact, + owner => $ng_user, + group => $ng_user, + mode => '0640', + selrange => s0, + selrole => object_r, + seltype => nagios_etc_t, + seluser => system_u, + notify => Service[$ng_service], + } + + # manage file header + + concat::fragment { 'header': + target => $ng_target_add_contact, + content => template($ng_contacts_head_erb), + order => '000', + } + + # example rule for testing + + cd_nagios::nagios::objects::add_contact { 'example_user': + ng_contact_name => 'example_user', + ng_contact_alias => 'Example User', + ng_contact_groups => 'admins', + ng_contact_email => 'example@example.net', + } + } +} diff --git a/manifests/nagios/objects/config.pp b/manifests/nagios/objects/config.pp new file mode 100644 index 0000000..cf828d0 --- /dev/null +++ b/manifests/nagios/objects/config.pp @@ -0,0 +1,34 @@ +## cd_nagios::server::nagios::objects::config.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 nagios objects definitions. +############################################################################# +class cd_nagios::nagios::objects::config ( + +) inherits cd_nagios::params { + + if $::fqdn == $ng_nagios_server { + + require cd_nagios::nagios::objects::commands + require cd_nagios::nagios::objects::template_rules + require cd_nagios::nagios::objects::add_contact_rules + + } +} diff --git a/manifests/nagios/objects/contacts.pp b/manifests/nagios/objects/contacts.pp new file mode 100644 index 0000000..43eb9e0 --- /dev/null +++ b/manifests/nagios/objects/contacts.pp @@ -0,0 +1,97 @@ +## cd_nagios::nagios::objects::contacts.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 basic contacts known to NAGIOS through Puppet exports, +# and populates /etc/nagios/conf.d/nagios_base_contacts.cfg. +# @example +# @@nagios_contact { 'admin': +# ensure => present, +# alias => 'Nagios Admin', +# contact_name => 'admin', +# contactgroups => 'admins', +# email => "admin@${::domain}", +# can_submit_commands => '1', +# register => '1', +# use => 'generic-contact', +# target => $ng_target_base_contact, +# owner => 'root', +# group => 'nagios', +# mode => '0664', +# } +################################################################################ +class cd_nagios::nagios::objects::contacts ( + + +) inherits cd_nagios::params { + + if $::fqdn == $ng_nagios_server { + + # admin contact + + @@nagios_contact { 'admin': + ensure => present, + alias => 'Nagios Admin', + contact_name => 'admin', + contactgroups => 'admins', + email => "admin@${::domain}", + can_submit_commands => '1', + register => '1', + use => 'generic-contact', + target => $ng_target_base_contact, + owner => $ng_user, + group => $ng_user, + mode => '0640', + } + + # ops contact + + @@nagios_contact { 'ops': + ensure => present, + alias => 'Operations', + contact_name => 'ops', + contactgroups => 'operations', + email => "ops@${::domain}", + can_submit_commands => '1', + register => '1', + use => 'generic-contact', + target => $ng_target_base_contact, + owner => $ng_user, + group => $ng_user, + mode => '0640', + } + + # support contact + + @@nagios_contact { 'support': + ensure => present, + alias => 'support', + contact_name => 'support', + contactgroups => 'support', + email => "support@${::domain}", + can_submit_commands => '1', + register => '1', + use => 'generic-contact', + target => $ng_target_base_contact, + owner => $ng_user, + group => $ng_user, + mode => '0640', + } + } +} diff --git a/manifests/nagios/objects/template_rules.pp b/manifests/nagios/objects/template_rules.pp index b5e133a..63e94bb 100644 --- a/manifests/nagios/objects/template_rules.pp +++ b/manifests/nagios/objects/template_rules.pp @@ -18,7 +18,8 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . -# @summary Class manages /etc/nagios/conf.d/templates.cfg through concat. +# @summary Class manages /etc/nagios/conf.d/nagios_templates.cfg through +# concat. # @example cd_nagios::nagios::objects::templates { 'generic contact': # ng_template_object => 'contact', # ng_template_object_name => 'generic-contact', diff --git a/manifests/nagios/objects/templates.pp b/manifests/nagios/objects/templates.pp index ab7da62..5f04474 100644 --- a/manifests/nagios/objects/templates.pp +++ b/manifests/nagios/objects/templates.pp @@ -25,7 +25,7 @@ # i.e. `generic-contact`, `generic-host`, `generic-service`. # @param [string] ng_svc_notification_period Period in which to send out # notifications for service events, i.e. `24x7`. -# @param [string] ng_svc_notification_period Period in which to send out +# @param [string] ng_host_notification_period Period in which to send out # notifications for host events , i.e. `24x7`. # @param [string] ng_service_notification_options What service events to send # out notifications for: @@ -77,6 +77,7 @@ # retries for the defined object. # @param [string] ng_max_check_attempts how often to check the defined object # maximal. +# @param [string] ng_check_command The command to use for host checks. # @param [string] ng_notification_options see `ng_service_notification_options` # and `ng_host_notification_options`. # @param [string] ng_contact_groups contact groups for the defined oject. @@ -112,7 +113,6 @@ $ng_template_object_use = undef, $ng_notifications_enabled = '1', $ng_event_handler_enabled = '1', $ng_flap_detection_enabled = '1', -$ng_failure_prediction_enabled = '1', $ng_process_perf_data = '1', $ng_retain_status_information = '1', $ng_retain_nonstatus_information = '1', @@ -122,7 +122,7 @@ $ng_check_period = '24x7', $ng_check_interval = '5', $ng_retry_interval = '1', $ng_max_check_attempts = '10', -$ng_check_command = 'check-host-alive', +$ng_host_check_command = 'check-host-alive', $ng_notification_options = undef, $ng_contact_groups = 'admins', $ng_active_checks_enabled = '1', diff --git a/manifests/params.pp b/manifests/params.pp index 134e21c..7ad6e13 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -959,7 +959,7 @@ $ng_certbot_check = "${ng_certbot_archive}/${ng_webserver_name}/cert1.pe $ng_certbot_live = "${ng_certbot_main_dir}/live" # nagios -$ng_target_templates = "${ng_conf_d_dir}/templates.cfg" +$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" @@ -971,7 +971,10 @@ $ng_target_hostesc = "${ng_conf_d_dir}/nagios_hostescalation.cfg" $ng_target_hostext = "${ng_conf_d_dir}/nagios_hostextinfo.cfg" $ng_target_service = "${ng_conf_d_dir}/nagios_service.cfg" $ng_target_servicegroup = "${ng_conf_d_dir}/nagios_servicegroup.cfg" -$ng_target_contact = "${ng_conf_d_dir}/nagios_contact.cfg" +$ng_target_base_contact = "${ng_conf_d_dir}/nagios_base_contact.cfg" +$ng_target_add_contact = "${ng_conf_d_dir}/nagios_add_contact.cfg" +$ng_contacts_head_erb = 'cd_nagios/nagios/contacts_cfg_head.erb' +$ng_contact_rule_erb = 'cd_nagios/nagios/contact_cfg_rule.erb' $ng_target_contactgroup = "${ng_conf_d_dir}/nagios_contactgroup.cfg" $ng_target_command = "${ng_conf_d_dir}/nagios_command.cfg" diff --git a/manifests/server/service.pp b/manifests/server/service.pp index 3ec4b42..bacd990 100644 --- a/manifests/server/service.pp +++ b/manifests/server/service.pp @@ -28,8 +28,7 @@ class cd_nagios::server::service ( require cd_nagios::server::files require cd_nagios::server::access_rules - require cd_nagios::nagios::objects::commands - require cd_nagios::nagios::objects::template_rules + require cd_nagios::nagios::objects::config service { $ng_service: ensure => running, diff --git a/templates/nagios/contacts_cfg.erb b/templates/nagios/contacts_cfg.erb new file mode 100755 index 0000000..98407a3 --- /dev/null +++ b/templates/nagios/contacts_cfg.erb @@ -0,0 +1,54 @@ +############################################################################### +# CONTACTS.CFG - SAMPLE CONTACT/CONTACTGROUP DEFINITIONS +# +# +# NOTES: This config file provides you with some example contact and contact +# group definitions that you can reference in host and service +# definitions. +# +# You don't need to keep these definitions in a separate file from your +# other object definitions. This has been done just to make things +# easier to understand. +# +############################################################################### + + + +############################################################################### +############################################################################### +# +# CONTACTS +# +############################################################################### +############################################################################### + +# Just one contact defined by default - the Nagios admin (that's you) +# This contact definition inherits a lot of default values from the 'generic-contact' +# template which is defined elsewhere. + +define contact{ + contact_name nagiosadmin ; Short name of user + use generic-contact ; Inherit default values from generic-contact template (defined above) + alias Nagios Admin ; Full name of user + + email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** + } + + + +############################################################################### +############################################################################### +# +# CONTACT GROUPS +# +############################################################################### +############################################################################### + +# We only have one contact in this simple configuration file, so there is +# no need to create more than one contact group. + +define contactgroup{ + contactgroup_name admins + alias Nagios Administrators + members nagiosadmin + } diff --git a/templates/nagios/contacts_cfg_head.erb b/templates/nagios/contacts_cfg_head.erb new file mode 100644 index 0000000..c357ffc --- /dev/null +++ b/templates/nagios/contacts_cfg_head.erb @@ -0,0 +1,8 @@ +############################################################################### +########## nagios_add_contact.cfg created by Puppet ########## +########## manual changes are overwritten! ########## +############################################################################### +########## Full reference file available at ########## +########## https://confdroid.com/2017/07/nagios-contacts-cfg/ ########## +############################################################################### +# rules are created below by external puppet rules. diff --git a/templates/nagios/contacts_cfg_rule.erb b/templates/nagios/contacts_cfg_rule.erb new file mode 100644 index 0000000..6f103fa --- /dev/null +++ b/templates/nagios/contacts_cfg_rule.erb @@ -0,0 +1,7 @@ +define contact { + contact_name <%= @ng_contact_name %> + use <%= @ng_contact_use %> + alias <%= @ng_contact_alias %> + email <%= @ng_contact_email %> + contactgroups <%= @ng_contact_groups %> + } diff --git a/templates/nagios/templates_cfg.erb b/templates/nagios/templates_cfg.erb deleted file mode 100755 index fad436e..0000000 --- a/templates/nagios/templates_cfg.erb +++ /dev/null @@ -1,197 +0,0 @@ -############################################################################### -# TEMPLATES.CFG - SAMPLE OBJECT TEMPLATES -# -# -# NOTES: This config file provides you with some example object definition -# templates that are refered by other host, service, contact, etc. -# definitions in other config files. -# -# You don't need to keep these definitions in a separate file from your -# other object definitions. This has been done just to make things -# easier to understand. -# -############################################################################### - - - -############################################################################### -############################################################################### -# -# CONTACT TEMPLATES -# -############################################################################### -############################################################################### - -# Generic contact definition template - This is NOT a real contact, just a template! - -define contact{ - name generic-contact ; The name of this contact template - service_notification_period 24x7 ; service notifications can be sent anytime - host_notification_period 24x7 ; host notifications can be sent anytime - service_notification_options w,u,c,r,f,s ; send notifications for all service states, flapping events, and scheduled downtime events - host_notification_options d,u,r,f,s ; send notifications for all host states, flapping events, and scheduled downtime events - service_notification_commands notify-service-by-email ; send service notifications via email - host_notification_commands notify-host-by-email ; send host notifications via email - register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE! - } - - - - -############################################################################### -############################################################################### -# -# HOST TEMPLATES -# -############################################################################### -############################################################################### - -# Generic host definition template - This is NOT a real host, just a template! - -define host{ - name generic-host ; The name of this host template - notifications_enabled 1 ; Host notifications are enabled - event_handler_enabled 1 ; Host event handler is enabled - flap_detection_enabled 1 ; Flap detection is enabled - process_perf_data 1 ; Process performance data - retain_status_information 1 ; Retain status information across program restarts - retain_nonstatus_information 1 ; Retain non-status information across program restarts - notification_period 24x7 ; Send host notifications at any time - register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! - } - - -# Linux host definition template - This is NOT a real host, just a template! - -define host{ - name linux-server ; The name of this host template - use generic-host ; This template inherits other values from the generic-host template - check_period 24x7 ; By default, Linux hosts are checked round the clock - check_interval 5 ; Actively check the host every 5 minutes - retry_interval 1 ; Schedule host check retries at 1 minute intervals - max_check_attempts 10 ; Check each Linux host 10 times (max) - check_command check-host-alive ; Default command to check Linux hosts - notification_period workhours ; Linux admins hate to be woken up, so we only notify during the day - ; Note that the notification_period variable is being overridden from - ; the value that is inherited from the generic-host template! - notification_interval 120 ; Resend notifications every 2 hours - notification_options d,u,r ; Only send notifications for specific host states - contact_groups admins ; Notifications get sent to the admins by default - register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! - } - - - -# Windows host definition template - This is NOT a real host, just a template! - -define host{ - name windows-server ; The name of this host template - use generic-host ; Inherit default values from the generic-host template - check_period 24x7 ; By default, Windows servers are monitored round the clock - check_interval 5 ; Actively check the server every 5 minutes - retry_interval 1 ; Schedule host check retries at 1 minute intervals - max_check_attempts 10 ; Check each server 10 times (max) - check_command check-host-alive ; Default command to check if servers are "alive" - notification_period 24x7 ; Send notification out at any time - day or night - notification_interval 30 ; Resend notifications every 30 minutes - notification_options d,r ; Only send notifications for specific host states - contact_groups admins ; Notifications get sent to the admins by default - hostgroups windows-servers ; Host groups that Windows servers should be a member of - register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE - } - - -# We define a generic printer template that can be used for most printers we monitor - -define host{ - name generic-printer ; The name of this host template - use generic-host ; Inherit default values from the generic-host template - check_period 24x7 ; By default, printers are monitored round the clock - check_interval 5 ; Actively check the printer every 5 minutes - retry_interval 1 ; Schedule host check retries at 1 minute intervals - max_check_attempts 10 ; Check each printer 10 times (max) - check_command check-host-alive ; Default command to check if printers are "alive" - notification_period workhours ; Printers are only used during the workday - notification_interval 30 ; Resend notifications every 30 minutes - notification_options d,r ; Only send notifications for specific host states - contact_groups admins ; Notifications get sent to the admins by default - statusmap_image printer.png - register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE - } - - -# Define a template for switches that we can reuse -define host{ - name generic-switch ; The name of this host template - use generic-host ; Inherit default values from the generic-host template - check_period 24x7 ; By default, switches are monitored round the clock - check_interval 5 ; Switches are checked every 5 minutes - retry_interval 1 ; Schedule host check retries at 1 minute intervals - max_check_attempts 10 ; Check each switch 10 times (max) - check_command check-host-alive ; Default command to check if routers are "alive" - notification_period 24x7 ; Send notifications at any time - notification_interval 30 ; Resend notifications every 30 minutes - notification_options d,r ; Only send notifications for specific host states - contact_groups admins ; Notifications get sent to the admins by default - statusmap_image switch.png - register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE - } - -# Define a template for routers that we can reuse -define host{ - name generic-router ; The name of this host template - use generic-switch ; Inherit default values from the generic-host template - statusmap_image router.png - register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE - } - - - - -############################################################################### -############################################################################### -# -# SERVICE TEMPLATES -# -############################################################################### -############################################################################### - -# Generic service definition template - This is NOT a real service, just a template! - -define service{ - name generic-service ; The 'name' of this service template - active_checks_enabled 1 ; Active service checks are enabled - passive_checks_enabled 1 ; Passive service checks are enabled/accepted - parallelize_check 1 ; Active service checks should be parallelized (disabling this can lead to major performance problems) - obsess_over_service 1 ; We should obsess over this service (if necessary) - check_freshness 0 ; Default is to NOT check service 'freshness' - notifications_enabled 1 ; Service notifications are enabled - event_handler_enabled 1 ; Service event handler is enabled - flap_detection_enabled 1 ; Flap detection is enabled - process_perf_data 1 ; Process performance data - retain_status_information 1 ; Retain status information across program restarts - retain_nonstatus_information 1 ; Retain non-status information across program restarts - is_volatile 0 ; The service is not volatile - check_period 24x7 ; The service can be checked at any time of the day - max_check_attempts 3 ; Re-check the service up to 3 times in order to determine its final (hard) state - check_interval 10 ; Check the service every 10 minutes under normal conditions - retry_interval 2 ; Re-check the service every two minutes until a hard state can be determined - contact_groups admins ; Notifications get sent out to everyone in the 'admins' group - notification_options w,u,c,r ; Send notifications about warning, unknown, critical, and recovery events - notification_interval 60 ; Re-notify about service problems every hour - notification_period 24x7 ; Notifications can be sent out at any time - register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE! - } - - -# Local service definition template - This is NOT a real service, just a template! - -define service{ - name local-service ; The name of this service template - use generic-service ; Inherit default values from the generic-service definition - max_check_attempts 4 ; Re-check the service up to 4 times in order to determine its final (hard) state - check_interval 5 ; Check the service every 5 minutes under normal conditions - retry_interval 1 ; Re-check the service every minute until a hard state can be determined - register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE! - } - diff --git a/templates/nagios/templates_cfg_head.erb b/templates/nagios/templates_cfg_head.erb index cbd2b0c..b613344 100644 --- a/templates/nagios/templates_cfg_head.erb +++ b/templates/nagios/templates_cfg_head.erb @@ -1,5 +1,5 @@ ############################################################################### -### templates.cfg generated by Puppet | manual changes will be overwritten! ### +### nagios_templates.cfg created by Puppet | manual changes are overwritten!### ############################################################################### ########## Full reference file available at ########## ########## https://confdroid.com/2017/07/nagios-templates-cfg/ ########## diff --git a/templates/nagios/templates_cfg_rule.erb b/templates/nagios/templates_cfg_rule.erb index 2c00f14..7d1208b 100644 --- a/templates/nagios/templates_cfg_rule.erb +++ b/templates/nagios/templates_cfg_rule.erb @@ -17,7 +17,6 @@ define <%= @ng_template_object %>{ notifications_enabled <%= @ng_notifications_enabled %> event_handler_enabled <%= @ng_event_handler_enabled %> flap_detection_enabled <%= @ng_flap_detection_enabled %> - failure_prediction_enabled <%= @ng_failure_prediction_enabled %> process_perf_data <%= @ng_process_perf_data %> retain_status_information <%= @ng_retain_status_information %> retain_nonstatus_information <%= @ng_retain_nonstatus_information %> @@ -33,7 +32,7 @@ define <%= @ng_template_object %>{ check_interval <%= @ng_check_interval %> retry_interval <%= @ng_retry_interval %> max_check_attempts <%= @ng_ng_max_check_attempts %> - check_command <%= @ng_check_command %> + check_command <%= @ng_host_check_command %> notification_period <%= @ng_notification_period %> notification_interval <%= @ng_notification_interval %> notification_options <%= @ng_notification_options %> @@ -41,7 +40,7 @@ define <%= @ng_template_object %>{ hostgroups linux-servers register <%= @ng_object_register %> } -<% end %> +<% end -%> <% if @ng_template_object_name == 'windows-server' -%> define <%= @ng_template_object %>{ name <%= @ng_template_object_name %> @@ -50,7 +49,7 @@ define <%= @ng_template_object %>{ check_interval <%= @ng_check_interval %> retry_interval <%= @ng_retry_interval %> max_check_attempts <%= @ng_max_check_attempts %> - check_command <%= @ng_check_command %> + check_command <%= @ng_host_check_command %> notification_period <%= @ng_notification_period %> notification_interval <%= @ng_notification_interval %> notification_options <%= @ng_notification_options %> @@ -58,7 +57,7 @@ define <%= @ng_template_object %>{ hostgroups windows-servers register <%= @ng_object_register %> } -<% end %> +<% end -%> <% if @ng_template_object_name == 'generic_printer' -%> define <%= @ng_template_object %>{ name <%= @ng_template_object_name %> @@ -67,7 +66,7 @@ define <%= @ng_template_object %>{ check_interval <%= @ng_check_interval %> retry_interval <%= @ng_retry_interval %> max_check_attempts <%= @ng_max_check_attempts %> - check_command <%= @ng_check_command %> + check_command <%= @ng_host_check_command %> notification_period <%= @ng_notification_period %> notification_interval <%= @ng_notification_interval %> notification_options <%= @ng_notification_options %> @@ -75,7 +74,7 @@ define <%= @ng_template_object %>{ statusmap_image printer.png register <%= @ng_object_register %> } -<% end %> +<% end -%> <% if @ng_template_object_name == 'generic_switch' -%> define <%= @ng_template_object %>{ name <%= @ng_template_object_name %> @@ -84,7 +83,7 @@ define <%= @ng_template_object %>{ check_interval <%= @ng_check_interval %> retry_interval <%= @ng_retry_interval %> max_check_attempts <%= @ng_max_check_attempts %> - check_command <%= @ng_check_command %> + check_command <%= @ng_host_check_command %> notification_period <%= @ng_notification_period %> notification_interval <%= @ng_notification_interval %> notification_options <%= @ng_notification_options %> @@ -92,7 +91,7 @@ define <%= @ng_template_object %>{ statusmap_image switch.png register <%= @ng_object_register %> } -<% end %> +<% end -%> <% elsif @ng_template_object == 'service' -%> <% if @ng_template_object_name == 'generic-service' -%> define <%= @ng_template_object %>{ @@ -105,7 +104,6 @@ define <%= @ng_template_object %>{ notifications_enabled <%= @ng_notifications_enabled %> event_handler_enabled <%= @ng_event_handler_enabled %> flap_detection_enabled <%= @ng_flap_detection_enabled %> - failure_prediction_enabled <%= @ng_failure_prediction_enabled %> process_perf_data <%= @ng_process_perf_data %> retain_status_information <%= @ng_retain_status_information %> retain_nonstatus_information <%= @ng_retain_nonstatus_information %>